diff --git a/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py b/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py index 479406ae..f57f96c4 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py +++ b/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py @@ -8,10 +8,16 @@ BE OVERWRITTEN BY THE TRANSPILER. """ import asyncio +import json +from enum import Enum from typing import Annotated, Any import httpx +import jsonschema from arcade_tdk import ToolContext, tool +from arcade_tdk.errors import RetryableToolError + +from .request_body_schemas import REQUEST_BODY_SCHEMAS # Retry configuration INITIAL_RETRY_DELAY = 0.5 # seconds @@ -25,6 +31,13 @@ HTTP_CLIENT = httpx.AsyncClient( ) +class ToolMode(str, Enum): + """Mode for tools with complex request bodies.""" + + GET_REQUEST_SCHEMA = "get_request_schema" + EXECUTE = "execute" + + def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: return {k: v for k, v in data.items() if v is not None} @@ -34,6 +47,7 @@ async def make_request( method: str, params: dict[str, Any] | None = None, headers: dict[str, Any] | None = None, + content: str | None = None, data: dict[str, Any] | None = None, auth: tuple[str, str] | None = None, max_retries: int = 3, @@ -47,7 +61,7 @@ async def make_request( method=method, params=params, headers=headers, - data=data, + content=content, ) response.raise_for_status() except httpx.HTTPStatusError as e: @@ -68,28 +82,126 @@ async def make_request( raise httpx.RequestError("Max retries exceeded") # noqa: TRY003 -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +async def make_request_with_schema_validation( + url: str, + method: str, + request_data: dict[str, Any], + schema: dict[str, Any], + auth: tuple[str, str] | None = None, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with schema validation on format errors.""" + try: + response = await make_request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=json.dumps(request_data), + max_retries=max_retries, + ) + except httpx.HTTPStatusError as e: + # Only provide schema validation for format-related errors + if e.response.status_code in (400, 422): + # Run validation to provide additional context + is_valid, validation_error = validate_json_against_schema(request_data, schema) + + api_error_details = f"API returned {e.response.status_code}: {e.response.text}" + + if not is_valid: + # Schema validation found issues - additional context + additional_context = ( + f"{api_error_details}\n\n" + f"Schema validation found the following issues:\n" + f"{validation_error}" + ) + else: + # Schema validation passed - just show API error + additional_context = api_error_details + + raise RetryableToolError( + message=(f"API request failed with validation error: {e.response.status_code}"), + developer_message=api_error_details, + additional_prompt_content=additional_context, + ) from e + else: + # For non-validation errors, re-raise as-is + raise + else: + return response + + +def validate_json_against_schema( + json_data: dict[str, Any], schema: dict[str, Any] +) -> tuple[bool, str | None]: + """Validate JSON data against an OpenAPI/JSON Schema. + + This provides full JSON Schema Draft 7 validation including: + - Required fields, types, enums + - Pattern validation (regex) + - Format validation (email, uuid, date-time, etc.) + - Min/max length and values + - oneOf, anyOf, allOf + - And all other JSON Schema features + + Args: + json_data: The JSON data to validate + schema: The JSON Schema to validate against + + Returns: + Tuple of (is_valid, error_messages). If valid, error_messages is None. + If invalid, error_messages contains all validation errors. + """ + try: + validator = jsonschema.Draft7Validator( + schema, format_checker=jsonschema.Draft7Validator.FORMAT_CHECKER + ) + # Collect ALL validation errors + errors = list(validator.iter_errors(json_data)) + if errors: + # Format all errors with their paths + error_messages = [] + for error in errors: + error_path = ".".join(str(p) for p in error.path) if error.path else "root" + error_messages.append(f"{error.message} at {error_path}") + # Join all errors with newlines + return False, "\n".join(error_messages) + else: + return True, None + except jsonschema.SchemaError as e: + return False, f"Invalid schema: {e.message}" + except Exception as e: + return False, f"Validation error: {e!s}" + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int | None, + "The number of departments to retrieve in each page of a paginated list. Must be an integer.", # noqa: E501 ] = 10, - page_number: Annotated[ - int | None, "The specific page number of departments to retrieve from Freshservice." + page_number_to_retrieve: Annotated[ + int | None, "The page number of results to retrieve from Freshservice." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-departments'."]: - """Retrieve all departments from Freshservice. + """Retrieve a list of 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 + Use this tool to get a list of all departments or companies (in MSP Mode) available in Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -97,16 +209,84 @@ async def get_freshservice_departments( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_department_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_department( + context: ToolContext, + department_name: Annotated[str, "The name of the department to be created in Freshservice."], + custom_fields: Annotated[ + dict[str, str] | None, + "JSON object of custom fields related to a Freshservice entity for creating a department.", + ] = None, + department_creation_timestamp: Annotated[ + str | None, + "Timestamp indicating when the department was created. This should be provided in ISO 8601 format.", # noqa: E501 + ] = None, + department_description: Annotated[ + str | None, "Provide a description about the department to be created." + ] = None, + department_id: Annotated[ + int | None, + "Unique identifier for the department. This integer is used to specify the unique ID of the department to be created.", # noqa: E501 + ] = None, + email_domains: Annotated[ + list[str] | None, + "A list of email domains associated with the department. Each domain should be a valid string.", # noqa: E501 + ] = None, + head_user_identifier: Annotated[ + int | None, "ID of the agent or requester who is the head of the department." + ] = None, + last_modified_timestamp: Annotated[ + str | None, + "Timestamp indicating when the department was last modified. Format as a string (e.g., 'YYYY-MM-DDTHH:MM:SSZ').", # noqa: E501 + ] = None, + prime_user_id: Annotated[ + int | None, + "Unique identifier of the agent or requester who serves as the prime user of the department. Provide an integer value corresponding to the user ID.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-department'."]: + """Create a new department in Freshservice. + + This tool is used to create a new department in Freshservice. It should be called when there is a need to organize teams or functions into new departments within the Freshservice platform.""" # noqa: E501 + request_data = remove_none_values({ + "id": department_id, + "name": department_name, + "description": department_description, + "head_user_id": head_user_identifier, + "prime_user_id": prime_user_id, + "domains": email_domains, + "custom_fields": custom_fields, + "created_at": department_creation_timestamp, + "updated_at": last_modified_timestamp, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_department_info( context: ToolContext, department_id: Annotated[ - int, "The ID of the department to retrieve from Freshservice. Use only integer values." + int, "The ID of the department to retrieve details for from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-department'."]: - """Retrieve department details using department ID. + """Retrieve department details from Freshservice using an 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 + Use this tool to obtain detailed information about a department or company (in MSP Mode) from Freshservice by providing the specific department ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}".format( @@ -116,7 +296,7 @@ async def retrieve_department_details( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -124,24 +304,69 @@ async def retrieve_department_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_department( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_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. + department_id: Annotated[ + int, + "ID of the department to update. Required for identifying which department's information to modify.", # noqa: E501 + ], + custom_fields: Annotated[ + dict[str, str] | None, + "JSON object containing custom fields related to a Freshservice entity. Include key-value pairs for each field.", # noqa: E501 + ] = None, + department_creation_timestamp: Annotated[ + str | None, + "The timestamp indicating when the department was originally created in Freshservice. This should be formatted as a string.", # noqa: E501 + ] = None, + department_description: Annotated[ + str | None, + "Provide a description about the department. This is used to update the existing details of the department in Freshservice.", # noqa: E501 + ] = None, + department_name: Annotated[str | None, "The new name of the department to be updated."] = None, + department_unique_id: Annotated[ + int | None, "The unique identifier for the department to update." + ] = None, + email_domains: Annotated[ + list[str] | None, "List of email domains linked to the department, like ['example.com']." + ] = None, + head_user_id: Annotated[ + int | None, "Unique identifier for the agent or requester serving as the department head." + ] = None, + last_modified_timestamp: Annotated[ + str | None, + "Timestamp indicating when the department was last modified. Format: YYYY-MM-DDTHH:MM:SSZ.", + ] = None, + prime_user_id: Annotated[ + int | None, + "Unique identifier of the agent or requester who serves as the prime user of the department.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-department'."]: + """Update details of an existing department in Freshservice. - 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 + Use this tool to change details of an existing department or company in Freshservice. Ideal for modifying department attributes such as name or other relevant information.""" # noqa: E501 + request_data = remove_none_values({ + "id": department_unique_id, + "name": department_name, + "description": department_description, + "head_user_id": head_user_id, + "prime_user_id": prime_user_id, + "domains": email_domains, + "custom_fields": custom_fields, + "created_at": department_creation_timestamp, + "updated_at": last_modified_timestamp, + }) + content = json.dumps(request_data) if request_data else None 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", + method="PUT", params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, ) try: return {"response_json": response.json()} @@ -149,13 +374,45 @@ async def delete_department( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_department_freshservice( + context: ToolContext, + department_id_to_delete: Annotated[ + int, + "Specify the ID of the department or company to be deleted from Freshservice. This ID is required to identify which department to delete.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-department'."]: + """Delete a department or company in Freshservice by ID. + + Use this tool to delete a specific department or company (in MSP Mode) from Freshservice by providing the department ID. It should be called when needing to remove a department permanently.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_to_delete, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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. + """Retrieve department 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 + Use this tool to get the Department Fields or Company Fields (in MSP Mode) from Freshservice, displayed in the order found on the UI.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/department_fields".format( @@ -164,7 +421,7 @@ async def get_department_fields( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -172,26 +429,30 @@ async def get_department_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_freshservice_agent_groups( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_agent_groups( context: ToolContext, entries_per_page: Annotated[ - int | None, "Specify the number of entries to retrieve in each page of the list." + int | None, "The number of entries to retrieve per page for pagination." ] = 10, - page_number_to_retrieve: Annotated[ - int | None, "The specific page number to retrieve from a paginated list of agent groups." + page_number: Annotated[ + int | None, "The page number to retrieve for pagination in the 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.""" + """Retrieve a list of all agent groups from Freshservice. + + Use this tool to obtain a list of all the agent groups configured in your Freshservice account. It is useful for managing groups and understanding team structures within the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -199,26 +460,121 @@ async def list_freshservice_agent_groups( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_agent_group_info( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_agent_group_freshservice( context: ToolContext, - agent_group_identifier: Annotated[ - int, "The unique integer ID of the Freshservice agent group to retrieve." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-agent-group'."]: + """Create a new Agent Group in Freshservice. + + This tool allows you to create a new Agent Group in Freshservice. Use it to organize and manage agents within your Freshservice account. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEAGENTGROUPFRESHSERVICE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEAGENTGROUPFRESHSERVICE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEAGENTGROUPFRESHSERVICE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEAGENTGROUPFRESHSERVICE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_agent_group_by_id( + context: ToolContext, + agent_group_id: Annotated[ + int, "The unique ID of the agent group to retrieve from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-agent-group'."]: - """Retrieve details of a Freshservice agent group by ID. + """Retrieve details of a specific 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 + Use this tool to get information about an agent group from Freshservice using its unique ID.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + agent_group_id=agent_group_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -226,16 +582,133 @@ async def get_agent_group_info( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_agent_group( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + agent_group_id: Annotated[ + int | None, + "The unique identifier of the agent group to update. This should be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-agent-group'."]: + """Update an existing Agent Group in Freshservice. + + This tool updates an existing agent group in Freshservice. It should be called when modifications to group details are required. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEAGENTGROUP"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not agent_group_id: + missing_params.append(("agent_group_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEAGENTGROUP"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEAGENTGROUP"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEAGENTGROUP"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, "The ID of the agent group you want to delete in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-agent-group'."]: - """Delete an agent group in Freshservice by ID. + """Deletes 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 + Use this tool to delete an existing agent group in Freshservice by providing its ID. This is useful when you need to manage or reorganize agent groups by removing those that are no longer required.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -245,7 +718,7 @@ async def delete_agent_group( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -253,28 +726,31 @@ async def delete_agent_group( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int | None, + "The number of entries to retrieve in each page of a paginated list. This controls the page size.", # noqa: E501 ] = 10, - page_number: Annotated[ - int | None, "Specify the page number to retrieve from the paginated list of products." + page_number_to_fetch: Annotated[ + int | None, "The specific page number to retrieve from the list of products." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-products'."]: - """Retrieve a comprehensive list of products from Freshservice. + """Retrieve all 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 + Use this tool to get a comprehensive list of all the products available in the Freshservice system. This helps in managing and reviewing product inventories effectively.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_fetch}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -282,17 +758,77 @@ async def list_all_products( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_product_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_product( + context: ToolContext, + product_asset_type_id: Annotated[ + int, "Identifier for the asset type of the product, expected as an integer." + ], + product_name: Annotated[str, "Name of the Product to be added to the catalog."], + depreciation_type_id: Annotated[ + int | None, + "Unique identifier for the type of depreciation used for the product. This should be an integer value corresponding to the desired depreciation method.", # noqa: E501 + ] = None, + depreciation_type_identifier: Annotated[ + str | None, "Unique identifier for the depreciation type used for the product." + ] = None, + manufacturer_name: Annotated[ + str | None, "The name of the product's manufacturer. It accepts free text input." + ] = None, + procurement_mode: Annotated[ + int | None, + "Mode of procurement for the product. Use `1` for Buy, `2` for Lease, `3` for Both.", + ] = None, + product_status_id: Annotated[ + int | None, + "The status of the product: `1` - In Production, `2` - In Pipeline, `3` - Retired.", + ] = None, + product_unique_id: Annotated[ + int | None, "Unique identifier for the product in the catalog. It must be an integer." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-product'."]: + """Create a new product in the Freshservice catalog. + + Use this tool to add a new product to the Freshservice Product Catalog. It is called when a new product entry is needed in the inventory or catalog database.""" # noqa: E501 + request_data = remove_none_values({ + "id": product_unique_id, + "name": product_name, + "asset_type_id": product_asset_type_id, + "manufacturer": manufacturer_name, + "status_id": product_status_id, + "mode_of_procurement_id": procurement_mode, + "depreciation_type_id": depreciation_type_id, + "description": depreciation_type_identifier, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_product_info( context: ToolContext, product_id: Annotated[ - int, - "The unique identifier for the product in the Freshservice Product Catalog to retrieve details.", # noqa: E501 + int, "The unique identifier of the product to retrieve from the catalog." ], ) -> 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 + Use this tool to get detailed information about a specific product using its ID from the Freshservice Product Catalog.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}".format( @@ -302,7 +838,7 @@ async def get_product_details( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -310,26 +846,64 @@ async def get_product_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_product( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_product_in_catalog( context: ToolContext, - product_identifier: Annotated[ - int, "The unique ID of the product to be deleted from the Freshservice catalog." + product_unique_id: Annotated[ + int, "The unique integer identifier for the product to be updated in the catalog." ], -) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-product'."]: - """Delete a product from the Freshservice catalog. + asset_type_id: Annotated[ + int | None, + "The unique identifier for the asset type of the product. It should be an integer.", + ] = None, + depreciation_type_description: Annotated[ + str | None, + "A description of the depreciation type used for the product. Accepts textual information detailing the depreciation category or specifics.", # noqa: E501 + ] = None, + depreciation_type_identifier: Annotated[ + int | None, "Unique identifier for the type of depreciation used for the product." + ] = None, + procurement_mode: Annotated[ + int | None, "Specifies the mode of procurement: 1 for Buy, 2 for Lease, 3 for Both." + ] = None, + product_id_number: Annotated[ + int | None, "Unique ID of the product to be updated in the catalog." + ] = None, + product_manufacturer_name: Annotated[ + str | None, "The name of the product's manufacturer. Provide as free text." + ] = None, + product_name: Annotated[ + str | None, "The name of the product to be updated in the catalog." + ] = None, + product_status: Annotated[ + int | None, + "Specify the status of the product: `1` for In Production, `2` for In Pipeline, `3` for Retired.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-product'."]: + """Update an existing product in the 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 + Use this tool to modify details of a product in the product catalog. Call this when a product's information needs to be updated.""" # noqa: E501 + request_data = remove_none_values({ + "id": product_id_number, + "name": product_name, + "asset_type_id": asset_type_id, + "manufacturer": product_manufacturer_name, + "status_id": product_status, + "mode_of_procurement_id": procurement_mode, + "depreciation_type_id": depreciation_type_identifier, + "description": depreciation_type_description, + }) + content = json.dumps(request_data) if request_data else None 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, + product_id=product_unique_id, ), - method="DELETE", + method="PUT", params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, ) try: return {"response_json": response.json()} @@ -337,29 +911,61 @@ async def delete_product( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_product_catalog_item( + context: ToolContext, + product_id_to_delete: Annotated[ + int, + "The ID of the product to delete from the catalog. It should be an integer representing the unique identifier of the product.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-product'."]: + """Delete a product from the catalog. + + Use this tool to remove an existing product from the Freshservice Product Catalog. Useful for managing inventory or updating product listings by deleting outdated or irrelevant entries.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_to_delete, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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.", + "The number of business hours configurations to retrieve per page in the paginated result.", ] = 10, - requested_page_number: Annotated[ - int | None, "Specify the page number of results you want to retrieve." + page_number: Annotated[ + int | None, "The specific page number of business hours configurations 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. + """Retrieve 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 + This tool retrieves the entire list of business hours configurations from Freshservice. It should be called when you need to understand or display the business hours settings configured in the Freshservice system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -367,16 +973,18 @@ async def get_business_hours_configs( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, "The unique 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. + """Retrieve the Business Hours configuration from Freshservice. - 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 + This tool retrieves the Business Hours configuration using the provided ID from Freshservice. It should be called when detailed information about specific business hours settings is required.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -386,7 +994,7 @@ async def get_business_hours_config( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -394,18 +1002,22 @@ async def get_business_hours_config( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_all_locations( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_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 + int | None, "The number of location entries to retrieve per page in the paginated list." ] = 10, page_number_to_retrieve: Annotated[ - int | None, "The page number of locations to retrieve from Freshservice." + int | None, + "The page number of the locations list you want to retrieve. Useful for navigating through paginated results.", # noqa: E501 ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-locations'."]: - """Retrieve a list of all locations in Freshservice.""" + """Retrieve a list of all locations in Freshservice. + + Call this tool to obtain a comprehensive list of all locations configured in the Freshservice system. Useful for management and administrative tasks requiring location data.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/locations".format( @@ -414,7 +1026,7 @@ async def get_all_locations( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -422,27 +1034,211 @@ async def get_all_locations( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_location_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_location( context: ToolContext, - location_identifier: Annotated[ + location_name: Annotated[str, "Provide the name of the new location to be created."], + address_line_2: Annotated[ + str | None, + "The second line of the address, typically for additional location details or suite numbers.", # noqa: E501 + ] = None, + address_street_line_one: Annotated[ + str | None, "First line of the street address for the new location in Freshservice." + ] = None, + city_name: Annotated[str | None, "The name of the city where the location is situated."] = None, + location_country: Annotated[ + str | None, "Specify the country for the new location. This should be a valid country name." + ] = None, + location_unique_id: Annotated[ + int | None, + "An integer representing the unique ID of the location to be created in Freshservice.", + ] = None, + location_zip_code: Annotated[ + str | None, "Provide the Zip Code for the location to be created." + ] = None, + parent_location_id: Annotated[ + int | None, + "The unique identifier of the parent location if applicable. Use this to nest the new location under an existing one.", # noqa: E501 + ] = None, + primary_contact_unique_id: Annotated[ + int | None, + "Unique ID of the primary contact. This contact is a requester, and their details will be referenced for name, email, and phone number.", # noqa: E501 + ] = None, + state: Annotated[ + str | None, + "The state or region of the location. This should be a string value representing the official name of the state.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-location'."]: + """Create a new location in Freshservice. + + Use this tool to create a new location within the Freshservice platform. It should be called when there is a need to add a new geographical or organizational location to the service database.""" # noqa: E501 + request_data = remove_none_values({ + "id": location_unique_id, + "name": location_name, + "parent_location_id": parent_location_id, + "primary_contact_id": primary_contact_unique_id, + "address_line1": address_street_line_one, + "address_line2": address_line_2, + "address_city": city_name, + "address_state": state, + "address_country": location_country, + "address_zipcode": location_zip_code, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_ticket_location( + context: ToolContext, + location_id: 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 + "The ID of the location to retrieve. This should be an integer representing the specific location's unique identifier in Freshservice.", # 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 + This tool retrieves detailed information about a specific location using its ID. It should be used when needing to fetch data related to a particular location in Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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="GET", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_location_info( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + location_identifier: Annotated[ + int | None, + "The unique integer ID of the location to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-location'."]: + """Update an existing location's information in Freshservice. + + Use this tool to modify the details of an existing location in Freshservice. It should be called whenever there is a need to change location information, such as address or contact details. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATELOCATIONINFO"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not location_identifier: + missing_params.append(("location_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATELOCATIONINFO"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATELOCATIONINFO"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( 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", + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATELOCATIONINFO"]), params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), ) try: return {"response_json": response.json()} @@ -450,17 +1246,16 @@ async def fetch_location_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_existing_location( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_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 - ], + location_id: Annotated[int, "The unique ID of the location to be deleted in Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-location'."]: - """Deletes an existing location from Freshservice. + """Deletes an existing location by ID. - 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 + Use this tool to delete a specified location by providing its ID in the Freshservice system.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}".format( @@ -470,7 +1265,7 @@ async def delete_existing_location( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -478,20 +1273,23 @@ async def delete_existing_location( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_all_vendors( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_vendor_list( context: ToolContext, entries_per_page: Annotated[ int | None, - "Specify the number of vendor entries to retrieve for each page when listing vendors.", + "Specify the number of vendor entries to retrieve in each page of a paginated list.", ] = 10, page_number: Annotated[ - int | None, "Specify the page number to retrieve from the paginated list of vendors." + int | None, + "Specifies which page number of vendor entries to retrieve. Useful for navigating paginated results.", # noqa: E501 ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-vendors'."]: - """Retrieve and list all vendors from Freshservice. + """Retrieve a list of all vendors from Freshservice. - Call this tool to obtain a comprehensive list of all vendors stored in Freshservice.""" + Use this tool to get a complete list of vendors stored in the Freshservice system. It's useful for acquiring vendor information when managing resources or contracts.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/vendors".format( @@ -500,7 +1298,7 @@ async def fetch_all_vendors( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -508,27 +1306,206 @@ async def fetch_all_vendors( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_vendor_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_vendor( 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 - ], + address_line_1: Annotated[ + str | None, "The first line of the vendor's address, such as street name and number." + ] = None, + address_line_2: Annotated[ + str | None, + "The second line of the vendor's address, typically used for apartment or suite numbers.", + ] = None, + country: Annotated[ + str | None, "The country where the vendor is located. Provide the full name of the country." + ] = None, + location_zip_code: Annotated[str | None, "Zip Code of the vendor's location."] = None, + primary_contact_id: Annotated[ + int | None, + "Unique ID of the primary contact for the vendor. This contact is a requester whose details (name, email, phone, mobile) are referenced from the requester database.", # noqa: E501 + ] = None, + state: Annotated[ + str | None, + "The state or province where the vendor is located. Use a string value to specify the state.", # noqa: E501 + ] = None, + vendor_city: Annotated[str | None, "The city where the vendor is located."] = None, + vendor_description: Annotated[ + str | None, + "Detailed description of the vendor, including any specific information or notes relevant to the vendor.", # noqa: E501 + ] = None, + vendor_name: Annotated[ + str | None, "The name of the vendor to be created. It should be a string." + ] = None, + vendor_unique_id: Annotated[ + int | None, "Unique integer ID of the vendor to be created in Freshservice." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-vendor'."]: + """Creates a new vendor in the Freshservice system. + + Use this tool to create a new vendor in Freshservice. Call this tool when you need to add a vendor to your vendor list, providing necessary details to complete the registration.""" # noqa: E501 + request_data = remove_none_values({ + "id": vendor_unique_id, + "name": vendor_name, + "description": vendor_description, + "primary_contact_id": primary_contact_id, + "address_line1": address_line_1, + "address_line2": address_line_2, + "address_city": vendor_city, + "address_state": state, + "address_country": country, + "address_zipcode": location_zip_code, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_vendor_details( + context: ToolContext, + vendor_id: Annotated[int, "The unique integer ID of the vendor to retrieve details for."], ) -> 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 + This tool fetches detailed information about a specific vendor using their vendor ID. It should be called when you need to access vendor information stored in Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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="GET", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_vendor_info( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + vendor_identifier: Annotated[ + int | None, + "The unique identifier for the vendor to be updated. It must be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-vendor'."]: + """Update details of an existing vendor. + + Use this tool to update information for an existing vendor in the Freshservice system, using the vendor ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEVENDORINFO"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not vendor_identifier: + missing_params.append(("vendor_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEVENDORINFO"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEVENDORINFO"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( 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", + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEVENDORINFO"]), params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), ) try: return {"response_json": response.json()} @@ -536,16 +1513,16 @@ async def get_vendor_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_existing_vendor( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_vendor( context: ToolContext, - vendor_id: Annotated[ - int, "The unique identifier of the vendor to be deleted. It should be an integer value." - ], + vendor_id: Annotated[int, "The unique integer ID of the vendor to be deleted in Freshservice."], ) -> 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 + This tool deletes a specified vendor in Freshservice. It should be called when a user needs to remove a vendor from the system using the vendor's unique ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}".format( @@ -554,7 +1531,7 @@ async def delete_existing_vendor( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -562,19 +1539,19 @@ async def delete_existing_vendor( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_asset_types( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_asset_types( context: ToolContext, entries_per_page: Annotated[ - int | None, "The number of asset type entries to retrieve per page in the paginated list." + int | None, "The number of asset types to retrieve per page in the list." ] = 10, - page_number: Annotated[ - int | None, "The page number to retrieve from the list of asset types." - ] = 1, + page_number: Annotated[int | None, "The page number to retrieve for paginated results."] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-types'."]: - """Retrieve all asset types from Freshservice. + """Fetch a list of 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 + Use this to get an overview of all asset types defined within Freshservice. Useful for managing assets or integrating asset data with other systems.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types".format( @@ -583,7 +1560,7 @@ async def get_asset_types( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -591,17 +1568,63 @@ async def get_asset_types( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_asset_type( + context: ToolContext, + asset_type_name: Annotated[str, "The name of the asset type to be created."], + asset_description_html: Annotated[ + str | None, "Provide a short description of the asset type in HTML format for styling." + ] = None, + asset_type_id: Annotated[ + int | None, "Unique identifier for the asset type to be created." + ] = None, + asset_type_plain_text_description: Annotated[ + str | None, "Short description of the asset type in plain text format without HTML tags." + ] = None, + parent_asset_type_identifier: Annotated[ + int | None, + "Unique identifier of the parent asset type. Use this to specify a hierarchy when creating a new asset type.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-asset-type'."]: + """Create a new asset type in Freshservice. + + Use this tool to create a new asset type in Freshservice when setting up or managing assets. It automates the process of defining asset categories in the system.""" # noqa: E501 + request_data = remove_none_values({ + "id": asset_type_id, + "name": asset_type_name, + "description": asset_description_html, + "description_text": asset_type_plain_text_description, + "parent_asset_type_id": parent_asset_type_identifier, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + int, "The unique ID of the asset type to retrieve. Must be an integer." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-asset-type'."]: - """Retrieve details of a specific asset type by ID. + """Retrieve details of a specific asset type from Freshservice. - 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 + Use this tool to obtain information about a specific asset type identified by its asset type ID within the Freshservice system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -611,7 +1634,7 @@ async def retrieve_asset_type( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -619,17 +1642,64 @@ async def retrieve_asset_type( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_asset_type( + context: ToolContext, + asset_type_id: Annotated[int, "Unique identifier of the asset type to be updated."], + asset_id: Annotated[int | None, "Unique identifier of the asset type to be updated."] = None, + asset_type_description_html: Annotated[ + str | None, "Provide a short HTML-formatted description of the asset type." + ] = None, + asset_type_name: Annotated[str | None, "The new name for the asset type to be updated."] = None, + parent_asset_type_id: Annotated[ + int | None, "Unique identifier for the parent asset type to establish hierarchy." + ] = None, + plain_text_description: Annotated[ + str | None, + "Provide a short plain text description of the asset type. Avoid using HTML or special formatting.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-asset-type'."]: + """Update an existing asset type in Freshservice. + + Use this tool to update information about an existing asset type within the Freshservice platform. The asset type to be updated is identified by its asset_type_id.""" # noqa: E501 + request_data = remove_none_values({ + "id": asset_id, + "name": asset_type_name, + "description": asset_type_description_html, + "description_text": plain_text_description, + "parent_asset_type_id": parent_asset_type_id, + }) + content = json.dumps(request_data) if request_data else None + 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="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + "The unique identifier for the asset type to be deleted. It should be an integer matching an existing asset type in Freshservice.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset-type'."]: - """Delete an existing asset type in Freshservice. + """Delete an existing asset type from 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 + This tool is used to delete an asset type in Freshservice. It should be called when an asset type is no longer needed and needs to be removed from the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -639,7 +1709,7 @@ async def delete_asset_type( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -647,16 +1717,19 @@ async def delete_asset_type( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_asset_fields( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_asset_type_fields( context: ToolContext, asset_type_identifier: Annotated[ - int, "The unique identifier for the asset type to retrieve its fields in Freshservice." + int, + "The unique integer ID representing the specific asset type whose fields need to be retrieved.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-type-fields'."]: - """Retrieve asset fields for a specific asset type. + """Retrieve asset fields from Freshservice. - 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 + Fetches asset fields for a specific asset type from Freshservice, including default and specific fields, in their UI display order.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -666,7 +1739,7 @@ async def get_asset_fields( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -674,20 +1747,21 @@ async def get_asset_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_component_types( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_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 + int | None, "Specifies the number of component type entries to retrieve in each page." ] = 10, page_number: Annotated[ - int | None, "The specific page number of component types to retrieve from Freshservice." + int | None, "The page number to retrieve in a paginated list of component types." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-component-types'."]: - """Retrieve all component types in Freshservice. + """Retrieve all Freshservice component types and their fields. - 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 + Use this tool to obtain a list of all component types available in Freshservice. It provides details about each component type and their specific fields, which can be useful for understanding how components are organized.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/component_types".format( @@ -696,7 +1770,7 @@ async def get_component_types( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -704,33 +1778,34 @@ async def get_component_types( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_asset_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_assets( context: ToolContext, + asset_filter_query: Annotated[ + str | None, + "A URL-encoded query string to filter the asset list. Supports parameters like asset_type_id, department_id, location_id, and more.", # noqa: E501 + ] = None, 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 + "Specify the number of asset entries to retrieve per page in a paginated list. Not applicable when a search or filter is used.", # 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 + str | None, "Specify asset type fields to include in the response." ] = 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 + list_trashed_assets_only: Annotated[ + bool | None, "Set to true to list only assets in the trash." ] = None, - asset_search_query: Annotated[ + page_number: Annotated[int | None, "The page number to retrieve from the list of assets."] = 1, + 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 + "A simple query to search for an asset. Supports 'name', 'asset_tag', and 'serial_number'. Example: \"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. + """Retrieve a list of all assets in Freshservice. - Use this tool to get details about all assets managed in Freshservice, such as hardware and software resources.""" # noqa: E501 + This tool is used to get a complete list of all assets available in the Freshservice platform. It can be called to fetch detailed inventory information, aiding in asset management tasks.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets".format( @@ -740,13 +1815,13 @@ async def get_asset_list( params=remove_none_values({ "per_page": entries_per_page, "page": page_number, - "trashed": include_trashed_assets, + "trashed": list_trashed_assets_only, "include": include_asset_type_fields, - "filter": apply_asset_filter, - "search": asset_search_query, + "filter": asset_filter_query, + "search": search_query, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -754,16 +1829,111 @@ async def get_asset_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_asset_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_asset( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-asset'."]: + """Create a new asset in Freshservice. + + Use this tool to add a new asset to the Freshservice system. Ideal for tracking and managing assets efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATENEWASSET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWASSET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWASSET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATENEWASSET"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_asset_information( context: ToolContext, asset_display_id: Annotated[ - int, "The unique display ID of the asset to retrieve details from Freshservice." + int, "The unique display ID of the asset you want to retrieve information for." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-asset'."]: - """Retrieve details of a specific asset by ID. + """Retrieve detailed information about a specific asset. - This tool is used to obtain detailed information about a specific asset using its display ID in Freshservice.""" # noqa: E501 + Use this tool to get detailed information about a specific asset in the Freshservice system using its display ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}".format( @@ -773,7 +1943,7 @@ async def get_asset_details( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -781,17 +1951,133 @@ async def get_asset_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_asset( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_existing_asset( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + asset_display_id: Annotated[ + int | None, + "The unique display ID of the asset to be updated in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-asset'."]: + """Update the details of an existing asset in Freshservice. + + Use this tool to modify the information of an existing asset by its display ID in Freshservice. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEEXISTINGASSET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not asset_display_id: + missing_params.append(("asset_display_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGASSET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGASSET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEEXISTINGASSET"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def remove_asset_type( 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 + int, "The unique integer identifier of the asset type to be deleted in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset'."]: - """Delete an existing asset in Freshservice. + """Delete an existing asset type 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 + Use this tool to delete an asset type by providing its display ID. Call this tool when you need to remove an asset from the Freshservice system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}".format( @@ -801,7 +2087,7 @@ async def delete_asset( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -809,17 +2095,18 @@ async def delete_asset( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_installed_software( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_installed_software_list( context: ToolContext, device_display_id: Annotated[ - int, - "The unique integer identifier for the device whose installed software applications are to be retrieved.", # noqa: E501 + int, "The unique integer identifier for the device to fetch the software list." ], ) -> 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 + Use this tool to obtain a comprehensive list of software applications installed on a particular device by its display ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/applications".format( @@ -829,7 +2116,7 @@ async def list_installed_software( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -837,16 +2124,19 @@ async def list_installed_software( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_asset_requests( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_asset_requests( context: ToolContext, asset_display_id: Annotated[ - int, "The display ID of the asset for which to retrieve associated requests." + int, + "The unique display ID of the asset for which to retrieve requests. This should be an integer.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-requests'."]: - """Retrieve all requests linked to a specific asset. + """Retrieve 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 + Use this tool to get a list of all requests associated with a specific asset by its display ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/requests".format( @@ -856,7 +2146,7 @@ async def list_asset_requests( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -864,16 +2154,18 @@ async def list_asset_requests( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def get_asset_contracts( context: ToolContext, asset_display_id: Annotated[ - int, "The unique display ID of the asset to retrieve contracts for." + int, "The unique integer ID of the asset to retrieve associated contracts for." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-contracts'."]: - """Retrieve all contracts linked to a specific asset. + """Retrieve 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 + Use this tool to obtain all contracts associated with a particular asset identified by its display ID. Ideal for managing asset-related agreements and tracking contract details.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/contracts".format( @@ -883,7 +2175,7 @@ async def get_asset_contracts( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -891,16 +2183,19 @@ async def get_asset_contracts( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def get_device_components( context: ToolContext, device_display_id: Annotated[ - int, "The integer ID of the device whose components you want to list." + int, + "The unique display ID of the device whose components are to be listed. It must be an integer value.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-components'."]: - """Retrieve all components of a specified device. + """Retrieve all components of a specific 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 + This tool retrieves a list of all components associated with a specified device by its display ID. Use this to gain detailed insights into the individual parts of a device.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components".format( @@ -910,7 +2205,7 @@ async def get_device_components( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -918,7 +2213,7 @@ async def get_device_components( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def add_asset_component( context: ToolContext, asset_display_id: Annotated[ @@ -928,7 +2223,9 @@ async def add_asset_component( ) -> 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 + Use this tool to add a new component for a specific asset in Freshservice. It should be called when you need to track additional components associated with an asset.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components".format( @@ -938,7 +2235,7 @@ async def add_asset_component( method="POST", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -946,30 +2243,34 @@ async def add_asset_component( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def update_asset_component( context: ToolContext, asset_display_id: Annotated[ - int, "The numeric identifier of the asset to be updated in Freshservice." + int, + "The unique display ID of the asset where the component is being updated. This is required to identify the specific asset in Freshservice.", # noqa: E501 ], - component_identifier: Annotated[ - int, "The unique identifier of the component to be updated, as an integer." + component_id: Annotated[ + int, + "The unique identifier for the component to update within the asset. This should be an integer representing the component's ID.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-asset-component'."]: - """Update a component in an asset. + """Update a specific component within 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 + This tool updates a specified component within an asset in Freshservice. Use it to modify details of an existing component in an asset by providing the asset's display ID and the component's ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + component_id=component_id, ), method="PUT", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -977,21 +2278,20 @@ async def update_asset_component( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + "The unique identifier for the asset from which the component will be deleted. This must be an integer.", # noqa: E501 ], + component_id: Annotated[int, "The unique identifier of the component to be deleted."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset-component'."]: - """Delete a specific component from an asset. + """Delete a specific component from an asset in Freshservice. - 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 + Use this tool to delete a specific component from an asset using Freshservice. It requires the asset's display ID and the component ID to successfully process the deletion request.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -1002,7 +2302,7 @@ async def delete_asset_component( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1010,28 +2310,31 @@ async def delete_asset_component( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_software_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_software_applications( context: ToolContext, entries_per_page: Annotated[ - int | None, "Number of software entries to retrieve per page for pagination." + int | None, "Specify the number of software application entries to retrieve per page." ] = 10, - page_number: Annotated[ - int | None, "The page number of the software list to retrieve. Used for pagination." + page_number_to_retrieve: Annotated[ + int | None, + "The specific page number of the software list to retrieve from Freshservice. Useful for navigating large lists.", # noqa: E501 ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-applications'."]: - """Retrieve all software applications in Freshservice. + """Retrieve a list of software applications from 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 + Use this tool to get a comprehensive list of all software applications available in Freshservice. This can be helpful for inventory management or IT support inquiries.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1039,27 +2342,27 @@ async def get_software_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_software_application( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_specific_software( context: ToolContext, - application_id: Annotated[ + software_application_id: Annotated[ int, - "The unique identifier for the specific software application in Freshservice to be retrieved. It must be an integer.", # noqa: E501 + "The unique integer identifier for the software application in Freshservice that you want to retrieve.", # 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 + """Fetch details of a specific software application from Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + application_id=software_application_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1067,16 +2370,18 @@ async def retrieve_software_application( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_software_installation_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_application_installations( context: ToolContext, software_application_id: Annotated[ - int, "The unique identifier of the software application to fetch the installation list." + int, "The unique identifier for the software application to get installation details." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-application-installations'."]: - """Retrieve a list of devices where specified software is installed. + """Retrieve all devices with a specific software installed. - Use this tool to get a list of all devices with a particular software application installed by providing the application ID.""" # noqa: E501 + This tool fetches a list of devices where a specified software application is installed. It should be called when you need to determine which devices have a certain software application installed by providing the application ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/installations".format( @@ -1086,7 +2391,7 @@ async def get_software_installation_list( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1094,17 +2399,18 @@ async def get_software_installation_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + int, "The unique identifier for the software application to retrieve associated licenses." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-application-licenses'."]: - """Retrieve licenses linked to a specific software application. + """Retrieve licenses for a specified software application. - Use this tool to get a list of all licenses associated with a specific application by providing the application ID.""" # noqa: E501 + Use this tool to get a list of all licenses linked to a particular software application within Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/licenses".format( @@ -1114,7 +2420,7 @@ async def get_application_licenses( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1122,23 +2428,22 @@ async def get_application_licenses( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_all_csat_surveys( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_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.", + int | None, "The number of survey entries to retrieve per page in a paginated response." ] = 10, - survey_page_number: Annotated[ - int | None, "The page number of CSAT surveys to retrieve for pagination." + filter_active_surveys: Annotated[ + int | None, "Set to 1 to list active surveys or 0 for inactive surveys." + ] = None, + page_number_to_retrieve: Annotated[ + int | None, "Specify the page number of the CSAT surveys to retrieve." ] = 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 + """Retrieve a list of all CSAT Surveys in Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys".format( @@ -1148,10 +2453,10 @@ async def get_all_csat_surveys( params=remove_none_values({ "active": filter_active_surveys, "per_page": entries_per_page, - "page": survey_page_number, + "page": page_number_to_retrieve, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1159,17 +2464,109 @@ async def get_all_csat_surveys( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_csat_survey( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_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.", + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", ], -) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-survey'."]: - """Retrieve a CSAT survey by its ID from Freshservice. + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-survey'."]: + """Create a new CSAT survey in Freshservice. - Use this tool to get detailed information about a specific CSAT survey in Freshservice by providing the survey ID.""" # noqa: E501 + This tool is used to create a new Customer Satisfaction (CSAT) survey in Freshservice. Call this tool when you need to set up a survey to gather customer feedback. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECSATSURVEY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECSATSURVEY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECSATSURVEY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATECSATSURVEY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_csat_survey( + context: ToolContext, + csat_survey_id: Annotated[int, "ID of the CSAT survey to retrieve from Freshservice."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-survey'."]: + """Retrieve a CSAT survey by ID from Freshservice. + + Use this tool to fetch detailed information about a Customer Satisfaction (CSAT) survey from Freshservice by providing the survey ID. Ideal for accessing survey feedback and metrics.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}".format( @@ -1179,7 +2576,7 @@ async def get_csat_survey( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1187,16 +2584,133 @@ async def get_csat_survey( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_csat_survey( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + survey_id: Annotated[ + int | None, + "The unique ID of the CSAT Survey to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-survey'."]: + """Update an existing CSAT Survey in Freshservice. + + Use this tool to modify and update the content or settings of an existing CSAT Survey in Freshservice. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECSATSURVEY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not survey_id: + missing_params.append(("survey_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECSATSURVEY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECSATSURVEY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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 + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATECSATSURVEY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_survey( context: ToolContext, survey_id_to_delete: Annotated[ - int, "The ID of the survey you wish to delete from Freshservice." + int, + "The ID of the survey you wish to delete from Freshservice, including all underlying responses.", # noqa: E501 ], ) -> 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 + Use this tool to delete a specific survey from Freshservice by providing the survey ID. This action will remove the survey along with all its underlying responses.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}".format( @@ -1206,7 +2720,7 @@ async def delete_survey( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1214,14 +2728,18 @@ async def delete_survey( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def activate_csat_survey( context: ToolContext, - csat_survey_id: Annotated[int, "The ID of the CSAT survey to activate in Freshservice."], + csat_survey_id: Annotated[ + int, "The integer 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. + """Activates a CSAT Survey by its ID in Freshservice. - Use this tool to activate the Customer Satisfaction (CSAT) Survey in Freshservice by providing the survey ID.""" # noqa: E501 + Use this tool to activate a Customer Satisfaction (CSAT) Survey in Freshservice by providing the survey's ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/activate".format( @@ -1231,7 +2749,7 @@ async def activate_csat_survey( method="PUT", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1239,14 +2757,16 @@ async def activate_csat_survey( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def deactivate_csat_survey( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def deactivate_freshservice_survey( context: ToolContext, - survey_id: Annotated[int, "The ID of the CSAT survey you wish to deactivate in Freshservice."], + survey_id: Annotated[int, "The integer ID of the CSAT survey to deactivate in Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'deactivate-survey'."]: - """Deactivate a specified CSAT Survey in Freshservice. + """Deactivate a CSAT survey in Freshservice using its ID. - 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 + Use this tool to deactivate a Customer Satisfaction (CSAT) survey in Freshservice by providing the survey's ID. This is helpful when a survey is no longer needed or should not be sent to customers.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/deactivate".format( @@ -1255,7 +2775,7 @@ async def deactivate_csat_survey( method="PUT", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1263,24 +2783,28 @@ async def deactivate_csat_survey( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def view_service_item( context: ToolContext, - service_item_id: Annotated[int, "The ID of the service item you want to retrieve."], + service_item_identifier: Annotated[ + int, "The ID of the service item you want to retrieve from Freshservice." + ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-service-item'."]: - """Retrieve details of a specific service item. + """View a service item's details using its ID. - 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 + Use this tool to retrieve and view details of a specific service item by providing its ID. Call this tool when you need information about a service item from Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + service_item_id=service_item_identifier, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1288,26 +2812,31 @@ async def view_service_item( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_service_items_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_service_items( context: ToolContext, entries_per_page: Annotated[ - int | None, "The number of service items to retrieve per page in a paginated list." + int | None, + "Specifies the number of entries to retrieve in each page of the service items list.", ] = 10, - page_number_to_retrieve: Annotated[ - int | None, "The page number to retrieve for paginated service items." + page_number: Annotated[ + int | None, "The page number to retrieve from the list of service items." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-service-items'."]: - """Retrieve a list of all Service Items in Freshservice.""" + """Retrieve a list of all service items in Freshservice. + + Use this tool to get a complete list of service items available in your Freshservice account. It should be called when you need detailed information about the service items.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1315,17 +2844,18 @@ async def get_service_items_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_catalog_item_fields( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_service_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 + int, "The integer ID of the service item to retrieve from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-catalog-item-fields'."]: - """Retrieve all fields for a specific service catalog item. + """Retrieve all fields of a specified service item in Freshservice. - 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 + This tool retrieves detailed information about all the fields of a specified service item from Freshservice, using the service item's ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -1335,7 +2865,7 @@ async def get_catalog_item_fields( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1343,26 +2873,189 @@ async def get_catalog_item_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_service_request_in_freshservice( + context: ToolContext, + item_id: Annotated[int, "The unique identifier for the item to be requested in Freshservice."], + requester_email: Annotated[ + str, + "The email address of the requester submitting the service request. If not provided, the request is created on behalf of the authenticated agent.", # noqa: E501 + ], + custom_fields_data: Annotated[ + dict[str, str] | None, + "JSON object containing custom fields associated with the Freshservice entity. Use proper key-value pairs relevant to the request.", # noqa: E501 + ] = None, + item_quantity: Annotated[ + int | None, "The number of units of the item needed by the requester. Default is 1." + ] = None, + user_requested_email: Annotated[ + str | None, "Email ID of the user for whom the service is requested." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-service-request'."]: + """Create a service request in Freshservice. + + This tool is used to submit a new service request in Freshservice. Call this tool when you need to create or initiate a service request in the Freshservice platform.""" # noqa: E501 + request_data = remove_none_values({ + "id": item_id, + "quantity": item_quantity, + "requester_email": requester_email, + "requested_for_email": user_requested_email, + "custom_fields": custom_fields_data, + }) + content = json.dumps(request_data) if request_data else None + response = await make_request( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_service_request( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + service_request_id: Annotated[ + int | None, + "The unique integer ID of the service request that needs to be updated in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-service-request'."]: + """Update an existing service request in Freshservice. + + Use this tool to update details of an existing service request in Freshservice when changes are needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESERVICEREQUEST"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not service_request_id: + missing_params.append(("service_request_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICEREQUEST"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICEREQUEST"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests/{service_request_id}".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), + service_request_id=service_request_id, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATESERVICEREQUEST"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def get_solution_articles( context: ToolContext, - entries_per_page: Annotated[ + category_identifier: Annotated[ int | None, - "Specify the number of solution articles to retrieve per page in the paginated results.", + "The unique identifier for the category whose solution articles need to be retrieved.", + ] = None, + entries_per_page: Annotated[ + int | None, "The number of solution articles to retrieve per page for pagination." ] = 30, + folder_id: Annotated[ + int | None, "The ID of the folder whose solution articles need to be retrieved." + ] = None, page_number: Annotated[ - int | None, "The page number of the solution articles to retrieve from Freshservice." + int | None, "The specific page number of the solution articles to retrieve." ] = 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. + """Retrieve all Solution articles from Freshservice. - Use this tool to get a comprehensive list of all Solution articles available in Freshservice.""" + This tool is used to gather a complete list of Solution articles available in Freshservice. It should be called when you need to access or display the entire collection of articles.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles".format( @@ -1372,11 +3065,11 @@ async def get_solution_articles( params=remove_none_values({ "per_page": entries_per_page, "page": page_number, - "folder_id": folder_identifier, - "category_id": solution_category_id, + "folder_id": folder_id, + "category_id": category_identifier, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1384,16 +3077,111 @@ async def get_solution_articles( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_solution_article( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-solution-article'."]: + """Create a new solution article in Freshservice. + + Use this tool to add a new solution article to Freshservice. Call this tool when you need to document solutions or FAQs within the Freshservice platform. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATESOLUTIONARTICLE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATESOLUTIONARTICLE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATESOLUTIONARTICLE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATESOLUTIONARTICLE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def view_solution_article( context: ToolContext, solution_article_id: Annotated[ - int, "The unique integer ID of the solution article to retrieve." + int, "The unique ID of the solution article to retrieve from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-solution-article'."]: - """Retrieve details of a Freshservice solution article. + """Retrieve details of a solution article by ID in Freshservice. - Use this tool to get information about a specific solution article from Freshservice, identified by its article ID.""" # noqa: E501 + Use this tool to view detailed information of a specific solution article in Freshservice. Provide the article ID to retrieve the content and metadata of the article.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}".format( @@ -1403,7 +3191,7 @@ async def view_solution_article( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1411,16 +3199,131 @@ async def view_solution_article( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_solution_article( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + solution_article_id: Annotated[ + int | None, + "The ID of the Freshservice solution article to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-solution-article'."]: + """Update a Freshservice solution article by ID. + + This tool updates a solution article in Freshservice using the provided article ID. It should be called when you need to modify the details of an existing solution article. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESOLUTIONARTICLE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not solution_article_id: + missing_params.append(("solution_article_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESOLUTIONARTICLE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESOLUTIONARTICLE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATESOLUTIONARTICLE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_solution_article( context: ToolContext, - solution_article_id: Annotated[ - int, "ID of the solution article to be deleted from Freshservice." - ], + solution_article_id: Annotated[int, "ID of the solution article to delete from Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-article'."]: - """Delete a solution article from Freshservice by ID. + """Delete a specific solution article from Freshservice. - 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 + Use this tool to delete a solution article in Freshservice by providing its ID. This can be useful for managing outdated or incorrect articles within the service.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}".format( @@ -1430,7 +3333,7 @@ async def delete_solution_article( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1438,22 +3341,25 @@ async def delete_solution_article( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_solution_folders( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_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." + entries_per_page: Annotated[ + int | None, "The number of solution folder entries to retrieve per page." ] = 30, - page_number_to_retrieve: Annotated[ - int | None, "Specify the page number to retrieve from the paginated solution folders list." + pagination_page_number: Annotated[ + int | None, "Specify the page number to retrieve in a paginated list of solution folders." ] = 1, + solution_category_id: Annotated[ + int | None, + "ID of the solution category where the folders reside. This specifies which category's folders to retrieve.", # noqa: E501 + ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-solution-folders'."]: - """Retrieve all Solution Folders from Freshservice. + """Retrieve all solution folders from Freshservice. - Use this tool to fetch a comprehensive list of all the Solution Folders within Freshservice.""" + Use this tool to get a list of all solution folders available in Freshservice. Useful for organizing or managing solution articles.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders".format( @@ -1462,11 +3368,11 @@ async def list_solution_folders( method="GET", params=remove_none_values({ "category_id": solution_category_id, - "per_page": per_page_count, - "page": page_number_to_retrieve, + "per_page": entries_per_page, + "page": pagination_page_number, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1474,14 +3380,111 @@ async def list_solution_folders( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_solution_folder( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-solution-folder'."]: + """Create a new solution folder in Freshservice. + + Use this tool to create a new solution folder in Freshservice, helping organize solutions efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATESOLUTIONFOLDER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATESOLUTIONFOLDER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATESOLUTIONFOLDER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATESOLUTIONFOLDER"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def view_solution_folder( context: ToolContext, - solution_folder_id: Annotated[int, "The unique ID of the solution folder to retrieve details."], + solution_folder_id: Annotated[ + int, "Provide the integer ID of the solution folder you wish to view in Freshservice." + ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-solution-folder'."]: - """Retrieve details of a specific solution folder. + """Retrieve details of a specific solution folder in Freshservice. - Use this tool to obtain information about a particular solution folder by specifying its folder ID within the Freshservice platform.""" # noqa: E501 + Use this tool to obtain information about a specific solution folder within Freshservice by providing the folder ID. It returns detailed data about the folder, which can be useful for managing and organizing IT solutions.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}".format( @@ -1491,7 +3494,7 @@ async def view_solution_folder( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1499,16 +3502,131 @@ async def view_solution_folder( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_solution_folder( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + solution_folder_id: Annotated[ + int | None, + "ID of the solution folder to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-solution-folder'."]: + """Update a solution folder in Freshservice by ID. + + Use this tool to update a specific solution folder in Freshservice by providing the folder ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESOLUTIONFOLDER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not solution_folder_id: + missing_params.append(("solution_folder_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESOLUTIONFOLDER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESOLUTIONFOLDER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATESOLUTIONFOLDER"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_solution_folder( context: ToolContext, - solution_folder_id: Annotated[ - int, "ID of the solution folder to be deleted from Freshservice." - ], + solution_folder_id: Annotated[int, "ID of the solution folder to delete from Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-folder'."]: - """Delete a solution folder in Freshservice. + """Delete a solution folder from Freshservice. - Use this tool to delete a solution folder from Freshservice by specifying its ID.""" + Use this tool to delete a solution folder by its ID in Freshservice when cleanup or reorganization is needed.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}".format( @@ -1518,7 +3636,7 @@ async def delete_solution_folder( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1526,17 +3644,19 @@ async def delete_solution_folder( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int | None, "Specify the number of entries to retrieve per page in a paginated list." ] = 30, page_number_to_retrieve: Annotated[ - int | None, "The page number to retrieve in the paginated list of solution categories." + int | None, "The page number of solution categories to retrieve from Freshservice." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-solution-category'."]: """Retrieve a list of all solution categories in Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories".format( @@ -1545,7 +3665,7 @@ async def get_solution_categories( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1553,14 +3673,67 @@ async def get_solution_categories( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_solution_category( + context: ToolContext, + solution_category_name: Annotated[ + str, + "The desired name for the new solution category to be created in Freshservice. It should be descriptive and unique.", # noqa: E501 + ], + is_default_category: Annotated[ + bool | None, + "Set to true if the category is a default one shipped with the product; such categories cannot have folders added or be renamed or deleted.", # noqa: E501 + ] = None, + solution_category_description: Annotated[ + str | None, "Provide a description for the solution category." + ] = None, + solution_category_id: Annotated[ + int | None, "The unique identifier for the solution category to be created in Freshservice." + ] = None, + solution_category_position: Annotated[ + int | None, + "The position to display the solution category in Freshservice's category listing.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-solution-category'."]: + """Create a new solution category in Freshservice. + + This tool is used to create a new solution category in Freshservice. It should be called when you need to organize solutions by adding a new category in the Freshservice platform.""" # noqa: E501 + request_data = remove_none_values({ + "id": solution_category_id, + "name": solution_category_name, + "description": solution_category_description, + "position": solution_category_position, + "default_category": is_default_category, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def view_solution_category( context: ToolContext, - solution_category_id: Annotated[int, "ID of the solution category to retrieve details for."], + solution_category_id: Annotated[ + int, "The unique 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 + Use this tool to view and retrieve details about a specific solution category using its ID.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}".format( @@ -1570,7 +3743,7 @@ async def view_solution_category( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1578,16 +3751,71 @@ async def view_solution_category( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_solution_category( + context: ToolContext, + solution_category_id: Annotated[ + int, "The ID of the solution category to be updated in Freshservice." + ], + category_unique_id: Annotated[ + int | None, "Unique identifier of the solution category to update. It must be an integer." + ] = None, + is_default_category: Annotated[ + bool | None, + "Indicates if the solution category is a default one, which restricts modifications like adding folders, deletion, or renaming.", # noqa: E501 + ] = None, + solution_category_description: Annotated[ + str | None, + "Provide a description for the solution category being updated. This should be a brief textual summary.", # noqa: E501 + ] = None, + solution_category_name: Annotated[ + str | None, "The new name for the solution category to be updated." + ] = None, + solution_category_position: Annotated[ + int | None, + "The position of the solution category in the category listing. Determines the order when there are multiple categories.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-solution-category'."]: + """Update a solution category in Freshservice by ID. + + Use this tool to update a specific solution category in Freshservice by providing the category ID.""" # noqa: E501 + request_data = remove_none_values({ + "id": category_unique_id, + "name": solution_category_name, + "description": solution_category_description, + "position": solution_category_position, + "default_category": is_default_category, + }) + content = json.dumps(request_data) if request_data else None + 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="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_solution_category( context: ToolContext, solution_category_id: Annotated[ - int, "The unique ID of the solution category to be deleted from Freshservice." + int, "ID of the solution category to delete from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-category'."]: - """Delete a solution category by its ID from Freshservice. + """Delete a solution category in Freshservice by ID. - 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 + Use this tool to delete a specific solution category from Freshservice using the category ID. This is useful when you need to remove outdated or incorrect categories from your knowledge base.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}".format( @@ -1597,7 +3825,7 @@ async def delete_solution_category( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1605,37 +3833,40 @@ async def delete_solution_category( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_all_freshservice_requesters( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_all_requesters( context: ToolContext, entries_per_page: Annotated[ - int | None, "Number of entries to retrieve in each page of the paginated list." + int | None, "The number of requesters to retrieve per page in the 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." + str | None, "The mobile phone number to filter and list corresponding requesters." ] = None, - work_phone_number_for_requesters: Annotated[ + filter_by_work_phone_number: Annotated[ str | None, - "The work phone number to filter requesters with that specific number in Freshservice.", + "The work phone number to filter requesters by. Returns requesters matching the specified work phone number.", # noqa: E501 ] = 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[ + list_active_user_accounts: Annotated[ bool | None, - "Include only active user accounts if true. If false, include only deactivated accounts. Leaving unspecified returns both.", # noqa: E501 + "Set to true to list only active user accounts. If false or not set, both active and deactivated accounts are returned.", # noqa: E501 ] = None, + requester_email: Annotated[ + str | None, + "The email address to list the corresponding requester. Use this to filter results to a specific requester by email.", # noqa: E501 + ] = None, + requester_filter_query: Annotated[ + str | None, + "A URL-encoded string to filter the list of requesters. Use parameters like first_name, job_title, etc. Example: \"job_title:'HR Manager' AND created_at:>'2018-08-10'\".", # noqa: E501 + ] = None, + retrieve_page_number: Annotated[ + int | None, "Specify the page number to retrieve in the list of requesters." + ] = 1, ) -> 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 + Call this tool to get a comprehensive list of all requesters from the Freshservice platform.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters".format( @@ -1644,15 +3875,15 @@ async def get_all_freshservice_requesters( method="GET", params=remove_none_values({ "per_page": entries_per_page, - "page": page_number_to_retrieve, + "page": retrieve_page_number, "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, + "work_phone_number": filter_by_work_phone_number, + "active": list_active_user_accounts, + "query": requester_filter_query, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1660,16 +3891,111 @@ async def get_all_freshservice_requesters( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_freshservice_requester( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_requester( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-requester'."]: + """Create a new requester in Freshservice. + + Use this tool to add a new requester to Freshservice whenever you need to register someone in the system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATENEWREQUESTER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWREQUESTER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWREQUESTER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATENEWREQUESTER"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_requester_info( context: ToolContext, requester_id: Annotated[ - int, "The unique integer ID of the requester to retrieve from Freshservice." + int, "Integer representing the 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. + """Retrieve requester details using their 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 + Use this tool to get detailed information about a requester by providing their ID through Freshservice's API.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}".format( @@ -1679,7 +4005,7 @@ async def get_freshservice_requester( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1687,26 +4013,144 @@ async def get_freshservice_requester( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_requester_from_freshservice( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_requester_in_freshservice( context: ToolContext, - requester_id_to_delete: Annotated[ - int, "The ID of the requester to be deleted from Freshservice. This should be an integer." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + requester_id_to_update: Annotated[ + int | None, + "The unique integer ID of the requester to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-requester'."]: + """Update an existing requester in Freshservice. + + Use this tool to modify details of an existing requester in Freshservice by specifying their unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEREQUESTERINFRESHSERVICE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not requester_id_to_update: + missing_params.append(("requester_id_to_update", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEREQUESTERINFRESHSERVICE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEREQUESTERINFRESHSERVICE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_update, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEREQUESTERINFRESHSERVICE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_requester( + context: ToolContext, + requester_id: Annotated[ + int, + "The unique ID of the requester to be deleted from Freshservice. This ID should be an integer and is required to identify which requester needs to be removed.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-requester'."]: - """Delete a requester by ID from Freshservice. + """Delete a requester from Freshservice by ID. - Use this tool to delete a specific requester from Freshservice by providing their ID.""" + Use this tool to remove a requester from Freshservice using their unique ID. It should be called when a requester needs to be permanently deleted from the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + requester_id=requester_id, ), method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1714,16 +4158,18 @@ async def delete_requester_from_freshservice( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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. + """Permanently delete a requester and their tickets in Freshservice. - Use this tool to permanently delete a requester and all the tickets they have requested in Freshservice when such removal is necessary.""" # noqa: E501 + This tool is used to permanently remove a requester and all of their associated tickets from Freshservice. It should be called when you need to completely erase a requester's data, including all their ticket history.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/forget".format( @@ -1733,7 +4179,7 @@ async def delete_requester_and_tickets( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1741,26 +4187,28 @@ async def delete_requester_and_tickets( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def convert_requester_to_agent( context: ToolContext, - requester_identifier: Annotated[ - int, "The integer ID of the requester to convert into an occasional agent." + requester_id_to_convert: Annotated[ + int, "The numeric ID of the requester to be converted into an agent." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'convert-requester-to-agent'."]: - """Convert a requester into an occasional agent. + """Convert a requester to an agent in Freshservice. - 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 + Use this tool to convert a Freshservice requester into an occasional agent with the SD Agent role. This action removes any existing group memberships from the requester.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + requester_id=requester_id_to_convert, ), method="PUT", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1768,19 +4216,21 @@ async def convert_requester_to_agent( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def merge_requesters( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def merge_secondary_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." + int, "The ID of the primary requester to merge other requesters into." + ], + secondary_requester_ids: Annotated[ + list[int], "List of IDs of secondary requesters to be merged into the primary requester." ], ) -> 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 + Use this tool to combine one or more secondary requester profiles into a primary requester profile, consolidating their information into a single account.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -1790,7 +4240,7 @@ async def merge_requesters( method="PUT", params=remove_none_values({"secondary_requesters": secondary_requester_ids}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1798,29 +4248,30 @@ async def merge_requesters( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_requester_fields( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_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.", + int | None, "Number of requester fields to retrieve per page in the paginated list." ] = 10, - page_number_to_retrieve: Annotated[ - int | None, "Specify the page number of requester fields to retrieve from Freshservice." + page_number: Annotated[ + int | None, "The page number to retrieve in a paginated list of requester fields." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-requester-fields'."]: - """Retrieve all requester fields from Freshservice. + """Retrieve a list of all requester fields in 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 + Use this tool to obtain a complete list of requester fields in your Freshservice instance.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1828,43 +4279,42 @@ async def get_requester_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_freshservice_agents( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_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[ + agent_employment_status: Annotated[ str | None, - "The email address of the requester for which the corresponding agent needs to be listed.", + "Specifies if the list should include full-time or occasional agents. Use 'fulltime' or 'occasional'.", # noqa: E501 ] = None, + entries_per_page: Annotated[ + int | None, "Specify the number of entries to retrieve per page in the result set." + ] = 10, filter_by_mobile_phone_number: Annotated[ - str | None, - "Filter agents by a specific mobile phone number to list the corresponding requesters.", + str | None, "Filter agents by the given mobile phone number." ] = None, filter_by_work_phone_number: Annotated[ - str | None, - "Work phone number to filter the list of agents by their corresponding requesters.", + str | None, "Filter agents by their work phone number to retrieve 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[ + list_active_accounts: Annotated[ bool | None, - "Set to true to list active accounts, false to list deactivated ones, or omit to include both.", # noqa: E501 + "List only active user accounts. Use true for active accounts, false for deactivated ones.", + ] = None, + page_number_to_retrieve: Annotated[ + int | None, "The specific page number to retrieve in the list of Freshservice agents." + ] = 1, + query_filter: Annotated[ + str | None, + "A URL-encoded query string to filter agents based on parameters like first_name, job_title, etc. Example: \"job_title:'HR Manager' AND created_at:>'2018-08-10'\".", # noqa: E501 + ] = None, + requester_email: Annotated[ + str | None, "The email address to find the corresponding requester agent in Freshservice." ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-agents'."]: - """Retrieve a list of all Agents in Freshservice. + """Retrieve a list of all agents from Freshservice. - Use this tool to get a comprehensive list of all agents currently active in Freshservice, useful for administrative and reporting purposes.""" # noqa: E501 + Call this tool to get a comprehensive list of all agents present in your Freshservice account. It will return the agent details necessary for managing or reviewing team configurations.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents".format( @@ -1877,12 +4327,12 @@ async def get_freshservice_agents( "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, + "state": agent_employment_status, + "active": list_active_accounts, + "query": query_filter, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1890,53 +4340,119 @@ async def get_freshservice_agents( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_freshservice_agent( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_agent( context: ToolContext, - agent_id: Annotated[ - int, "The unique integer ID of the Freshservice agent to retrieve details for." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-agent'."]: + """Create a new agent in Freshservice. + + This tool allows you to create a new agent in Freshservice. Use it when you need to add a team member to your Freshservice account. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEAGENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEAGENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEAGENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEAGENT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_agent_info( + context: ToolContext, + agent_identifier: Annotated[int, "The unique ID of the agent to retrieve from Freshservice."], ) -> 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 + Use this tool to obtain information about a specific agent in Freshservice by providing the agent's ID. It can be called when detailed agent information is needed for administration or support purposes.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + agent_id=agent_identifier, ), - method="DELETE", + method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1944,17 +4460,160 @@ async def convert_agent_to_requester( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_existing_agent( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + agent_identifier: Annotated[ + int | None, + "ID of the agent to be updated in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-agent'."]: + """Update an existing agent in Freshservice. + + Use this tool to modify details of an existing agent in the Freshservice platform. It's suitable when you need to change agent information such as name, email, or role. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEEXISTINGAGENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not agent_identifier: + missing_params.append(("agent_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGAGENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGAGENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_identifier, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEEXISTINGAGENT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def convert_agent_to_requester( + context: ToolContext, + agent_id_to_convert: Annotated[int, "The unique ID of the agent to convert to a requester."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-agent'."]: + """Convert an agent to a requester in Freshservice. + + Use this tool to convert an agent, identified by their ID, into a requester in Freshservice. This action is typically used when an agent no longer needs agent-level access.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_to_convert, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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.", + int, "The ID of the agent to permanently delete along with their tickets." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'forget-agent'."]: - """Permanently deletes an agent and their tickets. + """Permanently delete an agent and their requested 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 + Use this tool to permanently delete an agent from the system along with any tickets they have requested.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}/forget".format( @@ -1964,7 +4623,7 @@ async def delete_agent_and_tickets( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1972,17 +4631,21 @@ async def delete_agent_and_tickets( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_agent_fields( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_agent_fields( context: ToolContext, entries_per_page: Annotated[ - int | None, "The number of entries to retrieve per page in a paginated list." + int | None, "Specify the number of entries to retrieve per page in the paginated list." ] = 10, page_number_to_retrieve: Annotated[ - int | None, "The page number to retrieve for paginated results." + int | None, "The page number to retrieve in the list of agent fields." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-agent-fields'."]: - """Retrieve a list of all Agent Fields in Freshservice.""" + """Retrieve all agent fields in Freshservice. + + Use this tool to get a complete list of agent fields from Freshservice. This could be useful for understanding the available fields when managing agents.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/agent_fields".format( @@ -1991,7 +4654,7 @@ async def retrieve_agent_fields( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -1999,35 +4662,38 @@ async def retrieve_agent_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_ticket_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_freshservice_tickets( context: ToolContext, - ticket_filter_type: Annotated[ + filter_by_requester_email: Annotated[ + str | None, "Filter tickets by the requester's email address." + ] = None, + include_fields_in_response: Annotated[ str | None, - "Apply pre-defined filters to fetch specific ticket sets. Options: 'new_and_my_open', 'watching', 'spam', 'deleted'.", # noqa: E501 + "Specify certain fields to include in the response. Examples: 'stats' for ticket's closed and resolved times, 'requester' for requester's details.", # noqa: E501 ] = None, - requester_email_filter: Annotated[ - str | None, "Filter tickets by the requester's email ID to retrieve specific ticket data." + requester_id_filter: Annotated[ + int | None, + "Filter tickets by the ID of the requester to view those created by a specific user.", ] = None, - filter_by_requester_id: Annotated[ - int | None, "Filter tickets created by a specific requester using their ID." - ] = None, - filter_by_updated_since: Annotated[ + ticket_filter: Annotated[ str | None, - "Specify the ISO 8601 date-time to filter tickets updated since that time. Example: '2015-01-19T02:00:00Z'.", # noqa: E501 + "Apply a pre-defined filter to fetch specific types of tickets. Options are: new_and_my_open, watching, spam, deleted.", # noqa: E501 ] = None, - fields_to_include_in_response: Annotated[ + ticket_sort_order: Annotated[ str | None, - "Specify which additional fields to include in the ticket response. Options are 'stats' and 'requester'.", # noqa: E501 + "Sort the list of tickets in ascending ('asc') or descending ('desc') order. Default is 'desc'.", # noqa: E501 ] = None, - sort_order: Annotated[ + updated_since: Annotated[ str | None, - "Order to sort the ticket list. Supported values: 'asc' for ascending and 'desc' for descending. Default is 'desc'.", # noqa: E501 + "Filter tickets based on their update timestamp. Use ISO 8601 format, e.g., '2015-01-19T02:00:00Z'.", # noqa: E501 ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-tickets'."]: - """Fetches the list of all support tickets in Freshservice. + """Fetch a list of tickets from 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 + Use this tool to retrieve all tickets currently in Freshservice. Ideal for viewing open or closed tickets and managing support inquiries.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets".format( @@ -2035,15 +4701,15 @@ async def fetch_ticket_list( ), 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, + "filter": ticket_filter, + "email": filter_by_requester_email, + "requester_id": requester_id_filter, + "updated_since": updated_since, + "include": include_fields_in_response, + "order_type": ticket_sort_order, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2051,27 +4717,122 @@ async def fetch_ticket_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_ticket_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_ticket( context: ToolContext, - ticket_id: Annotated[int, "ID of the Freshservice ticket to be retrieved."], - include_fields_in_ticket_response: Annotated[ + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ str | None, - "Specify fields to include in the ticket response, such as 'stats', 'requester', 'conversations', etc.", # noqa: E501 + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket'."]: + """Create a new support ticket in Freshservice. + + Use this tool to generate a new support ticket in Freshservice, which is useful for tracking and managing customer support issues. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICETICKET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICETICKET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICETICKET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICETICKET"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_ticket_details( + context: ToolContext, + ticket_id: Annotated[int, "The unique ID of the FreshService ticket to fetch details for."], + include_additional_ticket_fields: Annotated[ + str | None, + "Specify fields to include in the ticket response, like 'stats' or 'requester'. Supported options are conversations, requester, problem, stats, assets, change, related_tickets.", # noqa: E501 ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket'."]: - """Retrieve details of a FreshService ticket using its ID. + """Retrieve details of a FreshService ticket by ID. - Use this tool to obtain detailed information about a specific ticket in FreshService by providing the ticket ID.""" # noqa: E501 + Use this tool to obtain detailed information about a specific ticket in Freshservice when given a ticket ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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}), + params=remove_none_values({"include": include_additional_ticket_fields}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2079,24 +4840,139 @@ async def fetch_ticket_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def edit_freshservice_ticket( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id: Annotated[ + int | None, + "The ID of the Freshservice ticket to update. Must be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-ticket'."]: + """Edit a Freshservice ticket efficiently. + + This tool is used to update the details of an existing ticket in Freshservice. It should be called when modifications or updates to a ticket's information are needed, such as changing the status, priority, or other relevant ticket details. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["EDITFRESHSERVICETICKET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id: + missing_params.append(("ticket_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["EDITFRESHSERVICETICKET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["EDITFRESHSERVICETICKET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["EDITFRESHSERVICETICKET"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def remove_freshservice_ticket( context: ToolContext, - ticket_id_to_delete: Annotated[int, "ID of the Freshservice support ticket to delete."], + ticket_id: Annotated[int, "The unique ID of the Freshservice ticket to delete."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket'."]: - """Remove a Freshservice support ticket by ID. + """Remove a ticket from Freshservice. - Use this tool to delete a specific support ticket in Freshservice using its ticket ID.""" + Use this tool to delete a ticket in Freshservice by providing the ticket ID. It should be called when a ticket needs to be removed from the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), ticket_id=ticket_id ), method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2104,26 +4980,27 @@ async def remove_freshservice_ticket( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + ticket_id: Annotated[ + int, "Provide the integer ID of the ticket you want to restore in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'restore-ticket'."]: - """Restore a deleted Freshservice ticket. + """Restore a deleted ticket in Freshservice. - Use this tool to restore a deleted ticket in Freshservice by providing the ticket ID.""" + Use this tool to restore a deleted ticket in Freshservice by specifying the ticket ID. Call this when you need to recover a ticket that was previously deleted.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + 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({}), + content=content, ) try: return {"response_json": response.json()} @@ -2131,17 +5008,360 @@ async def restore_deleted_ticket( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_child_ticket( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + parent_ticket_id: Annotated[ + int | None, + "ID of the main ticket for which a child ticket will be created. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-child-ticket'."]: + """Create a new child ticket on a Freshservice ticket. + + Use this tool to add a child ticket to an existing ticket in Freshservice. It is useful for managing ticket hierarchies and organizing support tasks. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECHILDTICKET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not parent_ticket_id: + missing_params.append(("parent_ticket_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECHILDTICKET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECHILDTICKET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/create_child_ticket".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), + ticket_id=parent_ticket_id, + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATECHILDTICKET"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def post_ticket_reply( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id: Annotated[ + int | None, + "ID of the ticket to which the reply will be added. This must be an integer representing the unique identifier of the ticket. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket-reply'."]: + """Add a reply to a Freshservice ticket. + + This tool allows you to post a new reply to a specified ticket in Freshservice. Use it when you need to update a ticket with additional information or respond to queries. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["POSTTICKETREPLY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id: + missing_params.append(("ticket_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["POSTTICKETREPLY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["POSTTICKETREPLY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/reply".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), ticket_id=ticket_id + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["POSTTICKETREPLY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def add_ticket_note( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id_to_add_note: Annotated[ + int | None, + "The ID of the Freshservice ticket to which the note will be added. This ID is required to specify the particular ticket to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket-note'."]: + """Add a new note to a Freshservice ticket. + + Use this tool to post a new note on a specific Freshservice ticket by providing the ticket ID. This is useful for updating ticket information, providing status updates, or adding additional details related to the ticket. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ADDTICKETNOTE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id_to_add_note: + missing_params.append(("ticket_id_to_add_note", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["ADDTICKETNOTE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["ADDTICKETNOTE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/notes".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), + ticket_id=ticket_id_to_add_note, + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["ADDTICKETNOTE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 - ], + ticket_id: Annotated[int, "ID of the ticket from Freshservice for fetching conversations."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-conversations'."]: - """Fetches all conversations for a specific Freshservice ticket. + """Fetches all conversations from a specified 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 + Use this tool to retrieve a list of all conversations associated with a specific ticket in Freshservice. This can be helpful for reviewing past interactions and understanding communication history related to the ticket.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations".format( @@ -2150,7 +5370,7 @@ async def get_ticket_conversations( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2158,30 +5378,154 @@ async def get_ticket_conversations( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def edit_ticket_conversation( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_identifier: Annotated[ + int | None, + "Integer representing the ID of the ticket whose conversation needs editing. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + conversation_id: Annotated[ + int | None, + "ID of the reply or note that needs to be updated in the Freshservice ticket. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-ticket-conversation'."]: + """Edit a conversation in a Freshservice ticket. + + Use this tool to edit the conversation on an existing Freshservice ticket. It is useful for updating information, correcting errors, or adding new details to a specific conversation within a ticket. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["EDITTICKETCONVERSATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_identifier: + missing_params.append(("ticket_identifier", "path")) + if not conversation_id: + missing_params.append(("conversation_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["EDITTICKETCONVERSATION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["EDITTICKETCONVERSATION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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=ticket_identifier, + conversation_id=conversation_id, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["EDITTICKETCONVERSATION"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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: Annotated[ + int, "ID of the reply or note that needs to be deleted from a Freshservice ticket." ], - conversation_id_to_remove: Annotated[ - int, "The ID of the specific reply or note to delete from a Freshservice ticket." + ticket_id_for_removal: Annotated[ + int, "The ID of the Freshservice ticket from which the conversation should be removed." ], ) -> 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 + Use this tool to delete a specific conversation from a Freshservice ticket. Ideal for managing ticket discussions by removing unnecessary or old conversations.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + ticket_id=ticket_id_for_removal, + conversation_id=conversation_id, ), method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2189,22 +5533,24 @@ async def remove_ticket_conversation( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_ticket_tasks( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_ticket_tasks( context: ToolContext, ticket_request_id: Annotated[ - int, "ID of the Freshservice ticket for which tasks are to be retrieved." + int, "The unique ID of the ticket request to retrieve associated tasks from Freshservice." ], - 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." + page_number_to_retrieve: Annotated[ + int | None, "The page number of tasks to retrieve from the paginated list." ] = 1, + tasks_per_page: Annotated[ + int | None, "Specify the number of tasks to retrieve per page in a paginated response." + ] = 30, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-tasks'."]: - """Retrieve tasks for a specific Freshservice ticket. + """Retrieve tasks for a specific ticket ID. - Use this tool to obtain all tasks linked to a given ticket in Freshservice by providing the ticket ID.""" # noqa: E501 + This tool is used to fetch the list of tasks associated with a specific ticket request from Freshservice, using the ticket ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks".format( @@ -2212,9 +5558,9 @@ async def get_ticket_tasks( ticket_id=ticket_request_id, ), method="GET", - params=remove_none_values({"per_page": tasks_per_page, "page": page_number}), + params=remove_none_values({"per_page": tasks_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2222,31 +5568,147 @@ async def get_ticket_tasks( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_ticket_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id_for_task_creation: Annotated[ + int | None, + "Integer ID of the ticket request for which a new task is to be created. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket-task'."]: + """Create a new task for a ticket in Freshservice. + + Use this tool to add a new task to an existing ticket in Freshservice. It should be called when a new task needs to be organized or managed within a specific ticket. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETICKETTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id_for_task_creation: + missing_params.append(("ticket_id_for_task_creation", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATETICKETTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATETICKETTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_id_for_task_creation, + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATETICKETTASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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_id: Annotated[ + int, "The unique integer ID of the task to retrieve from the ticket request." ], - task_identifier: Annotated[ - int, - "The unique identifier for the task to be retrieved. Provide this to get task details from a ticket.", # noqa: E501 + ticket_request_id: Annotated[ + int, "The unique integer ID of the ticket request in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket-task'."]: - """Retrieve details of a task from a ticket in Freshservice. + """Retrieve a specific task from a ticket request. - 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 + Use this tool to get information about a task associated with a specific ticket in Freshservice by providing the ticket and task IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + task_id=task_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2254,26 +5716,121 @@ async def retrieve_ticket_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_ticket_task( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_freshservice_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. + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id: Annotated[ + int | None, + "The ID of the ticket request to identify the specific ticket in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + task_id: Annotated[ + int | None, + "The unique ID of the task to be updated in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-ticket-task'."]: + """Update a task on a Freshservice ticket. - 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( + Use this tool to update an existing task on a ticket in Freshservice. This is helpful for modifying task details such as status, description, or other properties associated with a ticket's task. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICETICKETTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id: + missing_params.append(("ticket_id", "path")) + if not task_id: + missing_params.append(("task_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICETICKETTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICETICKETTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( 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", + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICETICKETTASK"]), params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), ) try: return {"response_json": response.json()} @@ -2281,22 +5838,56 @@ async def delete_ticket_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_ticket_task( + context: ToolContext, + task_id: Annotated[int, "The unique ID of the task to delete from a Freshservice ticket."], + ticket_identifier: Annotated[ + int, "The unique integer ID of the ticket containing the task to be deleted." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket-task'."]: + """Deletes a task from a Freshservice ticket. + + This tool deletes a specific task associated with a ticket in Freshservice, identified by the ticket and task ID. Use this to manage and update tasks on tickets efficiently.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_identifier, + task_id=task_id, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, + "The ID of the ticket request for which the time entries need to be retrieved. This should be an integer value identifying a specific ticket in Freshservice.", # noqa: E501 ], - number_of_entries_per_page: Annotated[ - int | None, "The number of time entries to retrieve in each page of a paginated list." + entries_per_page: Annotated[ + int | None, "Number of time entries to retrieve per page in a paginated list." ] = 30, page_number: Annotated[ - int | None, "The page number to retrieve from the paginated list of time entries." + int | None, "The page number of time entries to retrieve for the given ticket ID." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-time-entries'."]: - """Retrieve time entries for a given ticket ID. + """Retrieve time entries for a specific ticket in Freshservice. - 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 + Use this tool to get all time entries associated with a specific ticket ID from Freshservice. Ideal for tracking time spent and managing ticket details.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2304,9 +5895,9 @@ async def get_ticket_time_entries( ticket_id=ticket_request_id, ), method="GET", - params=remove_none_values({"per_page": number_of_entries_per_page, "page": page_number}), + params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2314,21 +5905,136 @@ async def get_ticket_time_entries( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_ticket_time_entry( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_ticket_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id: Annotated[ + int | None, + "The ID of the ticket request for which the time entry will be created. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket-time-entry'."]: + """Create a new time entry on a Freshservice ticket. + + Use this tool to log a new time entry for a specific ticket in Freshservice. Useful for tracking time spent on ticket resolution or management. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETICKETTIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id: + missing_params.append(("ticket_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATETICKETTIMEENTRY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATETICKETTIMEENTRY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_id + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATETICKETTIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_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 + "The unique integer ID of the ticket request for which the time entry details are needed.", ], time_entry_id: Annotated[ - int, - "Provide the ID of the time entry to retrieve specific details from a ticket in Freshservice.", # noqa: E501 + int, "The unique identifier for the time entry you want to retrieve details for." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket-time-entry'."]: - """Retrieve a time entry for a specific ticket in Freshservice. + """Retrieve a specific time entry for a 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 + This tool is used to fetch details of a specific time entry associated with a ticket in Freshservice by providing the ticket and time entry IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2339,7 +6045,7 @@ async def get_ticket_time_entry( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2347,20 +6053,142 @@ async def get_ticket_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_ticket_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_request_id: Annotated[ + int | None, + "The unique integer ID of the ticket request to update the time entry for. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + time_entry_id: Annotated[ + int | None, + "The unique integer ID of the time entry to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-ticket-time-entry'."]: + """Update time entry for a ticket in Freshservice. + + Use this tool to update an existing time entry on a ticket in Freshservice. It's suitable for modifying the details of time tracked on support tickets to ensure accurate record-keeping. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATETICKETTIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_request_id: + missing_params.append(("ticket_request_id", "path")) + if not time_entry_id: + missing_params.append(("time_entry_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETTIMEENTRY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETTIMEENTRY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATETICKETTIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + "The unique identifier of the ticket from which the time entry will be deleted. Provide a valid ticket ID.", # noqa: E501 ], + time_entry_id: Annotated[int, "The ID of the time entry to be deleted from the ticket."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket-time-entry'."]: - """Deletes a time entry from a Freshservice ticket. + """Delete 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 + Use this tool to delete a specific time entry from a ticket in Freshservice when it is no longer needed or was added incorrectly.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2371,7 +6199,7 @@ async def delete_ticket_time_entry( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2379,33 +6207,87 @@ async def delete_ticket_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_freshservice_changes( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_custom_ticket_source( context: ToolContext, - change_filter_name: Annotated[ + source_name: Annotated[str, "Specify the name for the custom ticket source in Freshservice."], + created_timestamp: Annotated[ str | None, - "Specify the filter name to retrieve changes. Possible values: 'my_open', 'unassigned', 'closed', 'release_requested', 'deleted', 'all'.", # noqa: E501 + "The timestamp when the source was created in Freshservice. Format: YYYY-MM-DDTHH:MM:SSZ.", ] = None, - requester_id: Annotated[ - str | None, "ID of the person who requested the changes to filter results." + is_visible_for_selection: Annotated[ + bool | None, "True if the source value is visible for selection in Freshservice." ] = None, - requester_email: Annotated[ - str | None, "Retrieve changes by the requester's email address in Freshservice." - ] = None, - updated_since: Annotated[ + last_modified_timestamp: Annotated[ str | None, - "Retrieve changes updated after a specified date. Date format should be YYYY-MM-DD.", + "The timestamp indicating when the custom ticket source was last modified. Expected in ISO 8601 format.", # noqa: E501 ] = None, - page_size: Annotated[ + source_id: Annotated[int | None, "Unique identifier for the custom ticket source."] = None, + source_position_in_list: Annotated[ + int | None, + "The position of the custom ticket source in the source list. It determines where this source appears in the list of sources.", # noqa: E501 + ] = None, + source_present_by_default: Annotated[ + bool | None, "Set to true if the source value is present by default in Freshservice." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-ticket-field-source'."]: + """Create a custom ticket source in Freshservice. + + Use this tool to create a custom ticket source within the Freshservice platform. Ideal for when you need to define new ticket origin types beyond the defaults provided.""" # noqa: E501 + request_data = remove_none_values({ + "id": source_id, + "name": source_name, + "position": source_position_in_list, + "default": source_present_by_default, + "visible": is_visible_for_selection, + "created_at": created_timestamp, + "updated_at": last_modified_timestamp, + }) + content = json.dumps(request_data) if request_data else None + response = await make_request( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/ticket_fields/sources".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_change_list( + context: ToolContext, + changes_per_page: Annotated[ int | None, "Specify the number of changes to retrieve per page in a paginated list." ] = 30, + filter_by_updated_since: Annotated[ + str | None, "Retrieve changes updated since a specific date (in ISO 8601 format)." + ] = None, + filter_name_for_change_retrieval: Annotated[ + str | None, + "Specify the filter to retrieve changes, such as 'my_open', 'unassigned', or 'closed'.", + ] = None, page_number: Annotated[ - int | None, "The specific page number to retrieve in a paginated list of changes." + int | None, "The page number of the change list to retrieve from Freshservice." ] = 1, + requester_email: Annotated[ + str | None, "The email address of the requester to filter changes by their email." + ] = None, + requester_id: Annotated[ + str | None, "Specify the requester ID to filter changes associated with this ID." + ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-changes'."]: - """Retrieve all changes from Freshservice. + """Retrieve a list of all changes in 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 + Use this tool to get a comprehensive list of changes in Freshservice. It can be called when you need to access or review all changes recorded in the Freshservice system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes".format( @@ -2413,15 +6295,15 @@ async def list_freshservice_changes( ), method="GET", params=remove_none_values({ - "filter_name": change_filter_name, + "filter_name": filter_name_for_change_retrieval, "requester_id": requester_id, "email": requester_email, - "updated_since": updated_since, - "per_page": page_size, + "updated_since": filter_by_updated_since, + "per_page": changes_per_page, "page": page_number, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2429,14 +6311,113 @@ async def list_freshservice_changes( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_change_request( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_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. + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-change'."]: + """Create a new Change request in Freshservice. - Use this tool to retrieve detailed information about a specific Change request using its ID from the Freshservice platform.""" # noqa: E501 + Use this tool to initiate a new Change request within the Freshservice platform. This is typically called when a user wants to propose a change that needs to be tracked and managed through Freshservice. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGEREQUEST"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGEREQUEST"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGEREQUEST"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGEREQUEST"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_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'."]: + """Retrieve a specific change request by ID from Freshservice. + + Use this tool to access information about a specific change request in Freshservice by providing its unique ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}".format( @@ -2446,7 +6427,7 @@ async def retrieve_change_request( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2454,14 +6435,133 @@ async def retrieve_change_request( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_freshservice_change( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_change_request( 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. + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + change_request_id: Annotated[ + int | None, + "The unique identifier for the Change request to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-change'."]: + """Update an existing Change request in 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 + Use this tool to modify the details of an existing Change request in Freshservice. Useful for updating information or status of Change requests. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECHANGEREQUEST"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not change_request_id: + missing_params.append(("change_request_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECHANGEREQUEST"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECHANGEREQUEST"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATECHANGEREQUEST"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_change_request( + context: ToolContext, + change_request_id: Annotated[ + int, "The unique integer ID of the change request to delete from Freshservice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change'."]: + """Delete a change request by ID from Freshservice. + + Use this tool to delete a specific change request from Freshservice by providing the change ID. It confirms the deletion of the request.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}".format( @@ -2471,7 +6571,7 @@ async def delete_freshservice_change( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2479,23 +6579,23 @@ async def delete_freshservice_change( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_change_notes( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_change_request_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.", + "The unique ID of the change request to retrieve notes for, required to access specific change request data.", # noqa: E501 ], notes_per_page: Annotated[ - int | None, "The number of notes to retrieve per page in a paginated list." + int | None, "Specify the number of notes to retrieve per page for pagination." ] = 30, - page_number_to_retrieve: Annotated[ - int | None, "The specific page number of notes to retrieve for pagination." - ] = 1, + page_number: Annotated[int | None, "The page number to retrieve for paginated notes."] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-notes'."]: - """Retrieve notes from a specific change request. + """Retrieve notes from a Freshservice change request. - Use this tool to retrieve the notes related to a specific change request in Freshservice by providing the change ID.""" # noqa: E501 + Use this tool to get all notes associated with a specific change request ID in Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes".format( @@ -2503,9 +6603,9 @@ async def retrieve_change_notes( change_id=change_request_id, ), method="GET", - params=remove_none_values({"per_page": notes_per_page, "page": page_number_to_retrieve}), + params=remove_none_values({"per_page": notes_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2513,29 +6613,93 @@ async def retrieve_change_notes( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_change_note( + context: ToolContext, + change_request_id: Annotated[ + int, "ID of the change request to which the new note will be added." + ], + note_body_html: Annotated[ + str, + "The body of the note in HTML format. Use this to format the note with HTML tags for styling.", # noqa: E501 + ], + note_body_plain_text: Annotated[ + str | None, "The content of the change note in plain text format." + ] = None, + note_creation_datetime: Annotated[ + str | None, + "The date and time when the note was created, in ISO 8601 format (e.g., '2023-01-01T12:00:00Z').", # noqa: E501 + ] = None, + note_last_updated: Annotated[ + str | None, "Date and time when the note was last updated, in ISO 8601 format." + ] = None, + note_unique_id: Annotated[ + int | None, "Unique identifier for the note being created. Must be an integer." + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, "List of email addresses to notify about the change note." + ] = None, + user_identifier_for_note_creator: Annotated[ + int | None, "Unique ID of the user who created the note in Freshservice." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-change-note'."]: + """Create a new note on a change request in Freshservice. + + This tool creates a new note attached to a specific change request in Freshservice. It should be called when there's a need to append additional information or updates related to an ongoing change request.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": user_identifier_for_note_creator, + "notify_emails": notification_email_addresses, + "body": note_body_html, + "body_text": note_body_plain_text, + "created_at": note_creation_datetime, + "updated_at": note_last_updated, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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[ + change_request_id: Annotated[ int, - "The unique identifier for the note to be retrieved from a change request in Freshservice.", + "The unique identifier for the change request. Provide this to retrieve the specific note associated with it.", # noqa: E501 + ], + note_id: Annotated[ + int, "The unique identifier for the note you want to retrieve from a Change request." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change-note'."]: - """Retrieve a specific note from a change request in Freshservice. + """Retrieve a note on a Change request from 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 + Use this tool to get details of a specific note associated with a Change request by providing the change and note IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + note_id=note_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2543,19 +6707,87 @@ async def retrieve_change_note( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_change_note( + context: ToolContext, + change_request_id: Annotated[int, "Unique identifier for the change request to be updated."], + note_id: Annotated[ + int, + "The ID of the existing note to be updated. Provide the unique integer identifier for the note.", # noqa: E501 + ], + note_body_html: Annotated[ + str | None, + "The body of the note in HTML format. Use HTML tags to style the content appropriately.", + ] = None, + note_body_text: Annotated[ + str | None, "The content of the note in plain text format to be updated." + ] = None, + note_creation_time: Annotated[ + str | None, + "Date and time when the note was created; format should follow ISO 8601 standard.", + ] = None, + note_unique_id: Annotated[ + int | None, "The unique identifier for the specific note to be updated." + ] = None, + note_updated_datetime: Annotated[ + str | None, "The date and time when the note was last updated. Use ISO 8601 format." + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, + "Email addresses to notify about the updated note. Provide as an array of strings.", + ] = None, + user_id_of_note_creator: Annotated[ + int | None, + "Unique ID of the user who originally created the note. Used to identify the note's author.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-change-note'."]: + """Update an existing note on a Freshservice change request. + + Use this tool to modify an existing note on a specific change request in Freshservice by providing the change and note IDs.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": user_id_of_note_creator, + "notify_emails": notification_email_addresses, + "body": note_body_html, + "body_text": note_body_text, + "created_at": note_creation_time, + "updated_at": note_updated_datetime, + }) + content = json.dumps(request_data) if request_data else None + 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="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, "The unique identifier of the Change request from which the note is to be deleted." ], note_id: Annotated[ - int, "The unique identifier of the note to delete from a Change request in Freshservice." + int, + "The unique identifier of the note to be deleted from the Change request in Freshservice. This is an integer value.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-note'."]: - """Delete a note from a Change request in Freshservice. + """Delete a note from a Change request by ID 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 + Use this tool to delete a specific note from a Change request in Freshservice by providing the change ID and note ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2566,7 +6798,7 @@ async def delete_change_note( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2574,22 +6806,24 @@ async def delete_change_note( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_change_tasks( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_change_request_tasks( context: ToolContext, change_request_id: Annotated[ - int, "ID of the Change request for retrieving associated tasks from Freshservice." + int, "ID of the Change request to retrieve tasks for in 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." + page_number_to_retrieve: Annotated[ + int | None, "The specific page number of tasks to be retrieved for a Change request." ] = 1, + tasks_per_page: Annotated[ + int | None, "Specify the number of tasks to retrieve per page in a paginated response." + ] = 10, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-tasks'."]: - """Retrieve tasks for a specific Change request in Freshservice. + """Retrieve tasks for a specific Change request from 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 + Use this tool to get all tasks associated with a specific Change request using its ID in Freshservice. Ideal for managing or reviewing change tasks.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks".format( @@ -2597,9 +6831,9 @@ async def retrieve_change_tasks( change_id=change_request_id, ), method="GET", - params=remove_none_values({"per_page": tasks_per_page, "page": page_number}), + params=remove_none_values({"per_page": tasks_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2607,28 +6841,148 @@ async def retrieve_change_tasks( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_change_task_info( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_change_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + change_request_id: Annotated[ + int | None, + "ID of the change request to add a task to. It should be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-change-task'."]: + """Create a task on a change request in Freshservice. + + This tool creates a new task on a specified change request within Freshservice. It should be called when you need to add tasks to an ongoing change request to track specific actions or activities. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECHANGETASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not change_request_id: + missing_params.append(("change_request_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECHANGETASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATECHANGETASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATECHANGETASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_freshservice_change_task( context: ToolContext, change_request_id: Annotated[ - int, "ID of the change request to retrieve the corresponding task details." + int, "The unique integer ID of the change request to retrieve the task from." + ], + task_id: Annotated[ + int, + "The unique integer ID of the task to be retrieved from a Change request in Freshservice.", ], - 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. + """Retrieve a task from a Freshservice Change request by ID. - Use this tool to get detailed information about a specific task within a change request using its ID in Freshservice.""" # noqa: E501 + Use this tool to fetch details of a specific task associated with a Change request in Freshservice, identified by its task and change IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + task_id=task_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2636,31 +6990,121 @@ async def retrieve_change_task_info( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def remove_change_task( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_existing_change_task( context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], 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 - ], + int | None, + "The unique identifier for the Change request to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, 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. + int | None, + "The unique ID of the task to be updated in the Freshservice Change request. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-change-task'."]: + """Update a task within a Freshservice Change request. - 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( + Use this tool to update an existing task on a Change request in Freshservice. It should be called when a task associated with a change needs to be modified, such as changing its status, description, or other attributes. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEEXISTINGCHANGETASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not change_request_id: + missing_params.append(("change_request_id", "path")) + if not task_identifier: + missing_params.append(("task_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGCHANGETASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEEXISTINGCHANGETASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( 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", + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEEXISTINGCHANGETASK"]), params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), ) try: return {"response_json": response.json()} @@ -2668,24 +7112,57 @@ async def remove_change_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_change_time_entries( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_change_request_task( 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 + int, "The unique integer ID of the change request from which the task will be deleted." ], - time_entries_per_page: Annotated[ - int | None, - "Specify the number of time entries to retrieve per page. Helps in paginated responses.", + task_id: Annotated[ + int, "The ID of the task to be deleted from the change request in Freshservice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-task'."]: + """Delete a task from a Freshservice change request. + + This tool deletes a specified task from a change request in Freshservice using the change and task IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_id, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_change_request_time_entries( + context: ToolContext, + change_request_id: Annotated[ + int, "The ID of the Change request to retrieve time entries for in Freshservice." + ], + entries_per_page: Annotated[ + int | None, "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 from the paginated list of time entries." + int | None, "Specify the page number of the time entries to retrieve for paginated results." ] = 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 + Use this tool to get all time entries associated with a specific Change request in Freshservice by providing the Change ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2693,12 +7170,9 @@ async def get_change_time_entries( change_id=change_request_id, ), method="GET", - params=remove_none_values({ - "per_page": time_entries_per_page, - "page": page_number_to_retrieve, - }), + params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2706,20 +7180,138 @@ async def get_change_time_entries( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_change_request_time_entry( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_change_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + change_request_id: Annotated[ + int | None, + "The unique identifier of the change request for which you want to create a time entry. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-change-time-entry'."]: + """Create a time entry for a change request in Freshservice. + + Use this tool to log a new time entry associated with a specific change request in Freshservice. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGETIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not change_request_id: + missing_params.append(("change_request_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGETIMEENTRY"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGETIMEENTRY"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECHANGETIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_change_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." + int, "ID of the change request to retrieve the specific time entry." ], + time_entry_id: Annotated[int, "The unique ID of the specific time entry to be retrieved."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change-time-entry'."]: - """Retrieve a time entry from a Change request by ID. + """Retrieve a time entry on 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 + Use this tool to obtain details about a specific time entry associated with a Change request in Freshservice, identified by its Change ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2730,7 +7322,7 @@ async def retrieve_change_request_time_entry( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2738,21 +7330,148 @@ async def retrieve_change_request_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_change_time_entry_freshservice( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_freshservice_change_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + change_request_id: Annotated[ + int | None, + "ID of the change request to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + time_entry_identifier: Annotated[ + int | None, + "Provide the integer ID of the time entry to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-change-time-entry'."]: + """Update a time entry on a Freshservice Change request. + + Use this tool to modify an existing time entry for a Change request in Freshservice, specifying the Change ID and the Time Entry ID to update. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICECHANGETIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not change_request_id: + missing_params.append(("change_request_id", "path")) + if not time_entry_identifier: + missing_params.append(("time_entry_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICECHANGETIMEENTRY"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICECHANGETIMEENTRY"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_identifier, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICECHANGETIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_change_time_entry( 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 + "The unique identifier of the change request from which the time entry will be deleted. This is required to specify the change for the deletion process.", # 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 + int, "The unique identifier for the time entry to be deleted from a change request." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-time-entry'."]: - """Delete a time entry from a Change request in Freshservice. + """Deletes a specific 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 + Use this tool to delete a time entry associated with a specific change request in Freshservice. It requires the IDs of the change request and the time entry to process the deletion.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -2763,7 +7482,7 @@ async def delete_change_time_entry_freshservice( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2771,25 +7490,28 @@ async def delete_change_time_entry_freshservice( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_all_projects( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def list_freshservice_projects( context: ToolContext, entries_per_page: Annotated[ - int | None, "Specify the number of project entries to retrieve per page for pagination." + int | None, + "The number of projects to retrieve per page in a paginated result set from Freshservice.", ] = 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." + bool | None, "Set to true to retrieve archived projects, false for active projects." ] = False, + filter_project_status: Annotated[ + str | None, "Filter projects based on their status: all, open, in_progress, or completed." + ] = "all", + page_number: Annotated[ + int | None, "The specific page number of projects to retrieve for paginated results." + ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-projects'."]: - """Retrieve a list of all projects in Freshservice. + """Retrieve all projects from Freshservice. - Call this tool to get a comprehensive list of all projects managed within the Freshservice platform.""" # noqa: E501 + Use this tool to obtain a comprehensive list of projects stored in the Freshservice platform. Ideal for users needing to access or review project details managed within Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects".format( @@ -2799,11 +7521,11 @@ async def retrieve_all_projects( params=remove_none_values({ "per_page": entries_per_page, "page": page_number, - "status": project_status_filter, + "status": filter_project_status, "archived": filter_archived_projects, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2811,16 +7533,109 @@ async def retrieve_all_projects( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_freshservice_project( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_project( context: ToolContext, - project_id: Annotated[ - int, "The unique integer ID of the project to retrieve from Freshservice." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", ], -) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-project'."]: - """Retrieve project details from Freshservice by ID. + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-project'."]: + """Create a new project in Freshservice. - Use this tool to access project information from Freshservice by providing the project ID.""" + Use this tool to create a new project within the Freshservice platform. This is useful for managing tasks, timelines, and resources efficiently in Freshservice. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROJECT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_project_details( + context: ToolContext, + project_id: Annotated[int, "The integer ID of the project to retrieve from Freshservice."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-project'."]: + """Retrieve detailed information about a specific project. + + Use this tool to obtain comprehensive data for a project by specifying the project ID. It accesses the Freshservice API to fetch and return details, helping in managing and understanding ongoing projects.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}".format( @@ -2830,7 +7645,7 @@ async def retrieve_freshservice_project( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2838,17 +7653,134 @@ async def retrieve_freshservice_project( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_project( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + project_id: Annotated[ + int | None, + "The unique identifier of the project to update. Must be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-project'."]: + """Update an existing project in Freshservice. + + Use this tool to modify details of an existing project in Freshservice. Ideal for changes or updates to project information. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPROJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not project_id: + missing_params.append(("project_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEPROJECT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + "The unique identifier of the project to be deleted in Freshservice. This should be a numeric value.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-project'."]: - """Deletes a project in Freshservice by ID. + """Delete an existing project in Freshservice. - 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 + Use this tool to delete a specified project by its ID in the Freshservice platform. Ideal for managing and removing outdated or unnecessary projects.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}".format( @@ -2858,7 +7790,7 @@ async def delete_freshservice_project( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2866,16 +7798,16 @@ async def delete_freshservice_project( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." - ], + project_id: Annotated[int, "The unique integer ID of the project to archive in Freshservice."], ) -> 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 + Use this tool to archive a project within Freshservice. This is useful for organizing and managing completed or inactive projects.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/archive".format( @@ -2884,7 +7816,7 @@ async def archive_project( method="POST", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2892,17 +7824,18 @@ async def archive_project( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + int, "The unique integer ID of the archived project to restore in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'restore-project'."]: - """Restores an archived project in Freshservice. + """Restore 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 + Use this tool to restore a previously archived project within the Freshservice platform. It is useful when you need to reactivate a project for continued work or review.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/restore".format( @@ -2911,7 +7844,7 @@ async def restore_archived_project( method="POST", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2919,27 +7852,30 @@ async def restore_archived_project( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_project_tasks( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_project_tasks( context: ToolContext, - project_id: Annotated[int, "The ID of the project for which you want to retrieve tasks."], + project_id: Annotated[int, "The ID of the project whose tasks are to be retrieved."], entries_per_page: Annotated[ - int | None, "The number of entries to retrieve in each page for pagination." + int | None, "Specify the number of entries to retrieve per page in a paginated task list." ] = 30, - page_number: Annotated[ - int | None, "The specific page number of the task list to retrieve." + page_number_to_retrieve: Annotated[ + int | None, "The page number of the project tasks list to retrieve." ] = 1, task_filter: Annotated[ str | None, - "Filter tasks by status. Options: all, open, in_progress, completed, overdue, unassigned.", + "Filter tasks by status: 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." + int | None, + "Filter tasks by their parent task ID. Useful for narrowing down tasks under specific parent tasks.", # noqa: E501 ] = None, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-project-tasks'."]: - """Retrieve a list of all project tasks in Freshservice. + """Retrieve a list of project tasks from 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 + Use this tool to get a list of all tasks within a specific project in Freshservice. It should be called when you need detailed task information for project management or tracking purposes.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/tasks".format( @@ -2948,12 +7884,12 @@ async def list_project_tasks( method="GET", params=remove_none_values({ "per_page": entries_per_page, - "page": page_number, + "page": page_number_to_retrieve, "filter": task_filter, "parent_id": task_parent_id, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2961,26 +7897,144 @@ async def list_project_tasks( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_project_task_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_project_task( 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. + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + project_id: Annotated[ + int | None, + "ID of the project to which the task will be added. This must be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-project-task'."]: + """Create a new 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 + Use this tool to create a new project task within Freshservice. It should be called when you need to add a task to an existing project. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPROJECTTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not project_id: + missing_params.append(("project_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPROJECTTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPROJECTTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEPROJECTTASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def view_project_task_details( + context: ToolContext, + project_id_for_task: Annotated[ + int, "The unique identifier of the project to which the task belongs." + ], + task_id: Annotated[int, "The unique identifier for the task you want to retrieve details for."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-project-task'."]: + """Retrieve details of a specific project task. + + Use this tool to view detailed information about a task within a specified project on Freshservice. Ideal for retrieving task status, assignees, or due dates.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + project_id=project_id_for_task, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -2988,20 +8042,141 @@ async def get_project_task_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_project_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + project_identifier: Annotated[ + int | None, + "The unique ID of the project containing the task to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + task_id: Annotated[ + int | None, + "The ID of the task to be updated in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-project-task'."]: + """Update an existing project task in Freshservice. + + This tool updates an existing project task in Freshservice. It should be called when modifications to task details are needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPROJECTTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not project_identifier: + missing_params.append(("project_identifier", "path")) + if not task_id: + missing_params.append(("task_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROJECTTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROJECTTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEPROJECTTASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, "The unique identifier of the project from which the task should be deleted." ], + task_id_to_delete: Annotated[int, "ID of the task to be deleted in Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-project-task'."]: - """Deletes a specified project task in Freshservice. + """Delete a 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 + This tool deletes an existing project task in Freshservice. Use it when you need to remove a specific task from a project by providing the project and task identifiers.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3012,7 +8187,7 @@ async def delete_project_task( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3020,13 +8195,15 @@ async def delete_project_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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. + """Retrieve fields for the Change Object in Freshservice. - Call this tool to obtain a list of all fields that make up the Change Object in Freshservice.""" + Use this tool to obtain a list of all fields that make up the Change Object in Freshservice. Ideal for understanding the structure or schema of change forms.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/change_form_fields".format( @@ -3035,7 +8212,7 @@ async def get_change_form_fields( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3043,13 +8220,15 @@ async def get_change_form_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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. + """Retrieve fields of the Release Object in Freshservice. - Use this tool to obtain all the fields that constitute a release object in the Freshservice platform.""" # noqa: E501 + Use this tool to obtain all fields that make up the Release Object in Freshservice. This is useful when needing to understand or display the structure of a release form.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/release_form_fields".format( @@ -3058,7 +8237,7 @@ async def get_release_form_fields( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3066,24 +8245,22 @@ async def get_release_form_fields( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + str | None, "Filter announcements by their state: archived, active, scheduled, or unread." ] = 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, + page_number: Annotated[int | None, "The page number to retrieve for paginated results."] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-announcement'."]: - """Retrieve all announcements from Freshservice. + """Retrieve a list of 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 + Use this tool to get all current announcements in Freshservice. Call this when you need to display or access information about company or service announcements.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements".format( @@ -3093,10 +8270,10 @@ async def get_freshservice_announcements( params=remove_none_values({ "state": announcement_state, "per_page": announcements_per_page, - "page": retrieve_page_number, + "page": page_number, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3104,16 +8281,111 @@ async def get_freshservice_announcements( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_announcement_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_announcement( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-announcement'."]: + """Create a new announcement in Freshservice. + + Use this tool to create a new announcement in Freshservice, ideal for disseminating information or updates within your service platform. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEANNOUNCEMENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEANNOUNCEMENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEANNOUNCEMENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEANNOUNCEMENT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_announcement( context: ToolContext, announcement_id: Annotated[ - int, "The unique integer ID of the announcement to retrieve from Freshservice." + int, "The unique integer ID of the announcement to be retrieved from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-announcement'."]: - """Retrieve specific announcement details from Freshservice. + """Retrieve a specific announcement from Freshservice. - Use this tool to fetch details of a specific announcement using its ID in Freshservice.""" + Call this tool to get details of an announcement using its ID from Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}".format( @@ -3123,7 +8395,7 @@ async def fetch_announcement_details( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3131,16 +8403,137 @@ async def fetch_announcement_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_freshservice_announcement( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + announcement_id: Annotated[ + int | None, + "The unique ID of the announcement to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-announcement'."]: + """Update an existing Freshservice announcement. + + Use this tool to modify an existing announcement in Freshservice. This is useful for updating content, title, or any other property of an announcement identified by its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEANNOUNCEMENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not announcement_id: + missing_params.append(("announcement_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEANNOUNCEMENT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEANNOUNCEMENT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEANNOUNCEMENT"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_freshservice_announcement( context: ToolContext, announcement_id_to_delete: Annotated[ - int, "The ID of the announcement to delete from Freshservice." + int, "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. + """Delete an announcement from Freshservice by ID. - Use this tool to delete an announcement in Freshservice by providing its ID. Useful for managing and removing outdated or incorrect announcements.""" # noqa: E501 + Use this tool to delete a specific announcement in Freshservice by providing the announcement ID. It confirms the successful deletion of the announcement.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}".format( @@ -3150,7 +8543,7 @@ async def delete_freshservice_announcement( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3158,23 +8551,24 @@ async def delete_freshservice_announcement( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_freshservice_problems( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_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." + int | None, "Specify the page number to retrieve from the paginated list of problems." ] = 1, + problems_per_page: Annotated[ + int | None, "Specify the number of problems to retrieve per page in a paginated list." + ] = 30, + retrieve_problems_updated_since: Annotated[ + str | None, "Retrieve problems updated since the specified date (in ISO 8601 format)." + ] = None, ) -> 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 + This tool fetches a list of all problems recorded in Freshservice. It should be called when there is a need to access or review issues tracked in the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems".format( @@ -3182,12 +8576,12 @@ async def retrieve_freshservice_problems( ), method="GET", params=remove_none_values({ - "updated_since": updated_since, + "updated_since": retrieve_problems_updated_since, "per_page": problems_per_page, "page": page_number_to_retrieve, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3195,26 +8589,92 @@ async def retrieve_freshservice_problems( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_freshservice_problem( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_new_problem( context: ToolContext, - problem_identifier: Annotated[ - int, "The unique ID of the problem in Freshservice to retrieve details for." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", ], -) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem'."]: - """Retrieve a specific problem in Freshservice by ID. + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-problem'."]: + """Create a new problem in Freshservice. - 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( + Use this tool to create a new problem in Freshservice when you need to log an issue or fault that may require investigation and resolution. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATENEWPROBLEM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWPROBLEM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATENEWPROBLEM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( 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, + url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN") ), - method="GET", + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATENEWPROBLEM"]), params=remove_none_values({}), - headers=remove_none_values({}), - data=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), ) try: return {"response_json": response.json()} @@ -3222,24 +8682,26 @@ async def retrieve_freshservice_problem( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_problem( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_problem_details( 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. + problem_id: Annotated[int, "ID of the problem to retrieve from Freshservice."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem'."]: + """Retrieve details of a specific problem by ID. - Use this tool to delete a problem from Freshservice by providing its unique ID.""" + Use this tool to get detailed information about a problem in Freshservice by specifying its ID. Useful for retrieving specific problem data for analysis or reporting.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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", + method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3247,23 +8709,168 @@ async def delete_problem( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_problem_notes( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_service_problem( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + problem_id: Annotated[ + int | None, + "The integer ID of the problem to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-problem'."]: + """Update details of an existing problem in Freshservice. + + Use this tool to update information for a specific problem within the Freshservice platform by providing the necessary problem ID and details to modify. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESERVICEPROBLEM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not problem_id: + missing_params.append(("problem_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICEPROBLEM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICEPROBLEM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATESERVICEPROBLEM"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_freshservice_problem( + context: ToolContext, + problem_id_to_delete: Annotated[ + int, "Enter the ID of the problem you want to delete from Freshservice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem'."]: + """Delete a problem by ID from Freshservice. + + Use this tool to delete a specific problem from Freshservice using its ID. This operation is useful when you need to remove a resolved or irrelevant problem from the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_to_delete, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_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 + int, "The integer ID of the problem for which notes will be retrieved from Freshservice." ], notes_per_page: Annotated[ - int | None, "The number of notes to retrieve per page in the paginated results." + int | None, "Specify the number of notes to retrieve per page in the paginated list." ] = 30, - page_number: Annotated[ - int | None, "The page number of the notes to retrieve for pagination purposes." + page_number_to_retrieve: Annotated[ + int | None, "The page number of notes to retrieve from Freshservice." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problem-notes'."]: - """Retrieve notes for a specific problem ID in Freshservice. + """Retrieve notes from a specific problem 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 + Use this tool to get all notes associated with a specific problem in Freshservice by providing the problem's ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes".format( @@ -3271,9 +8878,9 @@ async def get_problem_notes( problem_id=problem_id, ), method="GET", - params=remove_none_values({"per_page": notes_per_page, "page": page_number}), + params=remove_none_values({"per_page": notes_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3281,28 +8888,93 @@ async def get_problem_notes( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def add_note_to_problem( + context: ToolContext, + note_html_body: Annotated[ + str, "The HTML formatted content of the note to be added to the problem." + ], + problem_id: Annotated[int, "The ID of the problem to which the note will be added."], + note_body_text: Annotated[ + str | None, + "The content of the note in plain text format to be added to the problem in Freshservice.", + ] = None, + note_creation_datetime: Annotated[ + str | None, "The date and time when the note was created, formatted as a string." + ] = None, + note_creator_user_id: Annotated[ + int | None, + "The unique ID of the user creating the note. This identifies who is responsible for the note addition.", # noqa: E501 + ] = None, + note_unique_id: Annotated[ + int | None, + "The unique ID to be assigned to the note, ensuring it is distinct within Freshservice.", + ] = None, + note_updated_datetime: Annotated[ + str | None, + "The date and time when the note was last updated. Use the format 'YYYY-MM-DDTHH:MM:SSZ'.", + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, + "A list of email addresses to notify about the note. Each address should be in string format.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-problem-note'."]: + """Add a new note to a problem in Freshservice. + + Use this tool to create and add a new note to an existing problem in Freshservice, helping track updates or relevant information.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": note_creator_user_id, + "notify_emails": notification_email_addresses, + "body": note_html_body, + "body_text": note_body_text, + "created_at": note_creation_datetime, + "updated_at": note_updated_datetime, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 integer ID of the note to be retrieved on the Freshservice problem." + ], + problem_id: Annotated[ + int, "The ID of the problem for which the note is being retrieved. It should 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. + """Retrieve a note on a Freshservice problem using IDs. - 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 + Use this tool to get detailed information about a specific note associated with a problem in Freshservice by providing the problem and note IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + problem_id=problem_id, note_id=note_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3310,20 +8982,80 @@ async def retrieve_problem_note( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_problem_note( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_problem_note( context: ToolContext, + note_id: Annotated[int, "ID of the note to be updated."], + problem_id: Annotated[int, "The unique ID of the problem to update the note for."], + creator_user_id: Annotated[ + int | None, + "Unique ID of the user who originally created the note. This is necessary for update operations to ensure the note's authorship is correctly handled.", # noqa: E501 + ] = None, + note_body_html: Annotated[ + str | None, "The body of the note in HTML format for updating an existing note." + ] = None, + note_body_text: Annotated[ + str | None, "The content of the note in plain text format for the problem note update." + ] = None, + note_created_datetime: Annotated[ + str | None, + "The datetime when the note was initially created in ISO 8601 format (e.g., '2023-03-10T10:00:00Z').", # noqa: E501 + ] = None, + note_unique_id: Annotated[int | None, "The unique ID of the note to be updated."] = None, + note_update_datetime: Annotated[ + str | None, "The date and time at which the note was updated, in ISO 8601 format." + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, "List of email addresses to notify about the note update." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-problem-note'."]: + """Update a note on an existing problem in Freshservice. + + This tool updates an existing note on a specified problem in Freshservice. Use this when you need to modify details or correct information in a note associated with a problem.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": creator_user_id, + "notify_emails": notification_email_addresses, + "body": note_body_html, + "body_text": note_body_text, + "created_at": note_created_datetime, + "updated_at": note_update_datetime, + }) + content = json.dumps(request_data) if request_data else None + 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="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_freshservice_problem_note( + context: ToolContext, + note_id: Annotated[ + int, "The unique ID of the note to be deleted from a problem in Freshservice." + ], 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." + "The unique ID of the problem from which you want to delete a note. This ID is required to specify the target problem in Freshservice.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-note'."]: - """Delete a note from a specific problem in Freshservice. + """Delete a specific note from a 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 + Use this tool to delete a specific note from a problem in Freshservice by providing the problem ID and note ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3334,7 +9066,7 @@ async def delete_problem_note( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3342,20 +9074,23 @@ async def delete_problem_note( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, + "The ID of the problem for which tasks need to be retrieved. This identifies the specific problem in Freshservice.", # noqa: E501 ], + page_number: Annotated[int | None, "The page number of the task list to retrieve."] = 1, tasks_per_page: Annotated[ - int | None, "Specify the number of tasks to retrieve per page for pagination." + int | None, "The number of tasks to retrieve per page in the paginated list." ] = 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. + """Retrieve tasks associated with a specific problem ID. - Use this tool to get a list of tasks associated with a specific problem by providing the problem ID.""" # noqa: E501 + Use this tool to get the list of tasks related to a particular problem in Freshservice by providing the problem ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks".format( @@ -3365,7 +9100,7 @@ async def get_problem_tasks( method="GET", params=remove_none_values({"per_page": tasks_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3373,19 +9108,137 @@ async def get_problem_tasks( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_problem_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + problem_identifier: Annotated[ + int | None, + "ID of the problem for which a new task will be created. It must be an integer representing the specific problem in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-problem-task'."]: + """Create a new task on a problem in Freshservice. + + This tool creates a new task associated with a specific problem in the Freshservice system. Use it when you need to assign tasks to a problem for better issue management. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROBLEMTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not problem_identifier: + missing_params.append(("problem_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROBLEMTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROBLEMTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_identifier, + ), + method="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICEPROBLEMTASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, + "The unique identifier for the problem used to retrieve the task details from Freshservice.", # noqa: E501 ], task_id: Annotated[ - int, "The unique identifier for the task to retrieve from the specified problem." + int, "ID of the task to be retrieved from the specified problem, expected as an integer." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem-task'."]: - """Retrieve details of a specific task from a problem in Freshservice. + """Retrieve 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 + This tool retrieves the details of a task associated with a specific problem in Freshservice, using the problem and task IDs provided.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3396,7 +9249,7 @@ async def retrieve_problem_task( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3404,15 +9257,143 @@ async def retrieve_problem_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_problem_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + problem_id: Annotated[ + int | None, + "The unique identifier for the problem to which the task is linked. This is an integer value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + task_identifier: Annotated[ + int | None, + "Unique integer identifier for the specific task to update within a problem in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-problem-task'."]: + """Update an existing task on a Freshservice problem. + + This tool updates a specific task linked to an existing problem in Freshservice. Use it to modify details of a task within a problem context. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPROBLEMTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not problem_id: + missing_params.append(("problem_id", "path")) + if not task_identifier: + missing_params.append(("task_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROBLEMTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPROBLEMTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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_identifier, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEPROBLEMTASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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."], + problem_id: Annotated[ + int, "The unique identifier for the problem from which the task will be deleted." + ], + task_id: Annotated[ + int, "The unique integer ID of the task to be deleted from the specified problem." + ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-task'."]: - """Delete a task from a problem in Freshservice. + """Delete a specific 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 + Use this tool to delete a task associated with a specific problem in Freshservice by providing the problem and task IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3423,7 +9404,7 @@ async def delete_problem_task( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3431,23 +9412,25 @@ async def delete_problem_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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.", + int, "The unique ID of the Freshservice problem to retrieve time entries for." ], entries_per_page: Annotated[ - int | None, "The number of time entries to retrieve per page in a paginated list." + int | None, "The number of time entries to retrieve in each page of a paginated list." ] = 10, page_number_to_retrieve: Annotated[ - int | None, "The page number to retrieve in the paginated list of time entries." + int | None, + "The page number to retrieve from the paginated list of time entries for the specified problem.", # noqa: E501 ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problem-time-entries'."]: - """Retrieve time entries for a specific problem by ID. + """Retrieve time entries for a specific Freshservice problem. - 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 + Use this tool to get all time entries associated with a particular problem in Freshservice by providing the problem ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3457,7 +9440,7 @@ async def get_problem_time_entries( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3465,17 +9448,136 @@ async def get_problem_time_entries( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_problem_time_entry( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_problem_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + problem_id: Annotated[ + int | None, + "The ID of the problem for which the time entry is to be created. Must be an integer value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-problem-time-entry'."]: + """Create a new time entry for a problem in Freshservice. + + This tool creates a new time entry on a specified problem in Freshservice. It should be called when you need to log time spent on a problem within the service. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPROBLEMTIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not problem_id: + missing_params.append(("problem_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPROBLEMTIMEENTRY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPROBLEMTIMEENTRY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEPROBLEMTIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_problem_time_entry( context: ToolContext, problem_id: Annotated[ - int, "The unique identifier for the problem to retrieve a time entry from in Freshservice." + int, "The unique identifier for the problem to retrieve the associated time entry." + ], + time_entry_id: Annotated[ + int, "An integer representing the ID of the specific time entry to be retrieved." ], - 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. + """Retrieve a time entry for a specific problem in Freshservice. - 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 + Use this tool to get detailed information about a time entry associated with a specific problem in Freshservice when provided with the problem ID and time entry ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3486,7 +9588,7 @@ async def get_problem_time_entry( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3494,30 +9596,160 @@ async def get_problem_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_problem_time_entry( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_freshservice_problem_time_entry( context: ToolContext, - problem_identifier: Annotated[ - int, "The unique ID representing the problem from which you want to delete a time entry." + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + problem_id: Annotated[ + int | None, + "ID of the problem whose time entry needs to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + time_entry_id: Annotated[ + int | None, + "The unique integer ID of the time entry to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-problem-time-entry'."]: + """Update an existing time entry on a Freshservice problem. + + Use this tool to modify details of a time entry recorded on a specific problem within Freshservice. This is helpful for correcting or adjusting recorded time related to problem management. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEPROBLEMTIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not problem_id: + missing_params.append(("problem_id", "path")) + if not time_entry_id: + missing_params.append(("time_entry_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEPROBLEMTIMEENTRY"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEPROBLEMTIMEENTRY"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICEPROBLEMTIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_freshservice_problem_time_entry( + context: ToolContext, + problem_id: Annotated[ + int, + "ID of the problem from which the time entry will be deleted. This should be an integer value.", # noqa: E501 ], time_entry_id: Annotated[ - int, "The unique identifier for the time entry to be deleted from the specified problem." + int, + "The numeric ID of the time entry to be deleted. This is required to identify which time entry to remove from the specified Freshservice problem.", # noqa: E501 ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-time-entry'."]: - """Delete a time entry from a specified problem in Freshservice. + """Delete a specific time entry from a Freshservice problem. - 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 + Use this tool to delete a specific time entry associated with a problem in Freshservice by providing the problem and time entry IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + problem_id=problem_id, time_entry_id=time_entry_id, ), method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3525,13 +9757,108 @@ async def delete_problem_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_onboarding_request_form( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-onboarding-request-form'."]: + """Retrieve all fields in the onboarding request form. + + This tool retrieves a list of all fields in the initiator onboarding request form from Freshservice, which can be used to understand the data structure required for the onboarding process. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["GETONBOARDINGREQUESTFORM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["GETONBOARDINGREQUESTFORM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["GETONBOARDINGREQUESTFORM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), + url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/form".format( + freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN") + ), + method="GET", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["GETONBOARDINGREQUESTFORM"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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. + """Retrieve all onboarding requests for a specific 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 + Use this tool to obtain all onboarding requests associated with a particular user, aiding in user management and tracking.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests".format( @@ -3540,7 +9867,7 @@ async def get_user_onboarding_requests( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3548,16 +9875,112 @@ async def get_user_onboarding_requests( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_onboarding_request( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_onboarding_request( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-onboarding-request'."]: + """Create a new onboarding request in Freshservice. + + Use this tool to initiate a new employee onboarding process in Freshservice. It should be called when a new hire needs to be onboarded, capturing all necessary details and confirming the creation of the request. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEONBOARDINGREQUEST"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEONBOARDINGREQUEST"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEONBOARDINGREQUEST"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEONBOARDINGREQUEST"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_onboarding_request( context: ToolContext, onboarding_request_id: Annotated[ - int, "The unique display ID of the onboarding request to retrieve details for." + int, + "The ID number representing the specific onboarding request to retrieve from Freshservice.", ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-onboarding-request'."]: - """Retrieve details of a specific onboarding request. + """Retrieve a specific onboarding request by ID. - 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 + Use this tool to get details about a specific onboarding request from Freshservice by providing the request ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/{request_id}".format( @@ -3567,7 +9990,7 @@ async def retrieve_onboarding_request( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3575,13 +9998,15 @@ async def retrieve_onboarding_request( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_onboarding_request_tickets( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def fetch_onboarding_tickets( context: ToolContext, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-onboarding-request-tickets'."]: - """Retrieve FreshService Tickets for a specific Onboarding Request. + """Retrieve tickets for specific onboarding requests. - 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 + This tool fetches details of FreshService Tickets linked to a particular Onboarding Request. Use it to access related ticket information based on the onboarding request ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/id/tickets".format( @@ -3590,7 +10015,7 @@ async def get_onboarding_request_tickets( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3598,13 +10023,13 @@ async def get_onboarding_request_tickets( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_canned_responses( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_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.""" + """Retrieve a list of all Canned Responses in Freshservice.""" + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses".format( @@ -3613,7 +10038,7 @@ async def get_canned_responses( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3621,16 +10046,115 @@ async def get_canned_responses( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_freshservice_canned_response( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-canned-response'."]: + """Create a new canned response in Freshservice. + + Use this tool to create a new canned response in a Freshservice account. It should be called when there is a need to automate the creation of standard replies to frequent inquiries. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECANNEDRESPONSE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECANNEDRESPONSE"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + + REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECANNEDRESPONSE"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEFRESHSERVICECANNEDRESPONSE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, "The unique ID of the canned response 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. + """Retrieve details of a Freshservice canned response by ID. - Call this tool to get details of a specific Canned Response using its ID. Useful for accessing predefined responses in Freshservice.""" # noqa: E501 + Use this tool to obtain the details of a specific canned response from Freshservice, given its unique ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3640,7 +10164,7 @@ async def get_canned_response( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3648,16 +10172,133 @@ async def get_canned_response( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_canned_response( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + canned_response_id: Annotated[ + int | None, + "The ID of the canned response you wish to update. This should be an integer value that uniquely identifies the response within Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-canned-response'."]: + """Update a canned response in Freshservice. + + Use this tool to update an existing canned response in Freshservice. It modifies the details of a specific canned response identified by its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECANNEDRESPONSE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not canned_response_id: + missing_params.append(("canned_response_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECANNEDRESPONSE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATECANNEDRESPONSE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATECANNEDRESPONSE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_canned_response( context: ToolContext, canned_response_id: Annotated[ - int, "The unique integer ID of the canned response to delete from Freshservice." + int, "The unique ID of the canned response you want to delete from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-canned-response'."]: - """Delete a specific canned response from Freshservice. + """Delete a Canned Response from Freshservice. - Use this tool to delete a canned response from Freshservice by providing its unique ID.""" + Use this tool to delete a specific Canned Response in Freshservice by providing its ID. Ideal for managing and cleaning up unused or outdated responses.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3667,7 +10308,7 @@ async def delete_canned_response( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3675,13 +10316,15 @@ async def delete_canned_response( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_freshservice_canned_response_folders( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_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 + This tool retrieves a list of all canned response folders available in Freshservice. It should be called when you need to access or manage pre-written responses for different scenarios or queries in Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders".format( @@ -3690,7 +10333,7 @@ async def get_freshservice_canned_response_folders( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3698,17 +10341,70 @@ async def get_freshservice_canned_response_folders( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_canned_response_folder( + context: ToolContext, + folder_name: Annotated[ + str, "The name of the new canned response folder to be created in Freshservice." + ], + canned_response_folder_id: Annotated[ + int | None, "Unique identifier for the canned response folder. It must be an integer value." + ] = None, + folder_created_at: Annotated[ + str | None, "The timestamp indicating when the folder was created, formatted as a string." + ] = None, + folder_type: Annotated[ + str | None, + "Specifies the type of the canned response folder, indicating its purpose or categorization.", # noqa: E501 + ] = None, + initial_responses_count: Annotated[ + int | None, + "Specify the initial number of responses in the new canned response folder, typically starting at 0.", # noqa: E501 + ] = None, + updated_at_timestamp: Annotated[ + str | None, "The timestamp of the last update to the folder in ISO 8601 format." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-canned-response-folder'."]: + """Create a new canned response folder in Freshservice. + + This tool creates a new canned response folder in Freshservice. Use it when you need to organize canned responses into a new folder within the Freshservice platform.""" # noqa: E501 + request_data = remove_none_values({ + "id": canned_response_folder_id, + "name": folder_name, + "type": folder_type, + "responses_count": initial_responses_count, + "created_at": folder_created_at, + "updated_at": updated_at_timestamp, + }) + content = json.dumps(request_data) if request_data else None + 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="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + int, "ID of the canned response folder to be retrieved from Freshservice." ], ) -> 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 + Use this tool to fetch the details of a specific canned response folder by its ID from Freshservice. It is helpful for accessing pre-defined response templates for customer support or information retrieval.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3718,7 +10414,7 @@ async def get_canned_response_folder( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3726,17 +10422,77 @@ async def get_canned_response_folder( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_canned_response_folder( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_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 + "The ID of the canned response folder to update in Freshservice. This is required to identify which folder needs modification.", # noqa: E501 + ], + folder_creation_date: Annotated[ + str | None, + "The date and time the canned response folder was originally created. Expected format is ISO 8601 (e.g., '2023-10-12T10:20:30Z').", # noqa: E501 + ] = None, + folder_name: Annotated[ + str | None, + "The new name for the canned response folder. This will replace the current name.", + ] = None, + folder_responses_count: Annotated[ + int | None, "Specifies the number of responses in the canned response folder to update." + ] = None, + folder_type: Annotated[ + str | None, + "Specify the type of the canned response folder. This may relate to its category or purpose.", # noqa: E501 + ] = None, + last_updated_timestamp: Annotated[ + str | None, + "The timestamp of when the folder was last updated. Expected in ISO 8601 format.", + ] = None, + new_folder_id: Annotated[ + int | None, "The new ID to assign to the canned response folder. This should be an integer." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-canned-response-folder'."]: + """Update an existing Canned Response Folder in Freshservice. + + Use this tool to modify details of a specific canned response folder in Freshservice by providing the folder ID and required updates.""" # noqa: E501 + request_data = remove_none_values({ + "id": new_folder_id, + "name": folder_name, + "type": folder_type, + "responses_count": folder_responses_count, + "created_at": folder_creation_date, + "updated_at": last_updated_timestamp, + }) + content = json.dumps(request_data) if request_data else None + 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="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_canned_response_folder( + context: ToolContext, + canned_response_folder_id: Annotated[ + int, "The unique ID of the Canned Response Folder to delete in Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-caned-response-folder'."]: - """Delete a Canned Response Folder in Freshservice. + """Deletes a specified 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 + This tool deletes a Canned Response Folder from Freshservice using the provided folder ID. Use it when you need to remove a specific folder.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3746,7 +10502,7 @@ async def delete_canned_response_folder( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3754,19 +10510,21 @@ async def delete_canned_response_folder( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def list_canned_responses( context: ToolContext, canned_response_folder_id: Annotated[ - int, "ID of the canned response folder to retrieve responses from." + int, "The 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. + """Retrieve canned responses from a specified folder in Freshservice. - 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 + Call this tool to obtain a list of all canned responses within a specified canned response folder in Freshservice. It's useful for accessing predefined replies saved in a particular folder.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3776,7 +10534,7 @@ async def list_canned_responses( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3784,22 +10542,24 @@ async def list_canned_responses( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_releases_list( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_releases( context: ToolContext, - fetch_releases_updated_since: Annotated[ - str | None, "Retrieve releases updated since a specific date in YYYY-MM-DD format." + page_number: Annotated[ + int | None, "Indicates which page of the release list to retrieve in a paginated response." + ] = 1, + release_updated_since: Annotated[ + str | None, "Retrieve releases updated after the specified 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 + Use this tool to obtain a complete list of all Releases within the Freshservice platform. Useful for tracking, managing, and reviewing release information.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases".format( @@ -3807,12 +10567,12 @@ async def get_releases_list( ), method="GET", params=remove_none_values({ - "updated_since": fetch_releases_updated_since, + "updated_since": release_updated_since, "per_page": releases_per_page, - "page": page_number_to_retrieve, + "page": page_number, }), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3820,27 +10580,119 @@ async def get_releases_list( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_release_details( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_release_request( 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 + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", ], -) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release'."]: - """Retrieve details of a specific release by ID in Freshservice. + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-release'."]: + """Initiate a new release request 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 + This tool is used to create a new release request in Freshservice. It should be called when a user wants to start tracking or managing a release process within the Freshservice platform. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATERELEASEREQUEST"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATERELEASEREQUEST"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATERELEASEREQUEST"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATERELEASEREQUEST"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_release( + context: ToolContext, + release_id: Annotated[int, "ID of the release to retrieve from Freshservice."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release'."]: + """Retrieve release details from Freshservice by ID. + + Call this tool to obtain specific release details from Freshservice using a provided release ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + release_id=release_id, ), method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3848,26 +10700,141 @@ async def get_release_details( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_freshservice_release( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + release_id: Annotated[ + int | None, + "The unique ID of the release to update in Freshservice. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-release'."]: + """Update an existing Release in Freshservice. + + Use this tool to modify details of an existing release in Freshservice. This is useful for updating information such as release dates, descriptions, or status. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICERELEASE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not release_id: + missing_params.append(("release_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICERELEASE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICERELEASE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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, + ), + method="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEFRESHSERVICERELEASE"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def delete_freshservice_release( context: ToolContext, - release_id_for_deletion: Annotated[ - int, "The unique integer ID of the release to delete from Freshservice." - ], + release_id: Annotated[int, "The unique integer ID of the release to delete in Freshservice."], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release'."]: - """Delete a specific release in Freshservice. + """Delete a release from Freshservice by its ID. - 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 + Use this tool to delete a specific release in Freshservice when you have the release ID available. This is useful for managing and cleaning up outdated or erroneous releases in the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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, + release_id=release_id, ), method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3875,31 +10842,93 @@ async def delete_freshservice_release( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) async def get_release_notes( context: ToolContext, - release_id: Annotated[int, "The ID of the release for which notes are to be retrieved."], + release_identifier: Annotated[ + int, "The ID representing 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." + int | None, "The number of notes to retrieve per page in the paginated result." ] = 30, - retrieve_page_number: Annotated[ - int | None, - "The specific page number of release notes to retrieve. Useful for paginated results.", + page_number_to_retrieve: Annotated[ + int | None, "Indicates which page of notes to retrieve for the specified release." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-note'."]: - """Retrieve release notes from Freshservice using a release ID. + """Retrieve notes for a specified release in Freshservice. - Use this tool to get the notes associated with a specific release in Freshservice by providing the release ID.""" # noqa: E501 + Use this tool to get detailed notes on a release by providing the release ID. It is useful for obtaining updates and information documented in a particular release within Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_identifier, + ), + method="GET", + params=remove_none_values({"per_page": notes_per_page, "page": page_number_to_retrieve}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def add_release_note( + context: ToolContext, + release_id: Annotated[int, "The unique ID of the release to which the note will be added."], + note_body_html: Annotated[ + str | None, "Provide the note content in HTML format for the release." + ] = None, + note_body_plain_text: Annotated[ + str | None, + "The body of the release note in plain text format. Use this for non-HTML content.", + ] = None, + note_creation_datetime: Annotated[ + str | None, + "Specify the date and time when the note was created. Format: YYYY-MM-DDTHH:MM:SSZ (ISO 8601 standard).", # noqa: E501 + ] = None, + note_creator_user_id: Annotated[ + int | None, + "Unique ID of the user who created the note. This ID should correspond to the user in Freshservice responsible for the note's content.", # noqa: E501 + ] = None, + note_unique_id: Annotated[ + int | None, "Integer representing the unique ID of the note to be created." + ] = None, + note_updated_at: Annotated[ + str | None, "The date and time when the note was last updated, in ISO 8601 format." + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, "Array of email addresses to notify about the note." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-release-note'."]: + """Create a new note on a release in Freshservice. + + Use this tool to add a note to a specific release in Freshservice. It should be called when you need to document or update information about a release.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": note_creator_user_id, + "notify_emails": notification_email_addresses, + "body": note_body_html, + "body_text": note_body_plain_text, + "created_at": note_creation_datetime, + "updated_at": note_updated_at, + }) + content = json.dumps(request_data) if request_data else None 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({}), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, ) try: return {"response_json": response.json()} @@ -3907,20 +10936,19 @@ async def get_release_notes( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_release_note( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_release_note( context: ToolContext, + note_id: Annotated[int, "The unique integer ID of the note to be retrieved from the release."], 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." + int, "The unique identifier for a specific release to retrieve the note from." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-note'."]: - """Retrieve a note on a release by ID from Freshservice. + """Retrieve a note from a specific release in 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 + This tool retrieves a specific note associated with a given release ID from Freshservice. It is useful for accessing detailed notes or updates related to particular releases.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3931,7 +10959,7 @@ async def fetch_release_note( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3939,20 +10967,79 @@ async def fetch_release_note( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def delete_release_note_freshservice( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_release_note( + context: ToolContext, + note_id: Annotated[int, "The unique identifier of the note to be updated."], + release_identifier: Annotated[int, "The unique integer ID of the release to be updated."], + note_body_plain_text: Annotated[ + str | None, "The content of the release note in plain text format, without any HTML tags." + ] = None, + note_created_datetime: Annotated[ + str | None, + "The date and time when the note was initially created, in ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SSZ).", # noqa: E501 + ] = None, + note_html_body: Annotated[ + str | None, "The HTML content of the note to be updated. Use valid HTML format." + ] = None, + note_unique_id: Annotated[int | None, "The unique ID of the note to update."] = None, + note_updated_at: Annotated[ + str | None, + "Date and time when the note was updated, in ISO 8601 format (e.g., '2023-03-27T14:00:00Z').", # noqa: E501 + ] = None, + notification_email_addresses: Annotated[ + list[str] | None, "An array of email addresses to notify about the updated release note." + ] = None, + user_id_of_note_creator: Annotated[ + int | None, "Unique ID of the user who created the note." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-release-note'."]: + """Update an existing release note in Freshservice. + + This tool updates an existing note on a specified release in Freshservice. Call this when you need to modify the content of a release note within the platform.""" # noqa: E501 + request_data = remove_none_values({ + "id": note_unique_id, + "user_id": user_id_of_note_creator, + "notify_emails": notification_email_addresses, + "body": note_html_body, + "body_text": note_body_plain_text, + "created_at": note_created_datetime, + "updated_at": note_updated_at, + }) + content = json.dumps(request_data) if request_data else None + 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_identifier, + note_id=note_id, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_release_note( 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." + int, "The unique identifier for the release note to be deleted in Freshservice." + ], + release_id: Annotated[ + int, "The unique integer ID of the release in Freshservice whose note is to be deleted." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release-note'."]: - """Deletes a note from a specified release in Freshservice. + """Deletes a specific release note in Freshservice. - Use this tool to delete a note from a specific release in Freshservice by specifying the release and note IDs.""" # noqa: E501 + Use this tool to delete a note associated with a release in Freshservice by specifying the release and note IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -3963,7 +11050,7 @@ async def delete_release_note_freshservice( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -3971,22 +11058,24 @@ async def delete_release_note_freshservice( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_release_tasks( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_release_tasks( context: ToolContext, release_id: Annotated[ - int, "ID of the release for which tasks are to be retrieved in Freshservice." + int, "The unique ID of the release for which tasks are to be retrieved from 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." + page_number_to_retrieve: Annotated[ + int | None, "Specify the page number of tasks to retrieve for pagination." ] = 1, + tasks_per_page: Annotated[ + int | None, "The number of tasks to retrieve per page in a paginated list." + ] = 10, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-tasks'."]: - """Retrieve tasks for a specified release in Freshservice. + """Retrieve all tasks for a specified release in Freshservice. - Use this tool to get a list of tasks associated with a particular release ID in Freshservice.""" + This tool is used to obtain a list of tasks associated with a specific release ID from Freshservice. It is useful when you need detailed information about tasks related to a release.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks".format( @@ -3994,9 +11083,9 @@ async def retrieve_release_tasks( release_id=release_id, ), method="GET", - params=remove_none_values({"per_page": tasks_per_page, "page": page_number}), + params=remove_none_values({"per_page": tasks_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4004,18 +11093,287 @@ async def retrieve_release_tasks( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def retrieve_release_task( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_release_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + release_id: Annotated[ + int | None, + "ID of the release to add a new task. It specifies the release context for task creation. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-release-task'."]: + """Create a new task on a Freshservice release. + + Use this tool to add a new task to a specific release in Freshservice, enabling detailed release management and tracking. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATERELEASETASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not release_id: + missing_params.append(("release_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATERELEASETASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATERELEASETASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATERELEASETASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_freshservice_release_task( + context: ToolContext, + release_identifier: Annotated[int, "The numeric ID of the release to retrieve the task from."], + task_id: Annotated[ + int, "The unique integer ID of the task to retrieve within a release in Freshservice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-task'."]: + """Retrieve a specific task for a release in Freshservice. + + Call this tool to get information about a specific task within a release in Freshservice using the release and task IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None + 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_identifier, + task_id=task_id, + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({}), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_release_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + release_id: Annotated[ + int | None, + "The numeric ID of the release containing the task to update. This ID is mandatory to locate the specific release. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + task_id: Annotated[ + int | None, + "The numeric ID of the task to be updated in the release. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-release-task'."]: + """Update a specific task within a release in Freshservice. + + Use this tool to modify details of a specific task associated with an existing release in Freshservice. This is useful when changes are needed in task descriptions, assignments, dates, or statuses within a release. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATERELEASETASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not release_id: + missing_params.append(("release_id", "path")) + if not task_id: + missing_params.append(("task_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATERELEASETASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATERELEASETASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATERELEASETASK"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def delete_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 + int, "The unique ID of the release from which the task should be deleted." ], - 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. + task_id: Annotated[int, "The unique identifier for the task within a release to be deleted."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release-task'."]: + """Delete 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 + Use this tool to delete a task from a specific release in Freshservice by providing the release ID and task ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4023,39 +11381,10 @@ async def retrieve_release_task( 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({}), + content=content, ) try: return {"response_json": response.json()} @@ -4063,23 +11392,24 @@ async def delete_release_task( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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.", + int, "The ID of the release for which time entries are to be retrieved from Freshservice." ], entries_per_page: Annotated[ - int | None, "The number of time entries to retrieve per page in the paginated list." + 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." + int | None, "Specify the page number of the time entries to retrieve for the given release." ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-time-entries'."]: - """Retrieve time entries for a specific release in Freshservice. + """Retrieve time entries for a specified release. - 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 + This tool retrieves the time entries associated with a given Release ID from Freshservice. It should be called when there's a need to review or analyze time tracking data for a specific release in Freshservice.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4089,7 +11419,7 @@ async def get_release_time_entries( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4097,20 +11427,137 @@ async def get_release_time_entries( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def fetch_release_time_entry( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def add_release_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + release_id: Annotated[ + int | None, + "The ID of the release for which a new time entry is to be created. This should be an integer value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-release-time-entry'."]: + """Log a new time entry for a specific release in Freshservice. + + This tool is used to create a new time entry on a release within the Freshservice platform. It should be called when there's a need to record the time spent on a release. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ADDRELEASETIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not release_id: + missing_params.append(("release_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["ADDRELEASETIMEENTRY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["ADDRELEASETIMEENTRY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["ADDRELEASETIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_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 + "The unique integer ID of the release for which you want to retrieve the time entry. Ensure it corresponds to an existing 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." + int, "The unique ID of the time entry to be retrieved from a specific release." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-time-entry'."]: - """Retrieve details of a release time entry by ID. + """Retrieve a specific time entry from a release. - 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 + Use this tool to obtain details about a specific time entry associated with a release in Freshservice, using the release and time entry IDs.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4121,7 +11568,7 @@ async def fetch_release_time_entry( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4129,19 +11576,144 @@ async def fetch_release_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_release_time_entry( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + release_id: Annotated[ + int | None, + "ID of the release to be updated. Must be an integer. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + time_entry_id: Annotated[ + int | None, + "ID of the time entry to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-release-time-entry'."]: + """Update a time entry on a release in Freshservice. + + Use this tool to update an existing time entry associated with a specific release in Freshservice. It should be called when you need to modify details of a time entry for an already existing release. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATERELEASETIMEENTRY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not release_id: + missing_params.append(("release_id", "path")) + if not time_entry_id: + missing_params.append(("time_entry_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATERELEASETIMEENTRY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATERELEASETIMEENTRY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATERELEASETIMEENTRY"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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." + int, + "The unique identifier of the release from which the time entry will be deleted. This ID is required to specify the release in Freshservice.", # noqa: E501 ], time_entry_id: Annotated[ - int, "ID of the time entry to be deleted from the release in Freshservice." + int, "The unique integer ID of the time entry to be deleted from a 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. + """Delete a specific 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 + Use this tool to delete a specific time entry associated with a release in Freshservice by providing the release ID and time entry ID.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4152,7 +11724,7 @@ async def delete_release_time_entry( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4160,20 +11732,23 @@ async def delete_release_time_entry( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def list_purchase_orders( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def get_purchase_orders( context: ToolContext, entries_per_page: Annotated[ - int | None, "Specify the number of entries to retrieve per page." + int | None, + "Specify the number of entries to retrieve per page in a paginated list. This helps manage and control the pagination results.", # noqa: E501 ] = 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 + "The specific page number to retrieve from the paginated list of purchase orders.", ] = 1, ) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-purchase-orders'."]: - """Retrieve a list of all Purchase Orders from Freshservice. + """Retrieve 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 + Use this tool to get a comprehensive list of all purchase orders recorded in the Freshservice system. It's useful for tasks that require an overview of procurement activities.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None response = await make_request( auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""), url="https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders".format( @@ -4182,7 +11757,7 @@ async def list_purchase_orders( method="GET", params=remove_none_values({"per_page": entries_per_page, "page": page_number}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4190,17 +11765,112 @@ async def list_purchase_orders( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) -async def get_purchase_order( +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def create_purchase_order( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-purchase-order-post'."]: + """Create a new Purchase Order in Freshservice. + + This tool is used to create a new Purchase Order in Freshservice. It should be called when a new order needs to be generated and recorded within the Freshservice system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPURCHASEORDER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPURCHASEORDER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["CREATEPURCHASEORDER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="POST", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["CREATEPURCHASEORDER"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def retrieve_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 + "The unique identifier of the purchase order to retrieve. This must be an integer value.", ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-purchase-order'."]: - """Retrieve details of an existing purchase order by ID. + """Retrieve 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 + Fetch the details of an existing purchase order using its unique identifier. This tool should be called when purchase order information is needed.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4210,7 +11880,7 @@ async def get_purchase_order( method="GET", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} @@ -4218,17 +11888,133 @@ async def get_purchase_order( return {"response_text": response.text} -@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"]) +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) +async def update_purchase_order( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + purchase_order_id: Annotated[ + int | None, + "The ID of the purchase order to update. It identifies which purchase order will be modified. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-purchase-order'."]: + """Update details of an existing purchase order. + + This tool updates an existing purchase order with new information. Call this tool when you need to modify purchase order details in the Freshservice system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPURCHASEORDER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not purchase_order_id: + missing_params.append(("purchase_order_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPURCHASEORDER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```\n" + REQUEST_BODY_SCHEMAS["UPDATEPURCHASEORDER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + 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="PUT", + request_data=request_data, + schema=json.loads(REQUEST_BODY_SCHEMAS["UPDATEPURCHASEORDER"]), + params=remove_none_values({}), + headers=remove_none_values({"Content-Type": "application/json"}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["FRESHSERVICE_SUBDOMAIN", "FRESHSERVICE_API_KEY"]) 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 + int, "The unique integer ID of the purchase order to delete from Freshservice." ], ) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-purchase-order'."]: - """Delete a specified purchase order in Freshservice. + """Delete a purchase order in Freshservice by ID. - Use this tool to delete a purchase order from Freshservice by providing the purchase order ID.""" # noqa: E501 + Use this tool to delete a specific purchase order from Freshservice by providing its ID. This is useful when a purchase order needs to be permanently removed from the system.""" # noqa: E501 + request_data = remove_none_values({}) + content = json.dumps(request_data) if request_data else None 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( @@ -4238,7 +12024,7 @@ async def delete_purchase_order( method="DELETE", params=remove_none_values({}), headers=remove_none_values({}), - data=remove_none_values({}), + content=content, ) try: return {"response_json": response.json()} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/tools/request_body_schemas.py b/toolkits/freshservice_api/arcade_freshservice_api/tools/request_body_schemas.py new file mode 100644 index 00000000..34d34cb7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/tools/request_body_schemas.py @@ -0,0 +1,70 @@ +"""Request Body Schemas for API Tools + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS +FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +from typing import Any + +REQUEST_BODY_SCHEMAS: dict[str, Any] = { + "CREATEAGENTGROUPFRESHSERVICE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the agent group", "format": "int64", "readOnly": true, "example": 12345}, "name": {"type": "string", "description": "Name of the agent group", "example": "Analysts"}, "description": {"type": "string", "description": "Description about the agent group", "example": "IT Analysts Agent group"}, "business_hours_id": {"type": "integer", "description": "Unique ID of the business hours configuration associated with the group", "format": "int64", "example": 3458}, "escalate_to": {"type": "integer", "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019.", "format": "int64", "example": 234123423}, "agent_ids": {"type": "array", "description": " Array of user IDs of agents who belong to the group.", "example": ["2342342", "9943044"], "items": {"type": "string", "format": "int64"}}, "members": {"type": "array", "description": "Array of user IDs of agents who are members of the group.", "example": ["9284729", "9349857"], "items": {"type": "string", "format": "int64"}}, "observers": {"type": "array", "description": "Array of user IDs of agents who are observers of the group.", "example": ["3457384", "9827342"], "items": {"type": "string", "format": "int64"}}, "group_leaders": {"type": "array", "description": "Array of user IDs of agents who are leaders of the group.", "example": ["4785820", "5672910"], "items": {"type": "string", "format": "int64"}}, "auto_ticket_assign": {"type": "boolean", "description": "Describes the automatic ticket assignment type. Will not be supported if the "Round Robin" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise.", "example": true}, "restricted": {"type": "boolean", "description": "Signifies whether the group is a resricted group", "example": true}, "approval_required": {"type": "boolean", "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals.", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which the agent group was created", "format": "date-time", "readOnly": true, "example": "2021-11-19T06:24:30Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the agent group was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-19T06:24:30Z"}}}', # noqa: E501 + "UPDATEAGENTGROUP": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the agent group", "format": "int64", "readOnly": true, "example": 12345}, "name": {"type": "string", "description": "Name of the agent group", "example": "Analysts"}, "description": {"type": "string", "description": "Description about the agent group", "example": "IT Analysts Agent group"}, "business_hours_id": {"type": "integer", "description": "Unique ID of the business hours configuration associated with the group", "format": "int64", "example": 3458}, "escalate_to": {"type": "integer", "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019.", "format": "int64", "example": 234123423}, "agent_ids": {"type": "array", "description": " Array of user IDs of agents who belong to the group.", "example": ["2342342", "9943044"], "items": {"type": "string", "format": "int64"}}, "members": {"type": "array", "description": "Array of user IDs of agents who are members of the group.", "example": ["9284729", "9349857"], "items": {"type": "string", "format": "int64"}}, "observers": {"type": "array", "description": "Array of user IDs of agents who are observers of the group.", "example": ["3457384", "9827342"], "items": {"type": "string", "format": "int64"}}, "group_leaders": {"type": "array", "description": "Array of user IDs of agents who are leaders of the group.", "example": ["4785820", "5672910"], "items": {"type": "string", "format": "int64"}}, "auto_ticket_assign": {"type": "boolean", "description": "Describes the automatic ticket assignment type. Will not be supported if the "Round Robin" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise.", "example": true}, "restricted": {"type": "boolean", "description": "Signifies whether the group is a resricted group", "example": true}, "approval_required": {"type": "boolean", "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals.", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which the agent group was created", "format": "date-time", "readOnly": true, "example": "2021-11-19T06:24:30Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the agent group was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-19T06:24:30Z"}}}', # noqa: E501 + "UPDATELOCATIONINFO": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the location", "format": "int64", "readOnly": true, "example": 14000234324}, "name": {"type": "string", "description": "Name of the location", "example": "Apple Campus"}, "parent_location_id": {"type": "integer", "description": "Unique ID of the parent location", "format": "int64", "example": 14000234324}, "primary_contact_id": {"type": "integer", "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)", "format": "int64", "example": 14000234324}, "address_line1": {"type": "string", "description": "Address Line 1", "example": "1 Infinite Loop"}, "address_line2": {"type": "string", "description": "Address Line 2", "example": "1 Infinite Loop"}, "address_city": {"type": "string", "description": "City", "example": "Cupertino"}, "address_state": {"type": "string", "description": "State", "example": "California"}, "address_country": {"type": "string", "description": "Country", "example": "US"}, "address_zipcode": {"type": "string", "description": "Zip Code of the Location", "example": "95014"}}}', # noqa: E501 + "UPDATEVENDORINFO": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the vendor", "format": "int64", "readOnly": true, "example": 14000234324}, "name": {"type": "string", "description": "Name of the vendor", "example": "Apple"}, "description": {"type": "string", "description": "Description of the vendor", "example": "Apple"}, "primary_contact_id": {"type": "integer", "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)", "format": "int64", "example": 14000234324}, "address_line1": {"type": "string", "description": "Address Line 1", "example": "Cupertino"}, "address_line2": {"type": "string", "description": "Address Line 2", "example": "Cupertino"}, "address_city": {"type": "string", "description": "City", "example": "Cupertino"}, "address_state": {"type": "string", "description": "State", "example": "California"}, "address_country": {"type": "string", "description": "Country", "example": "US"}, "address_zipcode": {"type": "string", "description": "Zip Code of the location", "example": "95014"}}}', # noqa: E501 + "CREATENEWASSET": '{"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "UPDATEEXISTINGASSET": '{"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "CREATECSATSURVEY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Customer Satisfaction Survey", "format": "int64", "readOnly": true, "example": 14000234324}, "name": {"type": "string", "description": "Name of the Survey", "example": "Buyer satisfaction"}, "active": {"type": "boolean", "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false.", "example": true}, "survey_trigger_event": {"type": "string", "description": "Field to capture when the survey should be sent.", "example": "Ticket Closure", "enum": ["Ticket Closure", "Ticket Resolution", "All Replies", "Agent Specified Emails"]}, "question": {"type": "string", "description": "Question that will be asked to the requester to capture the service experience", "example": "How do you rate the buying experience?"}, "order_of_options": {"type": "string", "description": "Gradient order of the options displayed", "example": "Good to Bad", "enum": ["Good to Bad", "Bad to Good"]}, "options": {"type": "object", "properties": {"option_1": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_2": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_3": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_4": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_5": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}}, "example": {"option_1": {"text": "Fantastic"}, "option_2": {"text": "Fantastic"}}}, "thank_you_message": {"type": "string", "description": "The final \\"Thank you\\" message that gets displayed to the requester upon completion of the survey", "example": "Thanks for taking the survey"}, "user_id": {"type": "integer", "description": "Unique identifier of the agent who last modified this survey", "format": "int64", "example": 14000234324}, "created_at": {"type": "string", "description": "Timestamp at which the survey was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the survey was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATECSATSURVEY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Customer Satisfaction Survey", "format": "int64", "readOnly": true, "example": 14000234324}, "name": {"type": "string", "description": "Name of the Survey", "example": "Buyer satisfaction"}, "active": {"type": "boolean", "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false.", "example": true}, "survey_trigger_event": {"type": "string", "description": "Field to capture when the survey should be sent.", "example": "Ticket Closure", "enum": ["Ticket Closure", "Ticket Resolution", "All Replies", "Agent Specified Emails"]}, "question": {"type": "string", "description": "Question that will be asked to the requester to capture the service experience", "example": "How do you rate the buying experience?"}, "order_of_options": {"type": "string", "description": "Gradient order of the options displayed", "example": "Good to Bad", "enum": ["Good to Bad", "Bad to Good"]}, "options": {"type": "object", "properties": {"option_1": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_2": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_3": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_4": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}, "option_5": {"type": "object", "properties": {"text": {"type": "string", "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.", "example": "Fantastic"}, "follow_up_question": {"type": "string", "description": "Follow-up question that will asked when the requester responds with the current option.", "example": "How do you rate overall experience?"}}, "description": "Response Options of the Customer Satisfaction Survey", "example": {"text": "Fantastic", "follow_up_question": "How do you rate overall experience?"}}}, "example": {"option_1": {"text": "Fantastic"}, "option_2": {"text": "Fantastic"}}}, "thank_you_message": {"type": "string", "description": "The final \\"Thank you\\" message that gets displayed to the requester upon completion of the survey", "example": "Thanks for taking the survey"}, "user_id": {"type": "integer", "description": "Unique identifier of the agent who last modified this survey", "format": "int64", "example": 14000234324}, "created_at": {"type": "string", "description": "Timestamp at which the survey was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the survey was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATESERVICEREQUEST": '{"type": "object", "properties": {"requester_email": {"type": "string", "description": "the email id of the requester", "example": "andrea@freshservice.com"}, "requested_for_email": {"type": "string", "description": "the email id of the user for whom this is requested.", "example": "andrea@freshservice.com"}, "subject": {"type": "string", "description": "the subject of the ticket", "example": "Request for VPN access"}, "status": {"type": "integer", "description": "the status of the ticket", "format": "int32", "example": 2}, "priority": {"type": "integer", "description": "the priority of the ticket", "format": "int32", "example": 2}, "description": {"type": "string", "description": "the description/body of the ticket", "example": "Request for VPN access"}, "agent_id": {"type": "integer", "description": "the agent ID to whom the ticket is assigned", "format": "int32", "example": 19234923}, "due_by": {"type": "string", "description": "Timestamp that denotes when the ticket is due to be resolved", "format": "date-time"}, "group_id": {"type": "number", "description": "ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id.", "format": "int32", "example": 12938743}, "source": {"type": "number", "description": "The channel through which the ticket was created. The default value is 2.", "format": "int32", "example": 2.0}, "tags": {"type": "array", "description": "Tags that have been associated with the ticket.", "example": ["VPN", "Network"], "items": {"type": "string"}}, "custom_fields": {"type": "object", "description": "Custom fields that are associated with a Freshservice entity", "example": {"field1": "Value 1"}}}}', # noqa: E501 + "CREATESOLUTIONARTICLE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the solution article", "format": "int64", "readOnly": true, "example": 1400020394823}, "folder_id": {"type": "integer", "description": "ID of the folder under which the article is listed", "format": "int64", "example": 140000394234}, "category_id": {"type": "integer", "description": "Unique identifier of the solution category", "format": "int64", "example": 1400023423}, "title": {"type": "string", "description": "Title of the solution article", "example": "Unable to connect VPN"}, "description": {"type": "string", "description": "Content of the solution article in HTML format", "example": "
Login with AD credentials for VPN
"}, "description_text": {"type": "string", "description": "Content of the solution article in plain-text format", "example": "Login with AD credentials for VPN"}, "position": {"type": "integer", "description": "The rank of the solution article in the article listing", "format": "int32", "example": 1}, "article_type": {"type": "integer", "description": "The type of the article. ( 1 - permanent, 2 - workaround )", "format": "int32", "example": 1}, "status": {"type": "integer", "description": "Status of the article. ( 1 - draft, 2 - published )", "format": "int32", "example": 1}, "thumbs_up": {"type": "integer", "description": "Number of upvotes for the article", "format": "int64", "readOnly": true, "example": 34534}, "thumbs_down": {"type": "integer", "description": "Number of downvotes for the article", "format": "int64", "readOnly": true, "example": 43}, "created_by": {"type": "integer", "description": "ID of the user who created the article", "format": "int64", "example": 140004343}, "created_time": {"type": "string", "description": "Timestamp at which the department was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_by": {"type": "integer", "description": "ID of the user who last updated the article", "format": "int64", "example": 140004343}, "updated_time": {"type": "string", "description": "Timestamp at which the department was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "views": {"type": "integer", "description": "number of views for the article", "format": "int64", "readOnly": true, "example": 140004343}, "search_keywords": {"type": "array", "description": "Keywords for which this article should be mapped", "example": ["VPN", "WiFi", "Network"], "items": {"type": "string"}}, "tags": {"type": "array", "description": "The tags associated to the article", "example": ["VPN", "WiFi", "Network"], "items": {"type": "string"}}}}', # noqa: E501 + "UPDATESOLUTIONARTICLE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the solution article", "format": "int64", "readOnly": true, "example": 1400020394823}, "folder_id": {"type": "integer", "description": "ID of the folder under which the article is listed", "format": "int64", "example": 140000394234}, "category_id": {"type": "integer", "description": "Unique identifier of the solution category", "format": "int64", "example": 1400023423}, "title": {"type": "string", "description": "Title of the solution article", "example": "Unable to connect VPN"}, "description": {"type": "string", "description": "Content of the solution article in HTML format", "example": "
Login with AD credentials for VPN
"}, "description_text": {"type": "string", "description": "Content of the solution article in plain-text format", "example": "Login with AD credentials for VPN"}, "position": {"type": "integer", "description": "The rank of the solution article in the article listing", "format": "int32", "example": 1}, "article_type": {"type": "integer", "description": "The type of the article. ( 1 - permanent, 2 - workaround )", "format": "int32", "example": 1}, "status": {"type": "integer", "description": "Status of the article. ( 1 - draft, 2 - published )", "format": "int32", "example": 1}, "thumbs_up": {"type": "integer", "description": "Number of upvotes for the article", "format": "int64", "readOnly": true, "example": 34534}, "thumbs_down": {"type": "integer", "description": "Number of downvotes for the article", "format": "int64", "readOnly": true, "example": 43}, "created_by": {"type": "integer", "description": "ID of the user who created the article", "format": "int64", "example": 140004343}, "created_time": {"type": "string", "description": "Timestamp at which the department was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_by": {"type": "integer", "description": "ID of the user who last updated the article", "format": "int64", "example": 140004343}, "updated_time": {"type": "string", "description": "Timestamp at which the department was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "views": {"type": "integer", "description": "number of views for the article", "format": "int64", "readOnly": true, "example": 140004343}, "search_keywords": {"type": "array", "description": "Keywords for which this article should be mapped", "example": ["VPN", "WiFi", "Network"], "items": {"type": "string"}}, "tags": {"type": "array", "description": "The tags associated to the article", "example": ["VPN", "WiFi", "Network"], "items": {"type": "string"}}}}', # noqa: E501 + "CREATESOLUTIONFOLDER": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the solution folder", "format": "int64", "example": 14000234234}, "category_id": {"type": "integer", "description": "Unique identifier of the solution category", "format": "int64", "example": 140009808}, "name": {"type": "string", "description": "Name of the solution folder", "example": "Network FAQ"}, "description": {"type": "string", "description": "Description of the solution folder", "example": "Solution Articles for Network related queries"}, "position": {"type": "integer", "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position.", "format": "int32", "example": 1}, "managed_by_group": {"type": "integer", "description": "Agent group ID who can edit the articles in the folder", "format": "int32", "example": 938453}, "managed_by_agent": {"type": "integer", "description": "The agent ID who can edit the articles in the folder", "format": "int32", "example": 349583}, "visibility": {"type": "object", "properties": {"requester_groups": {"type": "array", "description": "Requester group IDs that have access to view this folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "agent_groups": {"type": "array", "description": "Agent group IDs that have access to view this folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "departments": {"type": "array", "description": "The department IDs whose members will be able to view the folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "all_agents": {"type": "boolean", "description": "Is True if all agents can view this folder", "example": true}, "everyone": {"type": "boolean", "description": "Is True if all users can view this folder", "example": true}, "logged_in_users": {"type": "boolean", "description": "Is True if all logged in users can view this folder", "example": true}}, "description": "Users who can view this folder", "example": {"requester_groups": [234234, 543444], "agent_groups": [498034, 349534], "departments": [485792, 298732], "all_agents": false, "everyone": false, "logged_in_users": false}}, "default_folder": {"type": "boolean", "description": "If this is a default folder shipped with the product. You can create or rename a default folder.", "example": true}}}', # noqa: E501 + "UPDATESOLUTIONFOLDER": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the solution folder", "format": "int64", "example": 14000234234}, "category_id": {"type": "integer", "description": "Unique identifier of the solution category", "format": "int64", "example": 140009808}, "name": {"type": "string", "description": "Name of the solution folder", "example": "Network FAQ"}, "description": {"type": "string", "description": "Description of the solution folder", "example": "Solution Articles for Network related queries"}, "position": {"type": "integer", "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position.", "format": "int32", "example": 1}, "managed_by_group": {"type": "integer", "description": "Agent group ID who can edit the articles in the folder", "format": "int32", "example": 938453}, "managed_by_agent": {"type": "integer", "description": "The agent ID who can edit the articles in the folder", "format": "int32", "example": 349583}, "visibility": {"type": "object", "properties": {"requester_groups": {"type": "array", "description": "Requester group IDs that have access to view this folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "agent_groups": {"type": "array", "description": "Agent group IDs that have access to view this folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "departments": {"type": "array", "description": "The department IDs whose members will be able to view the folder", "example": [234234, 543444], "items": {"type": "integer", "format": "int32"}}, "all_agents": {"type": "boolean", "description": "Is True if all agents can view this folder", "example": true}, "everyone": {"type": "boolean", "description": "Is True if all users can view this folder", "example": true}, "logged_in_users": {"type": "boolean", "description": "Is True if all logged in users can view this folder", "example": true}}, "description": "Users who can view this folder", "example": {"requester_groups": [234234, 543444], "agent_groups": [498034, 349534], "departments": [485792, 298732], "all_agents": false, "everyone": false, "logged_in_users": false}}, "default_folder": {"type": "boolean", "description": "If this is a default folder shipped with the product. You can create or rename a default folder.", "example": true}}}', # noqa: E501 + "CREATENEWREQUESTER": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the requester", "format": "int64", "readOnly": true, "example": 14000234324}, "first_name": {"type": "string", "description": "First Name of the requester", "example": "Andrea"}, "last_name": {"type": "string", "description": "Last Name of the requester", "example": "Smith"}, "job_title": {"type": "string", "description": "Job Title of the requester", "example": "Product Manager"}, "primary_email": {"type": "string", "description": "Primary email address of the requester", "example": "andrea@freshservice.com"}, "secondary_emails": {"type": "array", "description": "Secondary email addresses of the requester", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "work_phone_number": {"type": "string", "description": "Work phone number of the requester", "example": "+1-567-3492"}, "mobile_phone_number": {"type": "string", "description": "Mobile phone number of the requester", "example": "+1-567-3492"}, "department_ids": {"type": "array", "description": "Unique IDs of the departments associated with the requester", "example": [1400043345, 1400046983], "items": {"type": "integer", "format": "int64"}}, "can_see_all_tickets_from_associated_departments": {"type": "boolean", "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise", "example": true}, "reporting_manager_id": {"type": "integer", "description": "Unique identifier of the requester\'s reporting manager", "format": "int64", "example": 14000234324}, "address": {"type": "string", "description": "Address of the requester", "example": "2968 D Street, Bloomfield, Michigan"}, "time_zone": {"type": "string", "description": "Time zone of the requester", "example": "Eastern Time (US & Canada)"}, "language": {"type": "string", "description": "Language used by the requester", "example": "en"}, "location_id": {"type": "integer", "description": "Unique identifier of the location associated with the requester", "format": "int64", "example": 14000234324}, "background_information": {"type": "string", "description": "Address of the requester", "example": "Done"}, "active": {"type": "boolean", "description": "true if the user is active, and false if the user account has been deactivated.", "example": true}, "has_logged_in": {"type": "boolean", "description": "true if the user has logged in to Freshservice at least once, and false otherwise.", "example": true}, "created_time": {"type": "string", "description": "Timestamp at which the requester was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_time": {"type": "string", "description": "Timestamp at which the requester was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "custom_fields": {"type": "object", "description": "Custom fields that are associated with a Freshservice entity", "example": {"field1": "Value 1"}}}}', # noqa: E501 + "UPDATEREQUESTERINFRESHSERVICE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the requester", "format": "int64", "readOnly": true, "example": 14000234324}, "first_name": {"type": "string", "description": "First Name of the requester", "example": "Andrea"}, "last_name": {"type": "string", "description": "Last Name of the requester", "example": "Smith"}, "job_title": {"type": "string", "description": "Job Title of the requester", "example": "Product Manager"}, "primary_email": {"type": "string", "description": "Primary email address of the requester", "example": "andrea@freshservice.com"}, "secondary_emails": {"type": "array", "description": "Secondary email addresses of the requester", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "work_phone_number": {"type": "string", "description": "Work phone number of the requester", "example": "+1-567-3492"}, "mobile_phone_number": {"type": "string", "description": "Mobile phone number of the requester", "example": "+1-567-3492"}, "department_ids": {"type": "array", "description": "Unique IDs of the departments associated with the requester", "example": [1400043345, 1400046983], "items": {"type": "integer", "format": "int64"}}, "can_see_all_tickets_from_associated_departments": {"type": "boolean", "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise", "example": true}, "reporting_manager_id": {"type": "integer", "description": "Unique identifier of the requester\'s reporting manager", "format": "int64", "example": 14000234324}, "address": {"type": "string", "description": "Address of the requester", "example": "2968 D Street, Bloomfield, Michigan"}, "time_zone": {"type": "string", "description": "Time zone of the requester", "example": "Eastern Time (US & Canada)"}, "language": {"type": "string", "description": "Language used by the requester", "example": "en"}, "location_id": {"type": "integer", "description": "Unique identifier of the location associated with the requester", "format": "int64", "example": 14000234324}, "background_information": {"type": "string", "description": "Address of the requester", "example": "Done"}, "active": {"type": "boolean", "description": "true if the user is active, and false if the user account has been deactivated.", "example": true}, "has_logged_in": {"type": "boolean", "description": "true if the user has logged in to Freshservice at least once, and false otherwise.", "example": true}, "created_time": {"type": "string", "description": "Timestamp at which the requester was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_time": {"type": "string", "description": "Timestamp at which the requester was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "custom_fields": {"type": "object", "description": "Custom fields that are associated with a Freshservice entity", "example": {"field1": "Value 1"}}}}', # noqa: E501 + "CREATEFRESHSERVICEAGENT": '{"required": ["email", "first_name", "role_ids"], "type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the agent", "format": "int64", "readOnly": true, "example": 14000234324}, "first_name": {"type": "string", "description": "First Name of the agent", "example": "Andrea"}, "occasional": {"type": "boolean", "description": "True if the agent is an occasional agent, and false if full-time agent.", "example": true}, "last_name": {"type": "string", "description": "Last Name of the agent", "example": "Smith"}, "job_title": {"type": "string", "description": "Job Title of the agent", "example": "Product Manager"}, "email": {"type": "string", "description": "Email address of the agent", "example": "andrea@freshservice.com"}, "work_phone_number": {"type": "string", "description": "Work phone number of the agent", "example": "+1-567-3492"}, "mobile_phone_number": {"type": "string", "description": "Mobile phone number of the agent", "example": "+1-567-3492"}, "reporting_manager_id": {"type": "integer", "description": "Unique identifier of the agent\'s reporting manager", "format": "int64", "example": 14000234324}, "time_zone": {"type": "string", "description": "Time zone of the agent", "example": "Eastern Time (US & Canada)"}, "language": {"type": "string", "description": "Language used by the agent", "example": "en"}, "location_id": {"type": "integer", "description": "Unique identifier of the location associated with the agent", "format": "int64", "example": 14000234324}, "scoreboard_level_id": {"type": "integer", "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n", "format": "int64", "example": 2, "enum": [1, 2, 3, 4, 5, 6]}, "scope": {"type": "object", "properties": {"ticket": {"type": "string", "example": "Global Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "problem": {"type": "string", "example": "Group Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "change": {"type": "string", "example": "Restricted Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "release": {"type": "string", "example": "Group Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "asset": {"type": "string", "example": "Global Access", "enum": ["Global Access", "Group Access"]}}, "description": "Access level of the agent in various modules", "readOnly": true, "example": {"ticket": "Global Access", "problem": "Global Access", "change": "Global Access", "release": "Global Access", "asset": "Global Access"}}, "group_ids": {"type": "array", "description": " Unique IDs of the agent groups associated with the agent", "example": [1400023424, 1400023423], "items": {"type": "integer", "format": "int64"}}, "member_of": {"type": "array", "description": "Unique IDs of the agent groups that the agent is a member of", "example": [140002533, 140009834], "items": {"type": "integer", "format": "int64"}}, "observer_of": {"type": "array", "description": "Unique IDs of the agent groups that the agent is an observer of", "example": [1300045345, 1300049484], "items": {"type": "integer", "format": "int64"}}, "role_ids": {"type": "array", "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent", "example": [1300034059, 1300094583], "items": {"type": "integer", "format": "int64"}}, "roles": {"type": "array", "example": [{"role_id": 14000234324}], "items": {"type": "object", "properties": {"role_id": {"type": "integer", "description": "Unique identifier of the role assigned", "format": "int64", "example": 14000234324}, "assignment_scope": {"type": "string", "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)", "example": "entire_helpdesk", "enum": ["entire_helpdesk", "member_groups", "specified_groups", "assigned_items"]}, "groups": {"type": "array", "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise.", "example": [1400034334, 3523453453], "items": {"type": "integer", "format": "int64"}}}}}, "last_login_at": {"type": "string", "description": "Timestamp of the agent\'s last successful login", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "active": {"type": "boolean", "description": "true if the user is active, and false if the user account has been deactivated.", "example": true}, "has_logged_in": {"type": "boolean", "description": "true if the user has logged in to Freshservice at least once, and false otherwise.", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which the agent was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the agent was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATEEXISTINGAGENT": '{"required": ["email", "first_name", "role_ids"], "type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the agent", "format": "int64", "readOnly": true, "example": 14000234324}, "first_name": {"type": "string", "description": "First Name of the agent", "example": "Andrea"}, "occasional": {"type": "boolean", "description": "True if the agent is an occasional agent, and false if full-time agent.", "example": true}, "last_name": {"type": "string", "description": "Last Name of the agent", "example": "Smith"}, "job_title": {"type": "string", "description": "Job Title of the agent", "example": "Product Manager"}, "email": {"type": "string", "description": "Email address of the agent", "example": "andrea@freshservice.com"}, "work_phone_number": {"type": "string", "description": "Work phone number of the agent", "example": "+1-567-3492"}, "mobile_phone_number": {"type": "string", "description": "Mobile phone number of the agent", "example": "+1-567-3492"}, "reporting_manager_id": {"type": "integer", "description": "Unique identifier of the agent\'s reporting manager", "format": "int64", "example": 14000234324}, "time_zone": {"type": "string", "description": "Time zone of the agent", "example": "Eastern Time (US & Canada)"}, "language": {"type": "string", "description": "Language used by the agent", "example": "en"}, "location_id": {"type": "integer", "description": "Unique identifier of the location associated with the agent", "format": "int64", "example": 14000234324}, "scoreboard_level_id": {"type": "integer", "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n", "format": "int64", "example": 2, "enum": [1, 2, 3, 4, 5, 6]}, "scope": {"type": "object", "properties": {"ticket": {"type": "string", "example": "Global Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "problem": {"type": "string", "example": "Group Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "change": {"type": "string", "example": "Restricted Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "release": {"type": "string", "example": "Group Access", "enum": ["Global Access", "Group Access", "Restricted Access"]}, "asset": {"type": "string", "example": "Global Access", "enum": ["Global Access", "Group Access"]}}, "description": "Access level of the agent in various modules", "readOnly": true, "example": {"ticket": "Global Access", "problem": "Global Access", "change": "Global Access", "release": "Global Access", "asset": "Global Access"}}, "group_ids": {"type": "array", "description": " Unique IDs of the agent groups associated with the agent", "example": [1400023424, 1400023423], "items": {"type": "integer", "format": "int64"}}, "member_of": {"type": "array", "description": "Unique IDs of the agent groups that the agent is a member of", "example": [140002533, 140009834], "items": {"type": "integer", "format": "int64"}}, "observer_of": {"type": "array", "description": "Unique IDs of the agent groups that the agent is an observer of", "example": [1300045345, 1300049484], "items": {"type": "integer", "format": "int64"}}, "role_ids": {"type": "array", "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent", "example": [1300034059, 1300094583], "items": {"type": "integer", "format": "int64"}}, "roles": {"type": "array", "example": [{"role_id": 14000234324}], "items": {"type": "object", "properties": {"role_id": {"type": "integer", "description": "Unique identifier of the role assigned", "format": "int64", "example": 14000234324}, "assignment_scope": {"type": "string", "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)", "example": "entire_helpdesk", "enum": ["entire_helpdesk", "member_groups", "specified_groups", "assigned_items"]}, "groups": {"type": "array", "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise.", "example": [1400034334, 3523453453], "items": {"type": "integer", "format": "int64"}}}}}, "last_login_at": {"type": "string", "description": "Timestamp of the agent\'s last successful login", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "active": {"type": "boolean", "description": "true if the user is active, and false if the user account has been deactivated.", "example": true}, "has_logged_in": {"type": "boolean", "description": "true if the user has logged in to Freshservice at least once, and false otherwise.", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which the agent was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the agent was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "CREATEFRESHSERVICETICKET": '{"type": "object", "properties": {"cc_emails": {"type": "array", "description": "Email addresses added in the \'cc\' field of the incoming ticket email", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fwd_emails": {"type": "array", "description": "Email addresses added while forwarding a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "reply_cc_emails": {"type": "array", "description": "Email addresses added while replying to a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fr_escalated": {"type": "boolean", "description": "Set to \'true\' if the ticket has been escalated as a result of the first response time being breached", "readOnly": true, "example": true}, "spam": {"type": "boolean", "description": "Set to \'true\' if the ticket has been marked as spam", "readOnly": true, "example": true}, "priority": {"type": "number", "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.", "example": 2.0}, "requester_id": {"type": "number", "description": "User ID of the requester.", "example": 1400023894234}, "source": {"type": "number", "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10", "example": 1.0}, "status": {"type": "number", "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5", "example": 2.0}, "subject": {"type": "string", "description": "Subject of the Ticket", "example": "Printer not connected""}, "id": {"type": "number", "description": "Unique ID of the ticket", "readOnly": true, "example": 14000239432}, "type": {"type": "string", "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]", "example": "Incident"}, "due_by": {"type": "string", "description": "Timestamp that denotes when the ticket is due to be resolved", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "fr_due_by": {"type": "string", "description": "Timestamp that denotes when the first response is due", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "is_escalated": {"type": "boolean", "example": true}, "description": {"type": "string", "example": "
How do I connect printer?
"}, "description_text": {"type": "string", "description": "Content of the ticket in plain text", "example": "How do I connect printer?"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"choice": "First Choice", "employee_id": "E1234"}}, "created_at": {"type": "string", "description": "Timestamp at which the ticket was created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the ticket was last updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "tags": {"type": "array", "description": "Tags that have been associated with the ticket", "example": ["Hardware", "Network", "VPN"], "items": {"type": "string"}}, "attachments": {"type": "array", "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB", "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "EDITFRESHSERVICETICKET": '{"type": "object", "properties": {"cc_emails": {"type": "array", "description": "Email addresses added in the \'cc\' field of the incoming ticket email", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fwd_emails": {"type": "array", "description": "Email addresses added while forwarding a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "reply_cc_emails": {"type": "array", "description": "Email addresses added while replying to a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fr_escalated": {"type": "boolean", "description": "Set to \'true\' if the ticket has been escalated as a result of the first response time being breached", "readOnly": true, "example": true}, "spam": {"type": "boolean", "description": "Set to \'true\' if the ticket has been marked as spam", "readOnly": true, "example": true}, "priority": {"type": "number", "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.", "example": 2.0}, "requester_id": {"type": "number", "description": "User ID of the requester.", "example": 1400023894234}, "source": {"type": "number", "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10", "example": 1.0}, "status": {"type": "number", "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5", "example": 2.0}, "subject": {"type": "string", "description": "Subject of the Ticket", "example": "Printer not connected""}, "id": {"type": "number", "description": "Unique ID of the ticket", "readOnly": true, "example": 14000239432}, "type": {"type": "string", "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]", "example": "Incident"}, "due_by": {"type": "string", "description": "Timestamp that denotes when the ticket is due to be resolved", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "fr_due_by": {"type": "string", "description": "Timestamp that denotes when the first response is due", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "is_escalated": {"type": "boolean", "example": true}, "description": {"type": "string", "example": "
How do I connect printer?
"}, "description_text": {"type": "string", "description": "Content of the ticket in plain text", "example": "How do I connect printer?"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"choice": "First Choice", "employee_id": "E1234"}}, "created_at": {"type": "string", "description": "Timestamp at which the ticket was created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the ticket was last updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "tags": {"type": "array", "description": "Tags that have been associated with the ticket", "example": ["Hardware", "Network", "VPN"], "items": {"type": "string"}}, "attachments": {"type": "array", "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB", "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "CREATECHILDTICKET": '{"type": "object", "properties": {"cc_emails": {"type": "array", "description": "Email addresses added in the \'cc\' field of the incoming ticket email", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fwd_emails": {"type": "array", "description": "Email addresses added while forwarding a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "reply_cc_emails": {"type": "array", "description": "Email addresses added while replying to a ticket", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "fr_escalated": {"type": "boolean", "description": "Set to \'true\' if the ticket has been escalated as a result of the first response time being breached", "readOnly": true, "example": true}, "spam": {"type": "boolean", "description": "Set to \'true\' if the ticket has been marked as spam", "readOnly": true, "example": true}, "priority": {"type": "number", "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.", "example": 2.0}, "requester_id": {"type": "number", "description": "User ID of the requester.", "example": 1400023894234}, "source": {"type": "number", "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10", "example": 1.0}, "status": {"type": "number", "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5", "example": 2.0}, "subject": {"type": "string", "description": "Subject of the Ticket", "example": "Printer not connected""}, "id": {"type": "number", "description": "Unique ID of the ticket", "readOnly": true, "example": 14000239432}, "type": {"type": "string", "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]", "example": "Incident"}, "due_by": {"type": "string", "description": "Timestamp that denotes when the ticket is due to be resolved", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "fr_due_by": {"type": "string", "description": "Timestamp that denotes when the first response is due", "format": "date_time", "example": "2021-11-22T16:58:45Z"}, "is_escalated": {"type": "boolean", "example": true}, "description": {"type": "string", "example": "
How do I connect printer?
"}, "description_text": {"type": "string", "description": "Content of the ticket in plain text", "example": "How do I connect printer?"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"choice": "First Choice", "employee_id": "E1234"}}, "created_at": {"type": "string", "description": "Timestamp at which the ticket was created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the ticket was last updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "tags": {"type": "array", "description": "Tags that have been associated with the ticket", "example": ["Hardware", "Network", "VPN"], "items": {"type": "string"}}, "attachments": {"type": "array", "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB", "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "POSTTICKETREPLY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the reply", "format": "int64", "readOnly": true, "example": 14000982343}, "user_id": {"type": "integer", "description": "Unique ID of the user who created the reply", "format": "int64", "readOnly": true, "example": 1400023423}, "created_at": {"type": "string", "description": "Timestamp at which the note is created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the note is updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "body": {"type": "string", "description": "The body of the note in HTML format.", "example": "

Thanks for resolving the issue

"}, "body_text": {"type": "string", "description": "The body of the note in plain text format", "example": "Thanks for resolving the issue"}, "attachments": {"type": "array", "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}, "ticket_id": {"type": "integer", "description": "Unique ID of the ticket to which the reply belongs", "format": "int64", "example": 1012}, "from_email": {"type": "string", "example": "andrea@freshservice.com"}, "to_emails": {"type": "array", "description": "Addresses to which the conversation must be sent", "example": ["john.doe@freshservice.com", "david@freshservice.com"], "items": {"type": "string"}}, "cc_emails": {"type": "array", "description": "Addresses which must be copied on while sending the conversation", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "bcc_emails": {"type": "array", "description": "Addresses to which a blind copy must be sent", "example": ["andrea@freshservice.com", "david@freshservice.com"], "items": {"type": "string"}}}}', # noqa: E501 + "ADDTICKETNOTE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the note", "format": "int64", "readOnly": true, "example": 14000398432}, "user_id": {"type": "integer", "description": "Unique ID of the user who created the note", "format": "int64", "readOnly": true, "example": 1400034853}, "private": {"type": "boolean", "description": "Set to true if the note is private. The default value is true.", "example": true}, "incoming": {"type": "boolean", "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)", "example": true}, "notify_emails": {"type": "array", "description": "Addresses to which the note must be notified to", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "body": {"type": "string", "description": "The body of the note in HTML format", "example": "

Developers debugging the isue

"}, "body_text": {"type": "string", "description": "The body of the note in plain text format", "example": "Developers debugging the issue"}, "created_at": {"type": "string", "description": "Date time at which the note was created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Date time at which the note was updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "attachments": {"type": "array", "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "EDITTICKETCONVERSATION": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the conversatoin", "format": "int64", "readOnly": true, "example": 140003948573}, "user_id": {"type": "integer", "description": "Unique ID of the user who created the note", "format": "int64", "readOnly": true, "example": 14000495822}, "source": {"type": "integer", "description": "Source of the note, 0-email, 1-form, 2-note, 3-status, 4-meta, 5-feedback, 6-forward_email)", "format": "int32", "readOnly": true, "example": 1, "enum": [0, 1, 2, 3, 4, 5, 6]}, "incoming": {"type": "boolean", "description": "Set to true if a particular conversation should appear as being created from the outside (i.e., not through the web portal)", "example": true}, "created_at": {"type": "string", "description": "Date time at which the conversation is created", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Date time at which the conversation is updated", "format": "date_time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "body": {"type": "string", "example": "

Thanks for swift response

"}, "body_text": {"type": "string", "example": "Thanks for swift response"}, "attachments": {"type": "array", "readOnly": true, "example": [{"id": 14000884384, "content_type": "application/pdf", "size": 1024, "name": "doc1.pdf", "attachment_url": "https://s3.amazonaws.com/fs/doc1.pdf"}], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}, "change_id": {"type": "integer", "description": "Unique ID of the change to which the note belongs", "format": "int64", "example": 140003498}, "ticket_id": {"type": "integer", "description": "Unique ID of the ticket to which the note belongs", "format": "int64", "example": 140002938232}, "from_email": {"type": "string", "example": "andrea@freshservice.com"}, "to_emails": {"type": "array", "description": "Addresses to which the conversation must be sent", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "cc_emails": {"type": "array", "description": "Addresses which must be copied on while sending the conversation", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}, "bcc_emails": {"type": "array", "description": "Addresses to which a blind copy must be sent", "example": ["andrea@freshservice.com", "john.doe@freshservice.com"], "items": {"type": "string"}}}}', # noqa: E501 + "CREATETICKETTASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATEFRESHSERVICETICKETTASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "CREATETICKETTIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "UPDATETICKETTIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "CREATEFRESHSERVICECHANGEREQUEST": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the change", "format": "int64", "readOnly": true, "example": 140002342342}, "requester_id": {"type": "integer", "description": "Unique identifier of the initiator of the change", "format": "int64", "example": 14000234234}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the change is assigned", "format": "int64", "example": 1400023498}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the change is assigned", "format": "int64", "example": 1400097572}, "priority": {"type": "integer", "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "string", "example": 2}, "impact": {"type": "integer", "description": "Impact of the change 1-Low, 2-Medium, 3-High", "format": "string", "example": 1}, "status": {"type": "integer", "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6", "format": "int32", "example": 1}, "risk": {"type": "integer", "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High", "format": "string", "example": 1}, "change_type": {"type": "integer", "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency", "format": "string", "example": 1}, "approval_status": {"type": "integer", "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested", "format": "string", "readOnly": true, "example": 1}, "subject": {"type": "string", "description": "Subject of the change", "example": "Replace Macbook"}, "description": {"type": "string", "description": "Short description of the change in HTML format", "example": "

Replace damaged Macbook

"}, "description_text": {"type": "string", "description": "Short description of the change in plain text format", "readOnly": true, "example": "Replace damaged Macbook"}, "planned_start_date": {"type": "string", "description": "Timestamp at which change is starting", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "planned_end_date": {"type": "string", "description": "Timestamp at which change is ending", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "project_id": {"type": "integer", "description": "Unique ID of the associated project", "format": "int64", "example": 1400023894}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the change", "format": "int64", "example": 14000495482}, "category": {"type": "string", "description": "Category of the change", "example": "Hardware"}, "sub_category": {"type": "string", "description": "Sub-category of the change", "example": "Computer"}, "item_category": {"type": "string", "description": "Item of the change", "example": "Mac"}, "created_at": {"type": "string", "description": "Timestamp at which change was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which change was last updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "associated_release": {"type": "integer", "description": "Unique ID of the associated release", "format": "int64", "readOnly": true, "example": 140004343}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [{"id": 14000234324, "display_id": 1453, "name": "Hardware-Monitor"}], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "associated_problems": {"type": "array", "description": "Unique IDs of the problems associated with the change request", "readOnly": true, "example": [140002394874, 140003948543], "items": {"type": "integer", "format": "int64"}}, "incidents_caused_by_change": {"type": "array", "description": "Unique IDs of the incidents caused by this change request", "readOnly": true, "example": [1400034598, 1400039485], "items": {"type": "integer", "format": "int64"}}, "tickets_initiating_change": {"type": "array", "description": "Unique IDs of the tickets initiating this change request", "readOnly": true, "example": [1400023984, 1400034984], "items": {"type": "integer", "format": "int64"}}, "associated_project": {"type": "integer", "description": "Id of the associated release", "format": "int64", "readOnly": true, "example": 140002394874}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"change_choices": "First Choice", "state": "TX"}}, "planning_fields": {"type": "object", "properties": {"reason_for_change": {"type": "object", "properties": {"description": {"type": "string", "description": "Reason for change", "example": "

Reason for change

"}, "description_text": {"type": "string", "description": "Reason for change in plain text format", "readOnly": true, "example": "Reason for Change"}}, "example": {"description": "
Reason for change
", "description_text": "Reason for change"}}, "impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact", "example": "

Impact

"}, "description_text": {"type": "string", "description": "Impact in plain text format", "readOnly": true, "example": "Impact"}}, "example": {"description": "
Impact
", "description_text": "Impact"}}, "rollout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Rollout Plan", "example": "
Rollout plan
"}, "description_text": {"type": "string", "description": "Rollout plan in plain text format", "readOnly": true, "example": "Rollout Plan"}}, "example": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}}, "backout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Backout Plan", "example": "
Backout plan
"}, "description_text": {"type": "string", "description": "Backout plan in plain text format", "readOnly": true, "example": "Backout Plan"}}, "example": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "example": {"reason_for_change": {"description": "
Reason for change
", "description_text": "Reason for change"}, "impact": {"description": "
Impact
", "description_text": "Impact"}, "rollout_plan": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}, "backout_plan": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "maintenance_window": {"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Change Window", "format": "int64", "example": 140009348572}, "name": {"type": "string", "description": "Name of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "description": {"type": "string", "description": "Description of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "window_start_date": {"type": "string", "description": "Timestamp at which Change Window is starting", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "window_end_date": {"type": "string", "description": "Timestamp at which Change Window is ending", "format": "date-time", "readOnly": true, "example": "2021-11-25T11:30:00Z"}}, "example": {"id": 140009348572, "name": "Router firmware upgrade", "description": "Router firmware upgrade", "window_start_date": "2021-11-24T11:30:00Z", "window_end_date": "2021-11-25T11:30:00Z"}}, "black_out_window": {"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Change Window", "format": "int64", "example": 140009348572}, "name": {"type": "string", "description": "Name of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "description": {"type": "string", "description": "Description of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "window_start_date": {"type": "string", "description": "Timestamp at which Change Window is starting", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "window_end_date": {"type": "string", "description": "Timestamp at which Change Window is ending", "format": "date-time", "readOnly": true, "example": "2021-11-25T11:30:00Z"}}, "example": {"id": 140009348572, "name": "Router firmware upgrade", "description": "Router firmware upgrade", "window_start_date": "2021-11-24T11:30:00Z", "window_end_date": "2021-11-25T11:30:00Z"}}}}', # noqa: E501 + "UPDATECHANGEREQUEST": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the change", "format": "int64", "readOnly": true, "example": 140002342342}, "requester_id": {"type": "integer", "description": "Unique identifier of the initiator of the change", "format": "int64", "example": 14000234234}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the change is assigned", "format": "int64", "example": 1400023498}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the change is assigned", "format": "int64", "example": 1400097572}, "priority": {"type": "integer", "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "string", "example": 2}, "impact": {"type": "integer", "description": "Impact of the change 1-Low, 2-Medium, 3-High", "format": "string", "example": 1}, "status": {"type": "integer", "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6", "format": "int32", "example": 1}, "risk": {"type": "integer", "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High", "format": "string", "example": 1}, "change_type": {"type": "integer", "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency", "format": "string", "example": 1}, "approval_status": {"type": "integer", "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested", "format": "string", "readOnly": true, "example": 1}, "subject": {"type": "string", "description": "Subject of the change", "example": "Replace Macbook"}, "description": {"type": "string", "description": "Short description of the change in HTML format", "example": "

Replace damaged Macbook

"}, "description_text": {"type": "string", "description": "Short description of the change in plain text format", "readOnly": true, "example": "Replace damaged Macbook"}, "planned_start_date": {"type": "string", "description": "Timestamp at which change is starting", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "planned_end_date": {"type": "string", "description": "Timestamp at which change is ending", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "project_id": {"type": "integer", "description": "Unique ID of the associated project", "format": "int64", "example": 1400023894}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the change", "format": "int64", "example": 14000495482}, "category": {"type": "string", "description": "Category of the change", "example": "Hardware"}, "sub_category": {"type": "string", "description": "Sub-category of the change", "example": "Computer"}, "item_category": {"type": "string", "description": "Item of the change", "example": "Mac"}, "created_at": {"type": "string", "description": "Timestamp at which change was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which change was last updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "associated_release": {"type": "integer", "description": "Unique ID of the associated release", "format": "int64", "readOnly": true, "example": 140004343}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [{"id": 14000234324, "display_id": 1453, "name": "Hardware-Monitor"}], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "associated_problems": {"type": "array", "description": "Unique IDs of the problems associated with the change request", "readOnly": true, "example": [140002394874, 140003948543], "items": {"type": "integer", "format": "int64"}}, "incidents_caused_by_change": {"type": "array", "description": "Unique IDs of the incidents caused by this change request", "readOnly": true, "example": [1400034598, 1400039485], "items": {"type": "integer", "format": "int64"}}, "tickets_initiating_change": {"type": "array", "description": "Unique IDs of the tickets initiating this change request", "readOnly": true, "example": [1400023984, 1400034984], "items": {"type": "integer", "format": "int64"}}, "associated_project": {"type": "integer", "description": "Id of the associated release", "format": "int64", "readOnly": true, "example": 140002394874}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"change_choices": "First Choice", "state": "TX"}}, "planning_fields": {"type": "object", "properties": {"reason_for_change": {"type": "object", "properties": {"description": {"type": "string", "description": "Reason for change", "example": "

Reason for change

"}, "description_text": {"type": "string", "description": "Reason for change in plain text format", "readOnly": true, "example": "Reason for Change"}}, "example": {"description": "
Reason for change
", "description_text": "Reason for change"}}, "impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact", "example": "

Impact

"}, "description_text": {"type": "string", "description": "Impact in plain text format", "readOnly": true, "example": "Impact"}}, "example": {"description": "
Impact
", "description_text": "Impact"}}, "rollout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Rollout Plan", "example": "
Rollout plan
"}, "description_text": {"type": "string", "description": "Rollout plan in plain text format", "readOnly": true, "example": "Rollout Plan"}}, "example": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}}, "backout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Backout Plan", "example": "
Backout plan
"}, "description_text": {"type": "string", "description": "Backout plan in plain text format", "readOnly": true, "example": "Backout Plan"}}, "example": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "example": {"reason_for_change": {"description": "
Reason for change
", "description_text": "Reason for change"}, "impact": {"description": "
Impact
", "description_text": "Impact"}, "rollout_plan": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}, "backout_plan": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "maintenance_window": {"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Change Window", "format": "int64", "example": 140009348572}, "name": {"type": "string", "description": "Name of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "description": {"type": "string", "description": "Description of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "window_start_date": {"type": "string", "description": "Timestamp at which Change Window is starting", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "window_end_date": {"type": "string", "description": "Timestamp at which Change Window is ending", "format": "date-time", "readOnly": true, "example": "2021-11-25T11:30:00Z"}}, "example": {"id": 140009348572, "name": "Router firmware upgrade", "description": "Router firmware upgrade", "window_start_date": "2021-11-24T11:30:00Z", "window_end_date": "2021-11-25T11:30:00Z"}}, "black_out_window": {"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Change Window", "format": "int64", "example": 140009348572}, "name": {"type": "string", "description": "Name of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "description": {"type": "string", "description": "Description of the Change Window", "readOnly": true, "example": "Router firmware upgrade"}, "window_start_date": {"type": "string", "description": "Timestamp at which Change Window is starting", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "window_end_date": {"type": "string", "description": "Timestamp at which Change Window is ending", "format": "date-time", "readOnly": true, "example": "2021-11-25T11:30:00Z"}}, "example": {"id": 140009348572, "name": "Router firmware upgrade", "description": "Router firmware upgrade", "window_start_date": "2021-11-24T11:30:00Z", "window_end_date": "2021-11-25T11:30:00Z"}}}}', # noqa: E501 + "CREATECHANGETASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATEEXISTINGCHANGETASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "CREATEFRESHSERVICECHANGETIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "UPDATEFRESHSERVICECHANGETIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "CREATEFRESHSERVICEPROJECT": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the project", "format": "int64", "readOnly": true, "example": 13298}, "title": {"type": "string", "description": "Name of the project", "example": "Solution Articles for Ticket"}, "description": {"type": "string", "description": "Description about the project in HTML format", "example": "
Publish solution articles for Ticket
"}, "description_text": {"type": "string", "description": "Description about the project in text format", "readOnly": true, "example": "Publish solution articles for Ticket"}, "status": {"type": "integer", "description": "Status of the project", "format": "int32", "example": 2}, "priority": {"type": "integer", "description": "Priority of the project", "format": "int32", "example": 1}, "owner_id": {"type": "integer", "description": "Owner of the project", "format": "int64", "example": 43423}, "user_id": {"type": "integer", "description": "User who created the project", "format": "int64", "readOnly": true, "example": 123123}, "start_date": {"type": "string", "description": "Start date of the project", "format": "date-time", "example": "2021-04-01T07:16:45Z"}, "end_date": {"type": "string", "description": "End date of the project", "format": "date-time", "example": "2021-06-30T07:16:45Z"}, "archived": {"type": "boolean", "description": "Project archived status", "readOnly": true, "example": true}, "closed_at": {"type": "string", "description": "Closed time of the project", "format": "date-time", "readOnly": true, "example": "2021-06-11T07:16:45Z"}}}', # noqa: E501 + "UPDATEPROJECT": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the project", "format": "int64", "readOnly": true, "example": 13298}, "title": {"type": "string", "description": "Name of the project", "example": "Solution Articles for Ticket"}, "description": {"type": "string", "description": "Description about the project in HTML format", "example": "
Publish solution articles for Ticket
"}, "description_text": {"type": "string", "description": "Description about the project in text format", "readOnly": true, "example": "Publish solution articles for Ticket"}, "status": {"type": "integer", "description": "Status of the project", "format": "int32", "example": 2}, "priority": {"type": "integer", "description": "Priority of the project", "format": "int32", "example": 1}, "owner_id": {"type": "integer", "description": "Owner of the project", "format": "int64", "example": 43423}, "user_id": {"type": "integer", "description": "User who created the project", "format": "int64", "readOnly": true, "example": 123123}, "start_date": {"type": "string", "description": "Start date of the project", "format": "date-time", "example": "2021-04-01T07:16:45Z"}, "end_date": {"type": "string", "description": "End date of the project", "format": "date-time", "example": "2021-06-30T07:16:45Z"}, "archived": {"type": "boolean", "description": "Project archived status", "readOnly": true, "example": true}, "closed_at": {"type": "string", "description": "Closed time of the project", "format": "date-time", "readOnly": true, "example": "2021-06-11T07:16:45Z"}}}', # noqa: E501 + "CREATEPROJECTTASK": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the task", "format": "int64", "readOnly": true, "example": 1001}, "project_id": {"type": "integer", "description": "Unique identifier of the project", "format": "int64", "readOnly": true, "example": 10}, "title": {"type": "string", "description": "Name of the task", "example": "Clear backlog"}, "description": {"type": "string", "description": "Description about the task", "example": "Clear backlog"}, "status": {"type": "integer", "description": "Status of the task", "format": "int32", "example": 1}, "owner_id": {"type": "integer", "description": "Owner of the task", "format": "int64", "example": 984793}, "user_id": {"type": "integer", "description": "Agent who created the task", "format": "int64", "readOnly": true, "example": 23423423}, "closed_at": {"type": "string", "description": "Closed time of the task", "format": "date-time", "readOnly": true, "example": "2021-06-14T07:16:45Z"}, "start_date": {"type": "string", "description": "Start date of the task", "format": "date-time", "example": "2021-06-14T07:16:45Z"}, "end_date": {"type": "string", "description": "End date of the task", "format": "date-time", "example": "2021-06-11T07:16:45Z"}, "parent_id": {"type": "integer", "description": "Immediate parent of the task", "format": "int64", "example": 34534}, "root_id": {"type": "integer", "description": "Root parent of the task", "format": "int64", "readOnly": true, "example": 12312}, "has_subtasks": {"type": "boolean", "description": "States if the task has subtasks", "readOnly": true, "example": true}, "notification_needed": {"type": "boolean", "description": "Specify if needed to be notified", "example": true}, "notify": {"type": "object", "properties": {"type": {"type": "string", "description": "Specify whether notification should be sent before start or before end date", "example": "BEFORE_START_DATE", "enum": ["BEFORE_START_DATE", "BEFORE_END_DATE"]}, "value": {"type": "integer", "description": "Time period of notification", "example": 2}, "time_unit": {"type": "string", "description": "Time unit", "example": "hours", "enum": ["minutes", "hours", "days", "weeks"]}}, "description": "Task notification details. Allowed range - 15 minutes to 4 weeks", "example": {"type": "BEFORE_START_DATE", "value": 2, "time_unit": "hours"}}}}', # noqa: E501 + "UPDATEPROJECTTASK": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the task", "format": "int64", "readOnly": true, "example": 1001}, "project_id": {"type": "integer", "description": "Unique identifier of the project", "format": "int64", "readOnly": true, "example": 10}, "title": {"type": "string", "description": "Name of the task", "example": "Clear backlog"}, "description": {"type": "string", "description": "Description about the task", "example": "Clear backlog"}, "status": {"type": "integer", "description": "Status of the task", "format": "int32", "example": 1}, "owner_id": {"type": "integer", "description": "Owner of the task", "format": "int64", "example": 984793}, "user_id": {"type": "integer", "description": "Agent who created the task", "format": "int64", "readOnly": true, "example": 23423423}, "closed_at": {"type": "string", "description": "Closed time of the task", "format": "date-time", "readOnly": true, "example": "2021-06-14T07:16:45Z"}, "start_date": {"type": "string", "description": "Start date of the task", "format": "date-time", "example": "2021-06-14T07:16:45Z"}, "end_date": {"type": "string", "description": "End date of the task", "format": "date-time", "example": "2021-06-11T07:16:45Z"}, "parent_id": {"type": "integer", "description": "Immediate parent of the task", "format": "int64", "example": 34534}, "root_id": {"type": "integer", "description": "Root parent of the task", "format": "int64", "readOnly": true, "example": 12312}, "has_subtasks": {"type": "boolean", "description": "States if the task has subtasks", "readOnly": true, "example": true}, "notification_needed": {"type": "boolean", "description": "Specify if needed to be notified", "example": true}, "notify": {"type": "object", "properties": {"type": {"type": "string", "description": "Specify whether notification should be sent before start or before end date", "example": "BEFORE_START_DATE", "enum": ["BEFORE_START_DATE", "BEFORE_END_DATE"]}, "value": {"type": "integer", "description": "Time period of notification", "example": 2}, "time_unit": {"type": "string", "description": "Time unit", "example": "hours", "enum": ["minutes", "hours", "days", "weeks"]}}, "description": "Task notification details. Allowed range - 15 minutes to 4 weeks", "example": {"type": "BEFORE_START_DATE", "value": 2, "time_unit": "hours"}}}}', # noqa: E501 + "CREATEANNOUNCEMENT": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Announcement", "format": "int64", "readOnly": true, "example": 1400623}, "created_by": {"type": "integer", "description": "Unique identifier of the agent to created this Announcement", "format": "int64", "example": 1407423}, "state": {"type": "string", "description": "State of the Announcement active, archived, scheduled", "format": "string", "readOnly": true, "example": "active"}, "title": {"type": "string", "description": "Title of the Announcement", "example": "Welcome to Freshservice"}, "body": {"type": "string", "description": "Body of the Announcement in plain text", "readOnly": true, "example": "Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want."}, "body_html": {"type": "string", "description": "Body of the Announcement in HTML format", "example": "
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
"}, "visible_from": {"type": "string", "description": "Timestamp at which Announcement becomes active", "format": "date-time", "example": "2019-06-11T07:16:43Z"}, "visible_till": {"type": "string", "description": "Timestamp until which Announcement is active", "format": "date-time", "example": "2019-06-18T07:16:43Z"}, "visibility": {"type": "string", "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups", "example": "everyone"}, "departments": {"type": "array", "description": "Array of Department IDs that can view this Announcement", "example": [1001, 1003], "items": {"type": "integer", "format": "int64"}}, "groups": {"type": "array", "description": "Array of Group IDs that can view this Announcement", "example": [2002, 2004], "items": {"type": "integer", "format": "int64"}}, "is_read": {"type": "boolean", "description": "True if the logged-in-user has read the announcement. False, otherwise", "readOnly": true, "example": true}, "send_email": {"type": "boolean", "description": "True if the announcement needs to be sent via email as well. False, otherwise", "readOnly": true, "example": true}, "additional_emails": {"type": "array", "description": "Additional email addresses to which the announcement needs to be sent", "example": ["john.doe@acmecorp.com", "alice@acmecorp.com"], "items": {"type": "string"}}, "created_at": {"type": "string", "description": "Timestamp at which Announcement was created", "format": "date-time", "readOnly": true, "example": "2019-06-18T13:45:11Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Announcement was last updated", "format": "date-time", "readOnly": true, "example": "2019-06-18T13:45:11Z"}}}', # noqa: E501 + "UPDATEFRESHSERVICEANNOUNCEMENT": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Announcement", "format": "int64", "readOnly": true, "example": 1400623}, "created_by": {"type": "integer", "description": "Unique identifier of the agent to created this Announcement", "format": "int64", "example": 1407423}, "state": {"type": "string", "description": "State of the Announcement active, archived, scheduled", "format": "string", "readOnly": true, "example": "active"}, "title": {"type": "string", "description": "Title of the Announcement", "example": "Welcome to Freshservice"}, "body": {"type": "string", "description": "Body of the Announcement in plain text", "readOnly": true, "example": "Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want."}, "body_html": {"type": "string", "description": "Body of the Announcement in HTML format", "example": "
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
"}, "visible_from": {"type": "string", "description": "Timestamp at which Announcement becomes active", "format": "date-time", "example": "2019-06-11T07:16:43Z"}, "visible_till": {"type": "string", "description": "Timestamp until which Announcement is active", "format": "date-time", "example": "2019-06-18T07:16:43Z"}, "visibility": {"type": "string", "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups", "example": "everyone"}, "departments": {"type": "array", "description": "Array of Department IDs that can view this Announcement", "example": [1001, 1003], "items": {"type": "integer", "format": "int64"}}, "groups": {"type": "array", "description": "Array of Group IDs that can view this Announcement", "example": [2002, 2004], "items": {"type": "integer", "format": "int64"}}, "is_read": {"type": "boolean", "description": "True if the logged-in-user has read the announcement. False, otherwise", "readOnly": true, "example": true}, "send_email": {"type": "boolean", "description": "True if the announcement needs to be sent via email as well. False, otherwise", "readOnly": true, "example": true}, "additional_emails": {"type": "array", "description": "Additional email addresses to which the announcement needs to be sent", "example": ["john.doe@acmecorp.com", "alice@acmecorp.com"], "items": {"type": "string"}}, "created_at": {"type": "string", "description": "Timestamp at which Announcement was created", "format": "date-time", "readOnly": true, "example": "2019-06-18T13:45:11Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Announcement was last updated", "format": "date-time", "readOnly": true, "example": "2019-06-18T13:45:11Z"}}}', # noqa: E501 + "CREATENEWPROBLEM": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Problem", "format": "int64", "readOnly": true, "example": 1001}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the Problem is assigned", "format": "int64", "example": 34523423}, "requester_id": {"type": "integer", "description": "Unique identifier of the user who raised the Problem", "format": "int64", "example": 193845793}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the Problem is assigned", "format": "int64", "example": 12943209}, "priority": {"type": "integer", "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "int64", "example": 1, "enum": [1, 2, 3, 4]}, "impact": {"type": "integer", "description": "Impact of the Problem 1-Low, 2-Medium, 3-High", "format": "int64", "example": 1, "enum": [1, 2, 3]}, "status": {"type": "integer", "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3", "format": "int32", "example": 1}, "subject": {"type": "string", "description": "Subject of the Problem", "example": "Unable to reach email server"}, "due_by": {"type": "string", "description": "Timestamp at which Problem\'s resolution is due", "format": "date-time", "readOnly": true, "example": "2021-06-25T07:16:00Z"}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the Problem", "format": "int64", "example": 14002384}, "category": {"type": "string", "description": "Category of the Problem", "example": "Customer Support"}, "sub_category": {"type": "string", "description": "Sub-category of the Problem", "example": "Multi-DRM and Rights Management"}, "item_category": {"type": "string", "description": "Item of the Problem", "example": "Media Manager"}, "known_error": {"type": "boolean", "description": "true if the Problem is a known error, false otherwise", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which Problem was created", "format": "date-time", "readOnly": true, "example": "2021-10-12T15:01:27Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Problem was last updated", "format": "date-time", "readOnly": true, "example": "2021-10-12T15:01:27Z"}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "attachments": {"type": "array", "description": "URLs of attachments attached to the Problem request", "readOnly": true, "example": ["https://s3.amazonaws.com/fs/image1.jpg", "https://s3.amazonaws.com/fs/image2.jpg"], "items": {"type": "string", "format": "URL"}}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Sample value"}}, "analysis_fields": {"type": "object", "properties": {"problem_cause": {"type": "object", "properties": {"description": {"type": "string", "description": "Cause of the Problem", "example": "Router malfunction"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Cause", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Router malfunction"}}, "problem_symptoms": {"type": "object", "properties": {"description": {"type": "string", "description": "Symptoms of the Problem", "example": "Cannot connect mobile devices to Wi-fi"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Symptom", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Cannot connect mobile devices to Wi-fi"}}, "problem_impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact of the Problem", "example": "Affects Wi-fi connectivity in Block A"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Impact", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Affects Wi-fi connectivity in Block A"}}}, "example": {"problem_cause": {"description": "Router malfunction"}, "problem_symptoms": {"description": "Cannot connect mobile devices to Wi-fi"}, "problem_impact": {"description": "Affects Wi-fi connectivity in Block A"}}}}}', # noqa: E501 + "UPDATESERVICEPROBLEM": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Problem", "format": "int64", "readOnly": true, "example": 1001}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the Problem is assigned", "format": "int64", "example": 34523423}, "requester_id": {"type": "integer", "description": "Unique identifier of the user who raised the Problem", "format": "int64", "example": 193845793}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the Problem is assigned", "format": "int64", "example": 12943209}, "priority": {"type": "integer", "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "int64", "example": 1, "enum": [1, 2, 3, 4]}, "impact": {"type": "integer", "description": "Impact of the Problem 1-Low, 2-Medium, 3-High", "format": "int64", "example": 1, "enum": [1, 2, 3]}, "status": {"type": "integer", "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3", "format": "int32", "example": 1}, "subject": {"type": "string", "description": "Subject of the Problem", "example": "Unable to reach email server"}, "due_by": {"type": "string", "description": "Timestamp at which Problem\'s resolution is due", "format": "date-time", "readOnly": true, "example": "2021-06-25T07:16:00Z"}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the Problem", "format": "int64", "example": 14002384}, "category": {"type": "string", "description": "Category of the Problem", "example": "Customer Support"}, "sub_category": {"type": "string", "description": "Sub-category of the Problem", "example": "Multi-DRM and Rights Management"}, "item_category": {"type": "string", "description": "Item of the Problem", "example": "Media Manager"}, "known_error": {"type": "boolean", "description": "true if the Problem is a known error, false otherwise", "example": true}, "created_at": {"type": "string", "description": "Timestamp at which Problem was created", "format": "date-time", "readOnly": true, "example": "2021-10-12T15:01:27Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Problem was last updated", "format": "date-time", "readOnly": true, "example": "2021-10-12T15:01:27Z"}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "attachments": {"type": "array", "description": "URLs of attachments attached to the Problem request", "readOnly": true, "example": ["https://s3.amazonaws.com/fs/image1.jpg", "https://s3.amazonaws.com/fs/image2.jpg"], "items": {"type": "string", "format": "URL"}}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Sample value"}}, "analysis_fields": {"type": "object", "properties": {"problem_cause": {"type": "object", "properties": {"description": {"type": "string", "description": "Cause of the Problem", "example": "Router malfunction"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Cause", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Router malfunction"}}, "problem_symptoms": {"type": "object", "properties": {"description": {"type": "string", "description": "Symptoms of the Problem", "example": "Cannot connect mobile devices to Wi-fi"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Symptom", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Cannot connect mobile devices to Wi-fi"}}, "problem_impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact of the Problem", "example": "Affects Wi-fi connectivity in Block A"}, "attachments": {"type": "array", "description": "URLs of attachments attached for Problem Impact", "example": ["https://s3.amazonaws.com/fs/doc1.pdf", "https://s3.amazonaws.com/fs/doc2.pdf"], "items": {"type": "string", "format": "URL"}}}, "example": {"description": "Affects Wi-fi connectivity in Block A"}}}, "example": {"problem_cause": {"description": "Router malfunction"}, "problem_symptoms": {"description": "Cannot connect mobile devices to Wi-fi"}, "problem_impact": {"description": "Affects Wi-fi connectivity in Block A"}}}}}', # noqa: E501 + "CREATEFRESHSERVICEPROBLEMTASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATEPROBLEMTASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "CREATEPROBLEMTIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "UPDATEFRESHSERVICEPROBLEMTIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "GETONBOARDINGREQUESTFORM": "{}", + "CREATEONBOARDINGREQUEST": '{"required": ["fields"], "type": "object", "properties": {"fields": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"cf_employee_name": "Sample", "cf_department_name": "Customer Support", "cf_job_title": "it user", "cf_date_of_joining": "2019-06-15"}}}}', # noqa: E501 + "CREATEFRESHSERVICECANNEDRESPONSE": '{"type": "object", "properties": {"id": {"type": "integer", "format": "int64", "readOnly": true, "example": 14006643}, "title": {"type": "string", "example": "Common L2 response"}, "folder_id": {"type": "integer", "format": "int32", "example": 14022945}, "content": {"type": "string", "readOnly": true, "example": "Raise a support ticket"}, "content_html": {"type": "string", "example": "
Raise a support ticket
"}, "created_at": {"type": "string", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "updated_at": {"type": "string", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "attachments": {"type": "array", "example": [], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "UPDATECANNEDRESPONSE": '{"type": "object", "properties": {"id": {"type": "integer", "format": "int64", "readOnly": true, "example": 14006643}, "title": {"type": "string", "example": "Common L2 response"}, "folder_id": {"type": "integer", "format": "int32", "example": 14022945}, "content": {"type": "string", "readOnly": true, "example": "Raise a support ticket"}, "content_html": {"type": "string", "example": "
Raise a support ticket
"}, "created_at": {"type": "string", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "updated_at": {"type": "string", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "attachments": {"type": "array", "example": [], "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Auto increment value", "format": "int64", "readOnly": true, "example": 14000884384}, "content_type": {"type": "string", "example": "application/pdf"}, "size": {"type": "number", "description": "Size of the attached file", "readOnly": true, "example": 1024.0}, "name": {"type": "string", "description": "Name of the attachment", "example": "doc1.pdf"}, "attachment_url": {"type": "string", "description": "URL of the attachment", "example": "https://s3.amazonaws.com/fs/doc1.pdf"}}}}}}', # noqa: E501 + "CREATERELEASEREQUEST": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Release", "format": "int64", "readOnly": true, "example": 10}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the Release is assigned", "format": "int64", "example": 14043616}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the Release is assigned", "format": "int64", "example": 10184589}, "priority": {"type": "integer", "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "string", "example": 1}, "status": {"type": "integer", "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5", "format": "int32", "example": 1}, "release_type": {"type": "integer", "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency", "format": "string", "example": 1}, "subject": {"type": "string", "description": "Subject of the Release", "example": "Security Patch Deployment"}, "planned_start_date": {"type": "string", "description": "Timestamp at which release is starting", "format": "date-time", "example": "2021-08-01T18:30:00Z"}, "planned_end_date": {"type": "string", "description": "Timestamp at which release is ending", "format": "date-time", "example": "2021-08-08T18:45:00Z"}, "work_start_date": {"type": "string", "description": "Timestamp at which release work started", "format": "date-time", "example": "2021-08-01T18:30:00Z"}, "work_end_date": {"type": "string", "description": "Timestamp at which release work ended", "format": "date-time", "example": "2021-08-08T18:45:00Z"}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the Release", "format": "int64", "example": 10143312}, "category": {"type": "string", "description": "Category of the Release", "example": "Security"}, "sub_category": {"type": "string", "description": "Sub-category of the Release", "example": "Deployment"}, "item_category": {"type": "string", "description": "Item of the Release", "example": "Security"}, "created_at": {"type": "string", "description": "Timestamp at which Release was created", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Release was last updated", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "associated_assets": {"type": "array", "description": "Unique IDs of the assets associated with the Release request", "readOnly": true, "example": [1001, 1002], "items": {"type": "integer", "format": "int64"}}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "associated_changes": {"type": "array", "description": "Unique IDs of the Changes associated with the Release", "readOnly": true, "example": [1001, 1002], "items": {"type": "integer", "format": "int64"}}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Some Value"}}, "planning_fields": {"type": "object", "properties": {"reason_for_change": {"type": "object", "properties": {"description": {"type": "string", "description": "Reason for change", "example": "

Reason for change

"}, "description_text": {"type": "string", "description": "Reason for change in plain text format", "readOnly": true, "example": "Reason for Change"}}, "example": {"description": "
Reason for change
", "description_text": "Reason for change"}}, "impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact", "example": "

Impact

"}, "description_text": {"type": "string", "description": "Impact in plain text format", "readOnly": true, "example": "Impact"}}, "example": {"description": "
Impact
", "description_text": "Impact"}}, "rollout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Rollout Plan", "example": "
Rollout plan
"}, "description_text": {"type": "string", "description": "Rollout plan in plain text format", "readOnly": true, "example": "Rollout Plan"}}, "example": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}}, "backout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Backout Plan", "example": "
Backout plan
"}, "description_text": {"type": "string", "description": "Backout plan in plain text format", "readOnly": true, "example": "Backout Plan"}}, "example": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "example": {"reason_for_change": {"description": "
Reason for change
", "description_text": "Reason for change"}, "impact": {"description": "
Impact
", "description_text": "Impact"}, "rollout_plan": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}, "backout_plan": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}}}', # noqa: E501 + "UPDATEFRESHSERVICERELEASE": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique identifier of the Release", "format": "int64", "readOnly": true, "example": 10}, "agent_id": {"type": "integer", "description": "Unique identifier of the agent to whom the Release is assigned", "format": "int64", "example": 14043616}, "group_id": {"type": "integer", "description": "Unique identifier of the agent group to which the Release is assigned", "format": "int64", "example": 10184589}, "priority": {"type": "integer", "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent", "format": "string", "example": 1}, "status": {"type": "integer", "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5", "format": "int32", "example": 1}, "release_type": {"type": "integer", "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency", "format": "string", "example": 1}, "subject": {"type": "string", "description": "Subject of the Release", "example": "Security Patch Deployment"}, "planned_start_date": {"type": "string", "description": "Timestamp at which release is starting", "format": "date-time", "example": "2021-08-01T18:30:00Z"}, "planned_end_date": {"type": "string", "description": "Timestamp at which release is ending", "format": "date-time", "example": "2021-08-08T18:45:00Z"}, "work_start_date": {"type": "string", "description": "Timestamp at which release work started", "format": "date-time", "example": "2021-08-01T18:30:00Z"}, "work_end_date": {"type": "string", "description": "Timestamp at which release work ended", "format": "date-time", "example": "2021-08-08T18:45:00Z"}, "department_id": {"type": "integer", "description": "Unique ID of the department initiating the Release", "format": "int64", "example": 10143312}, "category": {"type": "string", "description": "Category of the Release", "example": "Security"}, "sub_category": {"type": "string", "description": "Sub-category of the Release", "example": "Deployment"}, "item_category": {"type": "string", "description": "Item of the Release", "example": "Security"}, "created_at": {"type": "string", "description": "Timestamp at which Release was created", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "updated_at": {"type": "string", "description": "Timestamp at which Release was last updated", "format": "date-time", "readOnly": true, "example": "2021-08-12T10:10:20Z"}, "associated_assets": {"type": "array", "description": "Unique IDs of the assets associated with the Release request", "readOnly": true, "example": [1001, 1002], "items": {"type": "integer", "format": "int64"}}, "assets": {"type": "array", "description": "Assets associated with the Ticket", "example": [], "items": {"type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "id of the asset", "format": "int64", "readOnly": true, "example": 14000234324}, "display_id": {"minimum": 1, "type": "integer", "description": "display id of the asset that is used for all operations", "format": "int64", "readOnly": true, "example": 1453}, "name": {"type": "string", "description": "Display Name of the Asset", "example": "Hardware-Monitor"}, "description": {"type": "string", "description": "Description of the asset", "example": "28-inch Hardware-Monitor"}, "asset_type_id": {"minimum": 1, "type": "integer", "description": "Id of the asset type.", "format": "int64", "example": 14000284324}, "impact": {"type": "string", "description": "Impact of the asset (accepted values \'high\' \'medium\' \'low\')", "example": "low", "enum": ["low", "medium", "high"]}, "author_type": {"type": "string", "description": "Asset created by source", "readOnly": true, "example": "User"}, "usage_type": {"type": "string", "description": "Usage type of the asset (accepted values are \'permanent\' & \'loaner\')", "example": "loaner", "enum": ["permanent", "loaner"]}, "asset_tag": {"type": "string", "description": "Asset tag of the asset", "example": "wxyzabcdefghij"}, "user_id": {"minimum": 1, "type": "integer", "description": "Used by of the asset", "format": "int64", "example": 14000234324}, "department_id": {"minimum": 1, "type": "integer", "description": "Department of the asset", "format": "int64", "example": 14000232343}, "location_id": {"minimum": 1, "type": "integer", "description": "Location of the asset", "format": "int64", "example": 140006394857}, "agent_id": {"minimum": 1, "type": "integer", "description": "Managed by of the asset", "format": "int64", "example": 14000234324}, "group_id": {"minimum": 1, "type": "integer", "description": "Managed by group of the asset", "format": "int64", "example": 14000234939}, "assigned_on": {"type": "string", "description": "Date and time when the asset was assigned", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "created_at": {"type": "string", "description": "Timestamp at which the asset was created", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the asset was last modified", "format": "date-time", "readOnly": true, "example": "2021-11-24T11:30:00Z"}, "type_fields": {"type": "object", "additionalProperties": true, "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)", "example": {"field1": "Value 1", "field2": "Value 2"}}}}}, "associated_changes": {"type": "array", "description": "Unique IDs of the Changes associated with the Release", "readOnly": true, "example": [1001, 1002], "items": {"type": "integer", "format": "int64"}}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Some Value"}}, "planning_fields": {"type": "object", "properties": {"reason_for_change": {"type": "object", "properties": {"description": {"type": "string", "description": "Reason for change", "example": "

Reason for change

"}, "description_text": {"type": "string", "description": "Reason for change in plain text format", "readOnly": true, "example": "Reason for Change"}}, "example": {"description": "
Reason for change
", "description_text": "Reason for change"}}, "impact": {"type": "object", "properties": {"description": {"type": "string", "description": "Impact", "example": "

Impact

"}, "description_text": {"type": "string", "description": "Impact in plain text format", "readOnly": true, "example": "Impact"}}, "example": {"description": "
Impact
", "description_text": "Impact"}}, "rollout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Rollout Plan", "example": "
Rollout plan
"}, "description_text": {"type": "string", "description": "Rollout plan in plain text format", "readOnly": true, "example": "Rollout Plan"}}, "example": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}}, "backout_plan": {"type": "object", "properties": {"description": {"type": "string", "description": "Backout Plan", "example": "
Backout plan
"}, "description_text": {"type": "string", "description": "Backout plan in plain text format", "readOnly": true, "example": "Backout Plan"}}, "example": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}, "example": {"reason_for_change": {"description": "
Reason for change
", "description_text": "Reason for change"}, "impact": {"description": "
Impact
", "description_text": "Impact"}, "rollout_plan": {"description": "
Rollout plan
", "description_text": "Rollout Plan"}, "backout_plan": {"description": "
Backout plan
", "description_text": "Backout Plan"}}}}}', # noqa: E501 + "CREATERELEASETASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "UPDATERELEASETASK": '{"type": "object", "properties": {"created_by": {"type": "integer", "description": "Unique ID of the user who created the task", "format": "int64", "readOnly": true, "example": 14000048691}, "agent_id": {"type": "integer", "description": "Id of the agent to whom the task is assigned", "format": "int64", "readOnly": true, "example": 14000043616}, "id": {"type": "integer", "description": "Unique ID of the task", "format": "int64", "readOnly": true, "example": 48}, "status": {"type": "integer", "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed", "format": "int64", "readOnly": true, "example": 1, "enum": [1, 2, 3, 4]}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the task belongs", "format": "int64", "readOnly": true, "example": 589}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "due_date": {"type": "string", "description": "Due date of the task", "format": "date-time", "example": "2021-11-24T11:30:00Z"}, "notify_before": {"type": "integer", "description": "Time in seconds before which notification is sent prior to due date", "format": "int64", "example": 3600}, "title": {"type": "string", "description": "Title of the task", "example": "Renew license"}, "description": {"type": "string", "description": "Description of the task", "example": "Renew Software license"}, "created_at": {"type": "string", "description": "Timestamp at which the task was created", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "updated_at": {"type": "string", "description": "Timestamp at which the task was updated", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "closed_at": {"type": "string", "description": "Timestamp at which the task was closed", "format": "date-time", "readOnly": true, "example": "2021-11-22T16:58:45Z"}, "group_id": {"type": "integer", "description": "Unique ID of the group to which the task is assigned", "format": "int64", "readOnly": true, "example": 14000184589}, "start_date": {"type": "string", "description": "Timestamp at which the task is started", "format": "date-time", "example": "2021-11-22T16:58:45Z"}}}', # noqa: E501 + "ADDRELEASETIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "UPDATERELEASETIMEENTRY": '{"type": "object", "properties": {"id": {"type": "integer", "description": "Unique ID of the time entry", "format": "int64", "readOnly": true, "example": 14702899}, "task_id": {"type": "integer", "description": "Unique ID of the task associated with the time entry", "format": "int64", "example": 45}, "parent_id": {"type": "integer", "description": "Unique ID of the parent entity to which the time entry belongs", "format": "int64", "readOnly": true, "example": 500}, "parent_type": {"type": "string", "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]", "example": "Ticket"}, "start_time": {"type": "string", "description": "Time at which the timer started", "format": "date-time", "example": "2021-10-15T12:31:42Z"}, "time_spent": {"type": "string", "description": "Duration of time spent in seconds", "example": "10:15"}, "timer_running": {"type": "boolean", "description": "true if timer is running, false otherwise", "example": true}, "billable": {"type": "boolean", "description": "true if billable, false otherwise", "example": true}, "agent_id": {"type": "integer", "description": "Unique ID of the user who created the time entry", "format": "int64", "example": 14007423}, "note": {"type": "string", "description": "Description note of the time entry", "format": "text", "example": "Spent time on task"}, "created_at": {"type": "string", "description": "Timestamp at which the time entry is created", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "updated_at": {"type": "string", "description": "Time stamp at which the time entry is updated", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:42Z"}, "executed_at": {"type": "string", "description": "Date time at which the time entry is executed", "format": "date-time", "readOnly": true, "example": "2021-10-15T12:31:00Z"}, "custom_fields": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs containing the names and values of custom fields", "example": {"field1": "Value 1", "field2": "Value 2"}}}}', # noqa: E501 + "CREATEPURCHASEORDER": '{"allOf": [{"title": "PurchaseOrder", "type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "ID of the purchase order", "format": "int64", "readOnly": true, "example": 10}, "vendor_id": {"minimum": 1, "type": "integer", "description": "ID of the vendor with whom the order is placed", "format": "int64", "example": 100001633}, "name": {"type": "string", "description": "Title of the purchase order", "example": "Procure Adobe License"}, "po_number": {"type": "string", "description": "Purchase order number", "example": "PO-10"}, "vendor_details": {"type": "string", "description": "Details of the vendor with whom the order is placed", "example": "1 Infinite Loop Cupertino California United States 95014"}, "expected_delivery_date": {"type": "string", "description": "Expected delivery date of the purchase order", "format": "date-time", "example": "2020-01-01T05:00:01Z"}, "created_at": {"type": "string", "description": "Created date and time of the purchase order", "format": "date-time", "readOnly": true, "example": "2021-08-30T04:22:14Z"}, "updated_at": {"type": "string", "description": "Updated date and time of the purchase order", "format": "date-time", "readOnly": true, "example": "2021-08-30T04:22:14Z"}, "created_by": {"minimum": 1, "type": "integer", "description": "ID of the agent who created purchase order", "format": "int64", "readOnly": true, "example": 1001001256}, "status": {"type": "number", "description": "Status of the purchase order", "example": 20.0}, "shipping_address": {"type": "string", "description": "Address to which the order should be shipped", "example": "1 Infinite Loop Cupertino California"}, "billing_same_as_shipping": {"type": "boolean", "description": "True if Billing address is same as Shipping address", "example": true}, "billing_address": {"type": "string", "description": "Address to which the order should be billed", "example": "1 Infinite Loop Cupertino California"}, "currency_code": {"type": "string", "description": "Currency unit used in the transaction", "example": "USD", "enum": ["AUD", "THB", "CAD", "CNY", "DKK", "AED", "USD", "EGP", "EUR", "HUF", "CHF", "HKD", "IDR", "ILS", "CZK", "ISK", "TRL", "MYR", "MXN", "NOK", "OMR", "PHP", "PLN", "GBP", "BWP", "QAR", "ZAR", "BRL", "RUB", "INR", "SAR", "SGD", "SEK", "TWD", "VND", "KRW", "JPY", "NZD", "JOD"]}, "conversion_rate": {"type": "number", "description": "Conversion rate to convert selected currency unit to helpdesk currency", "format": "float", "example": 1.0}, "department_id": {"minimum": 1, "type": "integer", "description": "Unique ID of the department", "format": "int64", "example": 10123}, "discount_percentage": {"maximum": 100, "minimum": 0, "type": "number", "description": "Percentage of discount on the order", "format": "float", "example": 2.0}, "tax_percentage": {"minimum": 0, "type": "number", "description": "Percentage of tax on the order", "format": "float", "example": 5.0}, "shipping_cost": {"minimum": 0, "type": "number", "description": "Total cost of shipping the order", "format": "float", "example": 10.0}, "custom_fields": {"type": "object", "properties": {}, "example": {"manager": "andrea@freshservice.com", "department": "IT"}}}, "x-tags": ["Purchase Orders"]}, {"type": "object", "properties": {"purcahse_items": {"type": "array", "example": [{"item_type": 2, "item_name": "Macbook Air", "description": "Macbook Air", "cost": 2, "quantity": 1, "tax_percentage": 5}], "items": {"title": "PurchaseItem", "type": "object", "properties": {"item_type": {"type": "integer", "description": "Type of item to be ordered", "format": "int64", "example": 2, "enum": [1, 2, 3]}, "item_name": {"type": "string", "description": "Name of the items to be ordered", "example": "Macbook Air"}, "description": {"type": "string", "description": "Item description", "example": "Macbook Air"}, "cost": {"minimum": 0, "type": "number", "description": "Cost of the item", "example": 2.0}, "quantity": {"minimum": 1, "type": "integer", "description": "Quantity of item to be ordered", "example": 1}, "tax_percentage": {"minimum": 0, "type": "number", "description": "Percentage of tax on item cost", "example": 5.0}}, "x-tags": ["Purchase Orders"]}}}}]}', # noqa: E501 + "UPDATEPURCHASEORDER": '{"allOf": [{"title": "PurchaseOrder", "type": "object", "properties": {"id": {"minimum": 1, "type": "integer", "description": "ID of the purchase order", "format": "int64", "readOnly": true, "example": 10}, "vendor_id": {"minimum": 1, "type": "integer", "description": "ID of the vendor with whom the order is placed", "format": "int64", "example": 100001633}, "name": {"type": "string", "description": "Title of the purchase order", "example": "Procure Adobe License"}, "po_number": {"type": "string", "description": "Purchase order number", "example": "PO-10"}, "vendor_details": {"type": "string", "description": "Details of the vendor with whom the order is placed", "example": "1 Infinite Loop Cupertino California United States 95014"}, "expected_delivery_date": {"type": "string", "description": "Expected delivery date of the purchase order", "format": "date-time", "example": "2020-01-01T05:00:01Z"}, "created_at": {"type": "string", "description": "Created date and time of the purchase order", "format": "date-time", "readOnly": true, "example": "2021-08-30T04:22:14Z"}, "updated_at": {"type": "string", "description": "Updated date and time of the purchase order", "format": "date-time", "readOnly": true, "example": "2021-08-30T04:22:14Z"}, "created_by": {"minimum": 1, "type": "integer", "description": "ID of the agent who created purchase order", "format": "int64", "readOnly": true, "example": 1001001256}, "status": {"type": "number", "description": "Status of the purchase order", "example": 20.0}, "shipping_address": {"type": "string", "description": "Address to which the order should be shipped", "example": "1 Infinite Loop Cupertino California"}, "billing_same_as_shipping": {"type": "boolean", "description": "True if Billing address is same as Shipping address", "example": true}, "billing_address": {"type": "string", "description": "Address to which the order should be billed", "example": "1 Infinite Loop Cupertino California"}, "currency_code": {"type": "string", "description": "Currency unit used in the transaction", "example": "USD", "enum": ["AUD", "THB", "CAD", "CNY", "DKK", "AED", "USD", "EGP", "EUR", "HUF", "CHF", "HKD", "IDR", "ILS", "CZK", "ISK", "TRL", "MYR", "MXN", "NOK", "OMR", "PHP", "PLN", "GBP", "BWP", "QAR", "ZAR", "BRL", "RUB", "INR", "SAR", "SGD", "SEK", "TWD", "VND", "KRW", "JPY", "NZD", "JOD"]}, "conversion_rate": {"type": "number", "description": "Conversion rate to convert selected currency unit to helpdesk currency", "format": "float", "example": 1.0}, "department_id": {"minimum": 1, "type": "integer", "description": "Unique ID of the department", "format": "int64", "example": 10123}, "discount_percentage": {"maximum": 100, "minimum": 0, "type": "number", "description": "Percentage of discount on the order", "format": "float", "example": 2.0}, "tax_percentage": {"minimum": 0, "type": "number", "description": "Percentage of tax on the order", "format": "float", "example": 5.0}, "shipping_cost": {"minimum": 0, "type": "number", "description": "Total cost of shipping the order", "format": "float", "example": 10.0}, "custom_fields": {"type": "object", "properties": {}, "example": {"manager": "andrea@freshservice.com", "department": "IT"}}}, "x-tags": ["Purchase Orders"]}, {"type": "object", "properties": {"purcahse_items": {"type": "array", "example": [{"item_type": 2, "item_name": "Macbook Air", "description": "Macbook Air", "cost": 2, "quantity": 1, "tax_percentage": 5}], "items": {"title": "PurchaseItem", "type": "object", "properties": {"item_type": {"type": "integer", "description": "Type of item to be ordered", "format": "int64", "example": 2, "enum": [1, 2, 3]}, "item_name": {"type": "string", "description": "Name of the items to be ordered", "example": "Macbook Air"}, "description": {"type": "string", "description": "Item description", "example": "Macbook Air"}, "cost": {"minimum": 0, "type": "number", "description": "Cost of the item", "example": 2.0}, "quantity": {"minimum": 1, "type": "integer", "description": "Quantity of item to be ordered", "example": 1}, "tax_percentage": {"minimum": 0, "type": "number", "description": "Percentage of tax on item cost", "example": 5.0}}, "x-tags": ["Purchase Orders"]}}}}]}', # noqa: E501 +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json index 4c7df144..95c807f9 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ActivateCsatSurvey@1.0.0", + "description": "Activates a CSAT Survey by its ID in Freshservice.\n\nUse this tool to activate a Customer Satisfaction (CSAT) Survey in Freshservice by providing the survey's ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "csat_survey_id", "required": true, - "description": "The ID of the CSAT survey to activate in Freshservice.", + "description": "The integer ID of the CSAT survey to activate in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/activate", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json index 4149384e..3dcbb3e5 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.AddAssetComponent@1.0.0", + "description": "Add a new component to an existing asset.\n\nUse this tool to add a new component for a specific asset in Freshservice. It should be called when you need to track additional components associated with an asset.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeNote.json new file mode 100644 index 00000000..ff422c14 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeNote.json @@ -0,0 +1,346 @@ +{ + "name": "AddChangeNote", + "fully_qualified_name": "FreshserviceApi.AddChangeNote@1.0.0", + "description": "Add a new note to a change request in Freshservice.\n\nUse this tool to add notes to an existing change request in Freshservice. Helpful for documenting updates or additional information related to the change request.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the change request to which the note will be added.", + "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": "note_unique_id", + "required": false, + "description": "Unique ID of the note to be created within the change request.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_id_of_note_creator", + "required": false, + "description": "Unique ID of the user who created the note.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "Email addresses to notify about the change note. This should be an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The content of the note in HTML format to be added to the change request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The content of the note in plain text format, used for documenting updates or additional information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "Date and time when the note was created, in a valid datetime string format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated, in the format YYYY-MM-DDTHH:MM:SSZ.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_id_of_note_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of change\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeRequestNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeRequestNote.json new file mode 100644 index 00000000..f48de3a7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddChangeRequestNote.json @@ -0,0 +1,322 @@ +{ + "name": "AddChangeRequestNote", + "fully_qualified_name": "FreshserviceApi.AddChangeRequestNote@1.0.0", + "description": "Add a note to a Freshservice change request.\n\nUse this tool to create and add a note to an existing change request in Freshservice. Suitable for documenting updates or additional information related to a change request.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the change request for which you want to add the note.", + "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": "note_unique_id", + "required": false, + "description": "Unique ID of the note to be created for the change request.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_id_for_note_creator", + "required": false, + "description": "Unique ID of the user who created the note on the change request.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "List of email addresses to notify about the note.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The body of the note in HTML format to be added to the change request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_content_plain_text", + "required": false, + "description": "The body of the note in plain text format for the Freshservice change request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The exact date and time when the note was created, in a string format (e.g., ISO 8601).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated. Format as a string, preferably in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/changes/{change_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_id_for_note_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_content_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Note content of change\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddFreshserviceTicketNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddFreshserviceTicketNote.json new file mode 100644 index 00000000..17cc6da0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddFreshserviceTicketNote.json @@ -0,0 +1,392 @@ +{ + "name": "AddFreshserviceTicketNote", + "fully_qualified_name": "FreshserviceApi.AddFreshserviceTicketNote@1.0.0", + "description": "Add a new note to a Freshservice ticket.\n\nUse this tool to post a new note on a specific Freshservice ticket by providing the ticket ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id_for_note", + "required": true, + "description": "Enter the ID of the Freshservice ticket where the note will 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 note has to be added" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "note_details", + "required": true, + "description": "JSON object containing details of the note, such as user ID, body, privacy setting, and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id_for_note", + "description": "ID of the ticket for which note 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 note has to be added" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "note_details", + "description": "details of the note to be posted", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the note to be posted\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000398432\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400034853\n },\n \"private\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note is private. The default value is true.\",\n \"example\": true\n },\n \"incoming\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note should appear as being created from the outside (i.e., not through the web portal)\",\n \"example\": true\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Developers debugging the isue

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Developers debugging the issue\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToProblem.json new file mode 100644 index 00000000..2b67b523 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToProblem.json @@ -0,0 +1,346 @@ +{ + "name": "AddNoteToProblem", + "fully_qualified_name": "FreshserviceApi.AddNoteToProblem@1.0.0", + "description": "Add a new note to a problem in Freshservice.\n\nUse this tool to create and add a new note to an existing problem in Freshservice, helping track updates or relevant information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The ID of the problem to which the note will be added.", + "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": "note_html_body", + "required": true, + "description": "The HTML formatted content of the note to be added to the problem.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_unique_id", + "required": false, + "description": "The unique ID to be assigned to the note, ensuring it is distinct within Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "note_creator_user_id", + "required": false, + "description": "The unique ID of the user creating the note. This identifies who is responsible for the note addition.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "A list of email addresses to notify about the note. Each address should be in string format.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_text", + "required": false, + "description": "The content of the note in plain text format to be added to the problem in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The date and time when the note was created, formatted as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated. Use the format 'YYYY-MM-DDTHH:MM:SSZ'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "note_creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_html_body", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToTicket.json new file mode 100644 index 00000000..35ee5f78 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddNoteToTicket.json @@ -0,0 +1,368 @@ +{ + "name": "AddNoteToTicket", + "fully_qualified_name": "FreshserviceApi.AddNoteToTicket@1.0.0", + "description": "Add a new note to a Freshservice ticket.\n\nUse this tool to post a new note on an existing ticket in Freshservice. It's ideal for adding additional information or updates to a ticket after its creation.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique integer ID of the ticket to which the note will 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 note has to be added" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "note_details", + "required": true, + "description": "JSON object containing the note's details such as user ID, content, privacy settings, and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/tickets/{ticket_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id", + "description": "ID of the ticket for which note 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 note has to be added" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "note_details", + "description": "details of the note to be posted", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"details of the note to be posted\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000398432\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400034853\n },\n \"private\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note is private. The default value is true.\",\n \"example\": true\n },\n \"incoming\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note should appear as being created from the outside (i.e., not through the web portal)\",\n \"example\": true\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Developers debugging the isue

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Developers debugging the issue\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddProblemNote.json new file mode 100644 index 00000000..113bba82 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddProblemNote.json @@ -0,0 +1,322 @@ +{ + "name": "AddProblemNote", + "fully_qualified_name": "FreshserviceApi.AddProblemNote@1.0.0", + "description": "Create a new note on a problem in Freshservice.\n\nUse this tool to add a detailed note to an existing problem in Freshservice, providing additional context or updates.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The ID of the problem to which the note will be added. This identifies 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 for which notes are to be retrieved" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "note_unique_id", + "required": false, + "description": "Unique identifier for the note to be created or referenced.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "creator_user_id", + "required": false, + "description": "The unique ID of the user who created the note.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_emails", + "required": false, + "description": "List of email addresses to notify about the note creation. Each email should be a string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_html_body", + "required": false, + "description": "The content of the note formatted in HTML.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_text", + "required": false, + "description": "The body of the note in plain text format, providing details or updates about the problem.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The date and time when the note was initially created. Use the format 'YYYY-MM-DDTHH:MM:SSZ'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/problems/{problem_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_emails", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_html_body", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Note content of problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseNote.json new file mode 100644 index 00000000..8b4f8a7f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseNote.json @@ -0,0 +1,346 @@ +{ + "name": "AddReleaseNote", + "fully_qualified_name": "FreshserviceApi.AddReleaseNote@1.0.0", + "description": "Create a new note on a release in Freshservice.\n\nUse this tool to add a note to a specific release in Freshservice. It should be called when you need to document or update information about a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique ID of the release to which the note will be added.", + "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": "note_unique_id", + "required": false, + "description": "Integer representing the unique ID of the note to be created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "note_creator_user_id", + "required": false, + "description": "Unique ID of the user who created the note. This ID should correspond to the user in Freshservice responsible for the note's content.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "Array of email addresses to notify about the note.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "Provide the note content in HTML format for the release.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The body of the release note in plain text format. Use this for non-HTML content.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "Specify the date and time when the note was created. Format: YYYY-MM-DDTHH:MM:SSZ (ISO 8601 standard).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_at", + "required": false, + "description": "The date and time when the note was last updated, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "note_creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_at", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of release\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseTimeEntry.json new file mode 100644 index 00000000..6dbcdb6e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddReleaseTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "AddReleaseTimeEntry", + "fully_qualified_name": "FreshserviceApi.AddReleaseTimeEntry@1.0.0", + "description": "Log a new time entry for a specific release in Freshservice.\n\nThis tool is used to create a new time entry on a release within the Freshservice platform. It should be called when there's a need to record the time spent on a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The ID of the release for which a new time entry is to be created. This should be an integer value.", + "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": "time_entry_details", + "required": true, + "description": "JSON object containing details for the new time entry, such as time spent, start time, and associated task ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTicketNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTicketNote.json new file mode 100644 index 00000000..6bfc081d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTicketNote.json @@ -0,0 +1,392 @@ +{ + "name": "AddTicketNote", + "fully_qualified_name": "FreshserviceApi.AddTicketNote@1.0.0", + "description": "Add a new note to a Freshservice ticket.\n\nUse this tool to post a new note on a specific Freshservice ticket by providing the ticket ID. This is useful for updating ticket information, providing status updates, or adding additional details related to the ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id_to_add_note", + "required": true, + "description": "The ID of the Freshservice ticket to which the note will be added. This ID is required to specify the particular ticket to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the ticket for which note has to be added" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "note_details", + "required": true, + "description": "Details of the note to be posted, including user ID, privacy settings, body content, and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id_to_add_note", + "description": "ID of the ticket for which note 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 note has to be added" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "note_details", + "description": "details of the note to be posted", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "private": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note is private. The default value is true." + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the note should appear as being created from the outside (i.e., not through the web portal)" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "details of the note to be posted" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the note to be posted\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000398432\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400034853\n },\n \"private\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note is private. The default value is true.\",\n \"example\": true\n },\n \"incoming\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the note should appear as being created from the outside (i.e., not through the web portal)\",\n \"example\": true\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Developers debugging the isue

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Developers debugging the issue\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTimeEntryToTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTimeEntryToTicket.json new file mode 100644 index 00000000..a94370d4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddTimeEntryToTicket.json @@ -0,0 +1,374 @@ +{ + "name": "AddTimeEntryToTicket", + "fully_qualified_name": "FreshserviceApi.AddTimeEntryToTicket@1.0.0", + "description": "Log a new time entry for a ticket in Freshservice.\n\nUse this tool to create a new time entry on a specific ticket in Freshservice when you need to log work hours or activities performed on the ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "ID of the ticket request for which the time entry will be created. This is required to specify which ticket should have the new time entry.", + "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": "time_entry_details", + "required": true, + "description": "JSON object containing time entry details like ID, task ID, parent entity details, start time, duration, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveFreshserviceProject.json new file mode 100644 index 00000000..948d2755 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveFreshserviceProject.json @@ -0,0 +1,91 @@ +{ + "name": "ArchiveFreshserviceProject", + "fully_qualified_name": "FreshserviceApi.ArchiveFreshserviceProject@1.0.0", + "description": "Archive an existing project in Freshservice.\n\nThis tool archives an existing project in Freshservice when provided with the project ID. It should be used to manage project status and organization within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The unique identifier of the project to be archived in Freshservice. This should be an integer representing the project ID.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 19d50bbc..852acc96 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveProject.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveProject.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ArchiveProject@1.0.0", + "description": "Archive an existing project in Freshservice.\n\nUse this tool to archive a project within Freshservice. This is useful for organizing and managing completed or inactive projects.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "project_id", "required": true, - "description": "The unique ID of the project to be archived in Freshservice. Provide a valid integer.", + "description": "The unique integer ID of the project to archive in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/archive", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json index 37d405a3..38e049ce 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ConvertAgentToRequester@1.0.0", + "description": "Convert an agent to a requester in Freshservice.\n\nUse this tool to convert an agent, identified by their ID, into a requester in Freshservice. This action is typically used when an agent no longer needs agent-level access.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "agent_id_for_conversion", + "name": "agent_id_to_convert", "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.", + "description": "The unique ID of the agent to convert to a requester.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "agent_id", - "tool_parameter_name": "agent_id_for_conversion", + "tool_parameter_name": "agent_id_to_convert", "description": "ID of agent to delete", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json index a1bc64ed..1d64025d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ConvertRequesterToAgent@1.0.0", + "description": "Convert a requester to an agent in Freshservice.\n\nUse this tool to convert a Freshservice requester into an occasional agent with the SD Agent role. This action removes any existing group memberships from the requester.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "requester_identifier", + "name": "requester_id_to_convert", "required": true, - "description": "The integer ID of the requester to convert into an occasional agent.", + "description": "The numeric ID of the requester to be converted into an agent.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/convert_to_agent", @@ -72,7 +72,7 @@ "parameters": [ { "name": "requester_id", - "tool_parameter_name": "requester_identifier", + "tool_parameter_name": "requester_id_to_convert", "description": "ID of requester to update", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroup.json new file mode 100644 index 00000000..9e96101f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroup.json @@ -0,0 +1,341 @@ +{ + "name": "CreateAgentGroup", + "fully_qualified_name": "FreshserviceApi.CreateAgentGroup@1.0.0", + "description": "Create a new agent group in Freshservice.\n\nUse this tool to create a new agent group within Freshservice, facilitating team organization and management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_details", + "required": true, + "description": "JSON object containing details for the agent group creation, such as name, description, business_hours_id, members, observers, group_leaders, auto_ticket_assign, and other configurations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent Group that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "agent_group_details", + "description": "Agent Group that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent Group that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent Group that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 12345\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the agent group\",\n \"example\": \"Analysts\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the agent group\",\n \"example\": \"IT Analysts Agent group\"\n },\n \"business_hours_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the business hours configuration associated with the group\",\n \"format\": \"int64\",\n \"example\": 3458\n },\n \"escalate_to\": {\n \"type\": \"integer\",\n \"description\": \"The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \\u2018none\\u2019, please set the value of this parameter to \\u2018null\\u2019.\",\n \"format\": \"int64\",\n \"example\": 234123423\n },\n \"agent_ids\": {\n \"type\": \"array\",\n \"description\": \" Array of user IDs of agents who belong to the group.\",\n \"example\": [\n \"2342342\",\n \"9943044\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"members\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are members of the group.\",\n \"example\": [\n \"9284729\",\n \"9349857\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"observers\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are observers of the group.\",\n \"example\": [\n \"3457384\",\n \"9827342\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"group_leaders\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are leaders of the group.\",\n \"example\": [\n \"4785820\",\n \"5672910\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"auto_ticket_assign\": {\n \"type\": \"boolean\",\n \"description\": \"Describes the automatic ticket assignment type. Will not be supported if the \\\"Round Robin\\\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise.\",\n \"example\": true\n },\n \"restricted\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether the group is a resricted group\",\n \"example\": true\n },\n \"approval_required\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroupFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroupFreshservice.json new file mode 100644 index 00000000..633df804 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAgentGroupFreshservice.json @@ -0,0 +1,341 @@ +{ + "name": "CreateAgentGroupFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateAgentGroupFreshservice@1.0.0", + "description": "Create a new Agent Group in Freshservice.\n\nThis tool allows you to create a new Agent Group in Freshservice. Use it to organize and manage agents within your Freshservice account.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_data", + "required": true, + "description": "JSON object containing details of the agent group, including id, name, description, business_hours_id, escalate_to, members, observers, group_leaders, auto_ticket_assign, restricted, approval_required, created_at, and updated_at.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent Group that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "agent_group_data", + "description": "Agent Group that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent Group that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent Group that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 12345\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the agent group\",\n \"example\": \"Analysts\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the agent group\",\n \"example\": \"IT Analysts Agent group\"\n },\n \"business_hours_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the business hours configuration associated with the group\",\n \"format\": \"int64\",\n \"example\": 3458\n },\n \"escalate_to\": {\n \"type\": \"integer\",\n \"description\": \"The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \\u2018none\\u2019, please set the value of this parameter to \\u2018null\\u2019.\",\n \"format\": \"int64\",\n \"example\": 234123423\n },\n \"agent_ids\": {\n \"type\": \"array\",\n \"description\": \" Array of user IDs of agents who belong to the group.\",\n \"example\": [\n \"2342342\",\n \"9943044\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"members\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are members of the group.\",\n \"example\": [\n \"9284729\",\n \"9349857\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"observers\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are observers of the group.\",\n \"example\": [\n \"3457384\",\n \"9827342\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"group_leaders\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are leaders of the group.\",\n \"example\": [\n \"4785820\",\n \"5672910\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"auto_ticket_assign\": {\n \"type\": \"boolean\",\n \"description\": \"Describes the automatic ticket assignment type. Will not be supported if the \\\"Round Robin\\\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise.\",\n \"example\": true\n },\n \"restricted\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether the group is a resricted group\",\n \"example\": true\n },\n \"approval_required\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncement.json new file mode 100644 index 00000000..39258861 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncement.json @@ -0,0 +1,373 @@ +{ + "name": "CreateAnnouncement", + "fully_qualified_name": "FreshserviceApi.CreateAnnouncement@1.0.0", + "description": "Create a new announcement in Freshservice.\n\nUse this tool to create a new announcement in Freshservice, ideal for disseminating information or updates within your service platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_details", + "required": true, + "description": "A JSON containing details such as title, body, state, visibility, and any other relevant fields for the announcement creation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "announcement_details", + "description": "Details of the Announcement", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Announcement\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Announcement\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400623\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to created this Announcement\",\n \"format\": \"int64\",\n \"example\": 1407423\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"State of the Announcement active, archived, scheduled\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": \"active\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the Announcement\",\n \"example\": \"Welcome to Freshservice\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in plain text\",\n \"readOnly\": true,\n \"example\": \"Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want.\"\n },\n \"body_html\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in HTML format\",\n \"example\": \"
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
\"\n },\n \"visible_from\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement becomes active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-11T07:16:43Z\"\n },\n \"visible_till\": {\n \"type\": \"string\",\n \"description\": \"Timestamp until which Announcement is active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-18T07:16:43Z\"\n },\n \"visibility\": {\n \"type\": \"string\",\n \"description\": \"Who can see the announcement. Values - everyone, agents_only, agents_and_groups\",\n \"example\": \"everyone\"\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"Array of Department IDs that can view this Announcement\",\n \"example\": [\n 1001,\n 1003\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Array of Group IDs that can view this Announcement\",\n \"example\": [\n 2002,\n 2004\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"is_read\": {\n \"type\": \"boolean\",\n \"description\": \"True if the logged-in-user has read the announcement. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"send_email\": {\n \"type\": \"boolean\",\n \"description\": \"True if the announcement needs to be sent via email as well. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"additional_emails\": {\n \"type\": \"array\",\n \"description\": \"Additional email addresses to which the announcement needs to be sent\",\n \"example\": [\n \"john.doe@acmecorp.com\",\n \"alice@acmecorp.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncementRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncementRequest.json new file mode 100644 index 00000000..80d19374 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAnnouncementRequest.json @@ -0,0 +1,349 @@ +{ + "name": "CreateAnnouncementRequest", + "fully_qualified_name": "FreshserviceApi.CreateAnnouncementRequest@1.0.0", + "description": "Create a new announcement in Freshservice.\n\nUse this tool to create a new announcement request in Freshservice. Call this when you need to inform users or staff about important updates or information within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_details", + "required": true, + "description": "Details required to create an announcement, including ID, creator, state, title, text, visibility timestamps, and related settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/announcements", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "announcement_details", + "description": "Details of the Announcement", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Details of the Announcement\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Announcement\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400623\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to created this Announcement\",\n \"format\": \"int64\",\n \"example\": 1407423\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"State of the Announcement active, archived, scheduled\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": \"active\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the Announcement\",\n \"example\": \"Welcome to Freshservice\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in plain text\",\n \"readOnly\": true,\n \"example\": \"Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want.\"\n },\n \"body_html\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in HTML format\",\n \"example\": \"
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
\"\n },\n \"visible_from\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement becomes active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-11T07:16:43Z\"\n },\n \"visible_till\": {\n \"type\": \"string\",\n \"description\": \"Timestamp until which Announcement is active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-18T07:16:43Z\"\n },\n \"visibility\": {\n \"type\": \"string\",\n \"description\": \"Who can see the announcement. Values - everyone, agents_only, agents_and_groups\",\n \"example\": \"everyone\"\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"Array of Department IDs that can view this Announcement\",\n \"example\": [\n 1001,\n 1003\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Array of Group IDs that can view this Announcement\",\n \"example\": [\n 2002,\n 2004\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"is_read\": {\n \"type\": \"boolean\",\n \"description\": \"True if the logged-in-user has read the announcement. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"send_email\": {\n \"type\": \"boolean\",\n \"description\": \"True if the announcement needs to be sent via email as well. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"additional_emails\": {\n \"type\": \"array\",\n \"description\": \"Additional email addresses to which the announcement needs to be sent\",\n \"example\": [\n \"john.doe@acmecorp.com\",\n \"alice@acmecorp.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAssetType.json new file mode 100644 index 00000000..99a8a2d0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateAssetType.json @@ -0,0 +1,247 @@ +{ + "name": "CreateAssetType", + "fully_qualified_name": "FreshserviceApi.CreateAssetType@1.0.0", + "description": "Create a new asset type in Freshservice.\n\nUse this tool to create a new asset type in Freshservice when setting up or managing assets. It automates the process of defining asset categories in the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_type_name", + "required": true, + "description": "The name of the asset type to be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "asset_type_id", + "required": false, + "description": "Unique identifier for the asset type to be created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "asset_description_html", + "required": false, + "description": "Provide a short description of the asset type in HTML format for styling.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "asset_type_plain_text_description", + "required": false, + "description": "Short description of the asset type in plain text format without HTML tags.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description_text" + }, + { + "name": "parent_asset_type_identifier", + "required": false, + "description": "Unique identifier of the parent asset type. Use this to specify a hierarchy when creating a new asset type.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the parent asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "parent_asset_type_id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "asset_type_id", + "description": "Unique identifier of the asset type", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the asset type" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "asset_type_name", + "description": "Name of the asset type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the asset type" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "asset_description_html", + "description": "Short description of the asset type in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description_text", + "tool_parameter_name": "asset_type_plain_text_description", + "description": "Short description of the asset type in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "parent_asset_type_id", + "tool_parameter_name": "parent_asset_type_identifier", + "description": "Unique identifier of the parent asset type", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the parent asset type" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the asset type\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the asset type\",\n \"example\": \"Hardware\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Short description of the asset type in HTML format\",\n \"example\": \"Computer or Laptop Hardware\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Short description of the asset type in plain text format\",\n \"readOnly\": true,\n \"example\": \"Computer or Laptop Hardware\"\n },\n \"parent_asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the parent asset type\",\n \"format\": \"int64\",\n \"example\": 14000234324\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponse.json new file mode 100644 index 00000000..113d949d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponse.json @@ -0,0 +1,327 @@ +{ + "name": "CreateCannedResponse", + "fully_qualified_name": "FreshserviceApi.CreateCannedResponse@1.0.0", + "description": "Create a new canned response in Freshservice.\n\nUse this tool to create a new canned response in Freshservice, streamlining customer support interactions by saving pre-drafted responses.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_details", + "required": true, + "description": "A JSON object with details for the canned response, including title, content, folder_id, and any attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Canned Response" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "canned_response_details", + "description": "Details of the Canned Response", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Canned Response" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Canned Response\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14006643\n },\n \"title\": {\n \"type\": \"string\",\n \"example\": \"Common L2 response\"\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"example\": 14022945\n },\n \"content\": {\n \"type\": \"string\",\n \"readOnly\": true,\n \"example\": \"Raise a support ticket\"\n },\n \"content_html\": {\n \"type\": \"string\",\n \"example\": \"
Raise a support ticket
\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponseFolder.json new file mode 100644 index 00000000..bbd3d7fd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCannedResponseFolder.json @@ -0,0 +1,280 @@ +{ + "name": "CreateCannedResponseFolder", + "fully_qualified_name": "FreshserviceApi.CreateCannedResponseFolder@1.0.0", + "description": "Create a new canned response folder in Freshservice.\n\nThis tool creates a new canned response folder in Freshservice. Use it when you need to organize canned responses into a new folder within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "folder_name", + "required": true, + "description": "The name of the new canned response folder to be created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "canned_response_folder_id", + "required": false, + "description": "Unique identifier for the canned response folder. It must 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" + }, + { + "name": "folder_type", + "required": false, + "description": "Specifies the type of the canned response folder, indicating its purpose or categorization.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "type" + }, + { + "name": "initial_responses_count", + "required": false, + "description": "Specify the initial number of responses in the new canned response folder, typically starting at 0.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "responses_count" + }, + { + "name": "folder_created_at", + "required": false, + "description": "The timestamp indicating when the folder was created, formatted as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "updated_at_timestamp", + "required": false, + "description": "The timestamp of the last update to the folder in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "canned_response_folder_id", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "folder_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "type", + "tool_parameter_name": "folder_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "responses_count", + "tool_parameter_name": "initial_responses_count", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "folder_created_at", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "updated_at_timestamp", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Canned Response Folder\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"name\": {\n \"type\": \"string\",\n \"example\": \"Auto Response\"\n },\n \"type\": {\n \"type\": \"string\",\n \"readOnly\": true,\n \"example\": \"General\"\n },\n \"responses_count\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"created_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeNote.json new file mode 100644 index 00000000..6afd5c06 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeNote.json @@ -0,0 +1,346 @@ +{ + "name": "CreateChangeNote", + "fully_qualified_name": "FreshserviceApi.CreateChangeNote@1.0.0", + "description": "Create a new note on a change request in Freshservice.\n\nThis tool creates a new note attached to a specific change request in Freshservice. It should be called when there's a need to append additional information or updates related to an ongoing change request.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to which the new note will be added.", + "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": "note_body_html", + "required": true, + "description": "The body of the note in HTML format. Use this to format the note with HTML tags for styling.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_unique_id", + "required": false, + "description": "Unique identifier for the note being created. Must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_identifier_for_note_creator", + "required": false, + "description": "Unique ID of the user who created the note in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "List of email addresses to notify about the change note.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The content of the change note in plain text format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The date and time when the note was created, in ISO 8601 format (e.g., '2023-01-01T12:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_last_updated", + "required": false, + "description": "Date and time when the note was last updated, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_identifier_for_note_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_last_updated", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of change\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeRequest.json new file mode 100644 index 00000000..95f2d80d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeRequest.json @@ -0,0 +1,1299 @@ +{ + "name": "CreateChangeRequest", + "fully_qualified_name": "FreshserviceApi.CreateChangeRequest@1.0.0", + "description": "Create a new Change request in Freshservice.\n\nThis tool is used to create a new Change request in Freshservice, useful for initiating and tracking changes within your organization.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_details", + "required": true, + "description": "Details for the Change request, including subject, priority, status, and more as a JSON object.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Subject of the change request" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "change_request_details", + "description": "Subject of the change request", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Subject of the change request" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Subject of the change request\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the change\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002342342\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the initiator of the change\",\n \"format\": \"int64\",\n \"example\": 14000234234\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400023498\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400097572\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 2\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the change 1-Low, 2-Medium, 3-High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"risk\": {\n \"type\": \"integer\",\n \"description\": \"Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"change_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the change 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"approval_status\": {\n \"type\": \"integer\",\n \"description\": \"Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the change\",\n \"example\": \"Replace Macbook\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in HTML format\",\n \"example\": \"

Replace damaged Macbook

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Replace damaged Macbook\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"project_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated project\",\n \"format\": \"int64\",\n \"example\": 1400023894\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the change\",\n \"format\": \"int64\",\n \"example\": 14000495482\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the change\",\n \"example\": \"Hardware\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the change\",\n \"example\": \"Computer\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the change\",\n \"example\": \"Mac\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"associated_release\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [\n {\n \"id\": 14000234324,\n \"display_id\": 1453,\n \"name\": \"Hardware-Monitor\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_problems\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the problems associated with the change request\",\n \"readOnly\": true,\n \"example\": [\n 140002394874,\n 140003948543\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"incidents_caused_by_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the incidents caused by this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400034598,\n 1400039485\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"tickets_initiating_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the tickets initiating this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400023984,\n 1400034984\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"associated_project\": {\n \"type\": \"integer\",\n \"description\": \"Id of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002394874\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"change_choices\": \"First Choice\",\n \"state\": \"TX\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"maintenance_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"black_out_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTask.json new file mode 100644 index 00000000..f1b4d5f6 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateChangeTask", + "fully_qualified_name": "FreshserviceApi.CreateChangeTask@1.0.0", + "description": "Create a task on a change request in Freshservice.\n\nThis tool creates a new task on a specified change request within Freshservice. It should be called when you need to add tasks to an ongoing change request to track specific actions or activities.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to add a task to. It should be an integer.", + "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": "task_details", + "required": true, + "description": "A JSON object containing details of the task to be created, including the creator's ID, assignee's ID, task status, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "detailss of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"detailss of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTimeEntry.json new file mode 100644 index 00000000..c5057ae2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChangeTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "CreateChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.CreateChangeTimeEntry@1.0.0", + "description": "Create a new time entry for a change request.\n\nUse this tool to log time against a change request in Freshservice by creating a new time entry.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the change request to log a time entry against.", + "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_entry_details", + "required": true, + "description": "A JSON object containing details for the new time entry, including IDs, start time, duration, and any notes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChildTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChildTicket.json new file mode 100644 index 00000000..e5d2ddca --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateChildTicket.json @@ -0,0 +1,584 @@ +{ + "name": "CreateChildTicket", + "fully_qualified_name": "FreshserviceApi.CreateChildTicket@1.0.0", + "description": "Create a new child ticket on a Freshservice ticket.\n\nUse this tool to add a child ticket to an existing ticket in Freshservice. It is useful for managing ticket hierarchies and organizing support tasks.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "parent_ticket_id", + "required": true, + "description": "ID of the main ticket for which a child ticket will be created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket request for which child ticket needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "child_ticket_details", + "required": true, + "description": "Details of the child ticket to be created, including email addresses, priority, status, subject, and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of child ticket to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-child-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/create_child_ticket", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "parent_ticket_id", + "description": "ID of ticket request for which child ticket needs to be created", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket request for which child ticket needs to be created" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "child_ticket_details", + "description": "details of child ticket to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of child ticket to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of child ticket to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added in the 'cc' field of the incoming ticket email\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fwd_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while forwarding a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"reply_cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while replying to a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fr_escalated\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been escalated as a result of the first response time being breached\",\n \"readOnly\": true,\n \"example\": true\n },\n \"spam\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been marked as spam\",\n \"readOnly\": true,\n \"example\": true\n },\n \"priority\": {\n \"type\": \"number\",\n \"description\": \"Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.\",\n \"example\": 2.0\n },\n \"requester_id\": {\n \"type\": \"number\",\n \"description\": \"User ID of the requester.\",\n \"example\": 1400023894234\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10\",\n \"example\": 1.0\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5\",\n \"example\": 2.0\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Ticket\",\n \"example\": \"Printer not connected\\\"\"\n },\n \"id\": {\n \"type\": \"number\",\n \"description\": \"Unique ID of the ticket\",\n \"readOnly\": true,\n \"example\": 14000239432\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \\u2018incident\\u2019 as of now]\",\n \"example\": \"Incident\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"fr_due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the first response is due\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"is_escalated\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"description\": {\n \"type\": \"string\",\n \"example\": \"
How do I connect printer?
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the ticket in plain text\",\n \"example\": \"How do I connect printer?\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"choice\": \"First Choice\",\n \"employee_id\": \"E1234\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was last updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket\",\n \"example\": [\n \"Hardware\",\n \"Network\",\n \"VPN\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"Ticket attachments. The total size of these attachments cannot exceed 15MB\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCsatSurvey.json new file mode 100644 index 00000000..e1277a9c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCsatSurvey.json @@ -0,0 +1,561 @@ +{ + "name": "CreateCsatSurvey", + "fully_qualified_name": "FreshserviceApi.CreateCsatSurvey@1.0.0", + "description": "Create a new CSAT survey in Freshservice.\n\nThis tool is used to create a new Customer Satisfaction (CSAT) survey in Freshservice. Call this tool when you need to set up a survey to gather customer feedback.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "csat_survey_data", + "required": true, + "description": "JSON object containing details of the CSAT Survey to be created. Includes ID, name, activation state, trigger event, survey question, option ordering, response options, and timestamps.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Customer Satisfaction Survey" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Survey" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false." + }, + "survey_trigger_event": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Ticket Closure", + "Ticket Resolution", + "All Replies", + "Agent Specified Emails" + ], + "properties": null, + "inner_properties": null, + "description": "Field to capture when the survey should be sent." + }, + "question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Question that will be asked to the requester to capture the service experience" + }, + "order_of_options": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Good to Bad", + "Bad to Good" + ], + "properties": null, + "inner_properties": null, + "description": "Gradient order of the options displayed" + }, + "options": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "option_1": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_2": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_3": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_4": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_5": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + } + }, + "inner_properties": null, + "description": null + }, + "thank_you_message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The final \\\"Thank you\\\" message that gets displayed to the requester upon completion of the survey" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent who last modified this survey" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was last modified" + } + }, + "inner_properties": null, + "description": "CSAT Survey that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "csat_survey_data", + "description": "CSAT Survey that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Customer Satisfaction Survey" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Survey" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false." + }, + "survey_trigger_event": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Ticket Closure", + "Ticket Resolution", + "All Replies", + "Agent Specified Emails" + ], + "properties": null, + "inner_properties": null, + "description": "Field to capture when the survey should be sent." + }, + "question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Question that will be asked to the requester to capture the service experience" + }, + "order_of_options": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Good to Bad", + "Bad to Good" + ], + "properties": null, + "inner_properties": null, + "description": "Gradient order of the options displayed" + }, + "options": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "option_1": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_2": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_3": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_4": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_5": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + } + }, + "inner_properties": null, + "description": null + }, + "thank_you_message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The final \\\"Thank you\\\" message that gets displayed to the requester upon completion of the survey" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent who last modified this survey" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was last modified" + } + }, + "inner_properties": null, + "description": "CSAT Survey that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"CSAT Survey that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Customer Satisfaction Survey\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Survey\",\n \"example\": \"Buyer satisfaction\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"State of the survey. For an activated survey, active = true. For a deactivated survey, active = false.\",\n \"example\": true\n },\n \"survey_trigger_event\": {\n \"type\": \"string\",\n \"description\": \"Field to capture when the survey should be sent.\",\n \"example\": \"Ticket Closure\",\n \"enum\": [\n \"Ticket Closure\",\n \"Ticket Resolution\",\n \"All Replies\",\n \"Agent Specified Emails\"\n ]\n },\n \"question\": {\n \"type\": \"string\",\n \"description\": \"Question that will be asked to the requester to capture the service experience\",\n \"example\": \"How do you rate the buying experience?\"\n },\n \"order_of_options\": {\n \"type\": \"string\",\n \"description\": \"Gradient order of the options displayed\",\n \"example\": \"Good to Bad\",\n \"enum\": [\n \"Good to Bad\",\n \"Bad to Good\"\n ]\n },\n \"options\": {\n \"type\": \"object\",\n \"properties\": {\n \"option_1\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_2\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_3\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_4\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_5\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n }\n },\n \"example\": {\n \"option_1\": {\n \"text\": \"Fantastic\"\n },\n \"option_2\": {\n \"text\": \"Fantastic\"\n }\n }\n },\n \"thank_you_message\": {\n \"type\": \"string\",\n \"description\": \"The final \\\\\\\"Thank you\\\\\\\" message that gets displayed to the requester upon completion of the survey\",\n \"example\": \"Thanks for taking the survey\"\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent who last modified this survey\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the survey was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the survey was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCustomTicketSource.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCustomTicketSource.json new file mode 100644 index 00000000..fce1fb52 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateCustomTicketSource.json @@ -0,0 +1,313 @@ +{ + "name": "CreateCustomTicketSource", + "fully_qualified_name": "FreshserviceApi.CreateCustomTicketSource@1.0.0", + "description": "Create a custom ticket source in Freshservice.\n\nUse this tool to create a custom ticket source within the Freshservice platform. Ideal for when you need to define new ticket origin types beyond the defaults provided.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "source_name", + "required": true, + "description": "Specify the name for the custom ticket source in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the source" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "source_id", + "required": false, + "description": "Unique identifier for the custom ticket source.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the source" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "source_position_in_list", + "required": false, + "description": "The position of the custom ticket source in the source list. It determines where this source appears in the list of sources.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Position of the source value in the source list" + }, + "inferrable": true, + "http_endpoint_parameter_name": "position" + }, + { + "name": "created_timestamp", + "required": false, + "description": "The timestamp when the source was created in Freshservice. Format: YYYY-MM-DDTHH:MM:SSZ.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the source was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "last_modified_timestamp", + "required": false, + "description": "The timestamp indicating when the custom ticket source was last modified. Expected in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the source was last modified" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + }, + { + "name": "source_present_by_default", + "required": false, + "description": "Set to true if the source value is present by default in Freshservice.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the source value is present by default in Freshservice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "default" + }, + { + "name": "is_visible_for_selection", + "required": false, + "description": "True if the source value is visible for selection in Freshservice.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the source value is visible for selection in Freshservice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "visible" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-field-source'.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/ticket_fields/sources", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "source_id", + "description": "Unique identifier of the source", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the source" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "source_name", + "description": "Name of the source", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the source" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "position", + "tool_parameter_name": "source_position_in_list", + "description": "Position of the source value in the source list", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Position of the source value in the source list" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "default", + "tool_parameter_name": "source_present_by_default", + "description": "True if the source value is present by default in Freshservice", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the source value is present by default in Freshservice" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "visible", + "tool_parameter_name": "is_visible_for_selection", + "description": "True if the source value is visible for selection in Freshservice", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the source value is visible for selection in Freshservice" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "created_timestamp", + "description": "Timestamp at which the source was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the source was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "last_modified_timestamp", + "description": "Timestamp at which the source was last modified", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the source was last modified" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Custom ticket source that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the source\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 124324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the source\",\n \"example\": \"Email\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"Position of the source value in the source list\",\n \"format\": \"int64\",\n \"example\": 1\n },\n \"default\": {\n \"type\": \"boolean\",\n \"description\": \"True if the source value is present by default in Freshservice\",\n \"readOnly\": true,\n \"example\": true\n },\n \"visible\": {\n \"type\": \"boolean\",\n \"description\": \"True if the source value is visible for selection in Freshservice\",\n \"readOnly\": true,\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the source was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-11T07:16:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the source was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-11T07:16:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateDepartment.json new file mode 100644 index 00000000..2b97e38e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateDepartment.json @@ -0,0 +1,379 @@ +{ + "name": "CreateDepartment", + "fully_qualified_name": "FreshserviceApi.CreateDepartment@1.0.0", + "description": "Create a new department in Freshservice.\n\nThis tool is used to create a new department in Freshservice. It should be called when there is a need to organize teams or functions into new departments within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_name", + "required": true, + "description": "The name of the department to be created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "department_id", + "required": false, + "description": "Unique identifier for the department. This integer is used to specify the unique ID of the department to be created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "department_description", + "required": false, + "description": "Provide a description about the department to be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "head_user_identifier", + "required": false, + "description": "ID of the agent or requester who is the head of the department.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "head_user_id" + }, + { + "name": "prime_user_id", + "required": false, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department. Provide an integer value corresponding to the user ID.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "prime_user_id" + }, + { + "name": "email_domains", + "required": false, + "description": "A list of email domains associated with the department. Each domain should be a valid string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "domains" + }, + { + "name": "custom_fields", + "required": false, + "description": "JSON object of custom fields related to a Freshservice entity for creating a department.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "inferrable": true, + "http_endpoint_parameter_name": "custom_fields" + }, + { + "name": "department_creation_timestamp", + "required": false, + "description": "Timestamp indicating when the department was created. This should be provided in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "last_modified_timestamp", + "required": false, + "description": "Timestamp indicating when the department was last modified. Format as a string (e.g., 'YYYY-MM-DDTHH:MM:SSZ').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "department_id", + "description": "Unique identifier of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "department_name", + "description": "Name of the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "department_description", + "description": "Description about the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "head_user_id", + "tool_parameter_name": "head_user_identifier", + "description": "Unique identifier of the agent or requester who serves as the head of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "prime_user_id", + "tool_parameter_name": "prime_user_id", + "description": "Unique identifier of the agent or requester who serves as the prime user of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "domains", + "tool_parameter_name": "email_domains", + "description": "Email domains associated with the department", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "custom_fields", + "tool_parameter_name": "custom_fields", + "description": "Custom fields that are associated with a Freshservice entity", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "department_creation_timestamp", + "description": "Timestamp at which the department was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "last_modified_timestamp", + "description": "Timestamp at which the department was last modified", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Department that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the department\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the department\",\n \"example\": \"IT Support\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the department\",\n \"example\": \"IT Support\"\n },\n \"head_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the head of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"prime_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the prime user of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"domains\": {\n \"type\": \"array\",\n \"description\": \"Email domains associated with the department\",\n \"example\": [\n \"support.freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshdeskTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshdeskTicket.json new file mode 100644 index 00000000..b1ccda25 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshdeskTicket.json @@ -0,0 +1,551 @@ +{ + "name": "CreateFreshdeskTicket", + "fully_qualified_name": "FreshserviceApi.CreateFreshdeskTicket@1.0.0", + "description": "Create a new ticket in Freshservice for support requests.\n\nUse this tool to open a support ticket in Freshservice when users need assistance with an issue or inquiry. It facilitates the initiation of new tickets to help track and resolve problems efficiently.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_details", + "required": true, + "description": "JSON object containing details for creating a Freshservice ticket, such as subject, priority, status, and other relevant fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_details", + "description": "details of the Freshservice Ticket to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the Freshservice Ticket to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added in the 'cc' field of the incoming ticket email\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fwd_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while forwarding a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"reply_cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while replying to a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fr_escalated\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been escalated as a result of the first response time being breached\",\n \"readOnly\": true,\n \"example\": true\n },\n \"spam\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been marked as spam\",\n \"readOnly\": true,\n \"example\": true\n },\n \"priority\": {\n \"type\": \"number\",\n \"description\": \"Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.\",\n \"example\": 2.0\n },\n \"requester_id\": {\n \"type\": \"number\",\n \"description\": \"User ID of the requester.\",\n \"example\": 1400023894234\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10\",\n \"example\": 1.0\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5\",\n \"example\": 2.0\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Ticket\",\n \"example\": \"Printer not connected\\\"\"\n },\n \"id\": {\n \"type\": \"number\",\n \"description\": \"Unique ID of the ticket\",\n \"readOnly\": true,\n \"example\": 14000239432\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \\u2018incident\\u2019 as of now]\",\n \"example\": \"Incident\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"fr_due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the first response is due\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"is_escalated\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"description\": {\n \"type\": \"string\",\n \"example\": \"
How do I connect printer?
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the ticket in plain text\",\n \"example\": \"How do I connect printer?\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"choice\": \"First Choice\",\n \"employee_id\": \"E1234\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was last updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket\",\n \"example\": [\n \"Hardware\",\n \"Network\",\n \"VPN\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"Ticket attachments. The total size of these attachments cannot exceed 15MB\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAgent.json new file mode 100644 index 00000000..1f1077eb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAgent.json @@ -0,0 +1,695 @@ +{ + "name": "CreateFreshserviceAgent", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceAgent@1.0.0", + "description": "Create a new agent in Freshservice.\n\nThis tool allows you to create a new agent in Freshservice. Use it when you need to add a team member to your Freshservice account.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_details", + "required": true, + "description": "JSON object containing all necessary details about the agent to be created, such as name, contact info, role, and access levels.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "agent_details", + "description": "Agent who needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent who needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"email\",\n \"first_name\",\n \"role_ids\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the agent\",\n \"example\": \"Andrea\"\n },\n \"occasional\": {\n \"type\": \"boolean\",\n \"description\": \"True if the agent is an occasional agent, and false if full-time agent.\",\n \"example\": true\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the agent\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the agent\",\n \"example\": \"Product Manager\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"Email address of the agent\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the agent\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the agent\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the agent\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"scoreboard_level_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\\n\",\n \"format\": \"int64\",\n \"example\": 2,\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticket\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"problem\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"change\": {\n \"type\": \"string\",\n \"example\": \"Restricted Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"release\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"asset\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\"\n ]\n }\n },\n \"description\": \"Access level of the agent in various modules\",\n \"readOnly\": true,\n \"example\": {\n \"ticket\": \"Global Access\",\n \"problem\": \"Global Access\",\n \"change\": \"Global Access\",\n \"release\": \"Global Access\",\n \"asset\": \"Global Access\"\n }\n },\n \"group_ids\": {\n \"type\": \"array\",\n \"description\": \" Unique IDs of the agent groups associated with the agent\",\n \"example\": [\n 1400023424,\n 1400023423\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"member_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is a member of\",\n \"example\": [\n 140002533,\n 140009834\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"observer_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is an observer of\",\n \"example\": [\n 1300045345,\n 1300049484\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"role_ids\": {\n \"type\": \"array\",\n \"description\": \"(DEPRECATED) Unique IDs of the agent roles associated with the agent\",\n \"example\": [\n 1300034059,\n 1300094583\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"roles\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"role_id\": 14000234324\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"role_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the role assigned\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"assignment_scope\": {\n \"type\": \"string\",\n \"description\": \"The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)\",\n \"example\": \"entire_helpdesk\",\n \"enum\": [\n \"entire_helpdesk\",\n \"member_groups\",\n \"specified_groups\",\n \"assigned_items\"\n ]\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise.\",\n \"example\": [\n 1400034334,\n 3523453453\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n }\n }\n }\n },\n \"last_login_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp of the agent's last successful login\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAnnouncement.json new file mode 100644 index 00000000..661c936a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceAnnouncement.json @@ -0,0 +1,373 @@ +{ + "name": "CreateFreshserviceAnnouncement", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceAnnouncement@0.2.0", + "description": "Create a new announcement in Freshservice.\n\nThis tool allows you to create a new announcement in Freshservice. It should be called when you need to post an announcement to update users or team members within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_details", + "required": true, + "description": "A JSON object with details for the Freshservice announcement, including fields such as 'title', 'body', 'state', and timestamps like 'visible_from'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "announcement_details", + "description": "Details of the Announcement", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Details of the Announcement" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceCannedResponse.json new file mode 100644 index 00000000..6eef5662 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceCannedResponse.json @@ -0,0 +1,327 @@ +{ + "name": "CreateFreshserviceCannedResponse", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceCannedResponse@1.0.0", + "description": "Create a new canned response in Freshservice.\n\nUse this tool to create a new canned response in a Freshservice account. It should be called when there is a need to automate the creation of standard replies to frequent inquiries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_details", + "required": true, + "description": "JSON containing details of the canned response, including title, folder, content, and optional attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Canned Response" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "canned_response_details", + "description": "Details of the Canned Response", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Canned Response" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Canned Response\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14006643\n },\n \"title\": {\n \"type\": \"string\",\n \"example\": \"Common L2 response\"\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"example\": 14022945\n },\n \"content\": {\n \"type\": \"string\",\n \"readOnly\": true,\n \"example\": \"Raise a support ticket\"\n },\n \"content_html\": {\n \"type\": \"string\",\n \"example\": \"
Raise a support ticket
\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeRequest.json new file mode 100644 index 00000000..a22e6558 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeRequest.json @@ -0,0 +1,1299 @@ +{ + "name": "CreateFreshserviceChangeRequest", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceChangeRequest@1.0.0", + "description": "Create a new Change request in Freshservice.\n\nUse this tool to initiate a new Change request within the Freshservice platform. This is typically called when a user wants to propose a change that needs to be tracked and managed through Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_details", + "required": true, + "description": "Details of the change request including subject, priority, impact, and other parameters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Subject of the change request" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "change_request_details", + "description": "Subject of the change request", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Subject of the change request" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Subject of the change request\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the change\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002342342\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the initiator of the change\",\n \"format\": \"int64\",\n \"example\": 14000234234\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400023498\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400097572\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 2\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the change 1-Low, 2-Medium, 3-High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"risk\": {\n \"type\": \"integer\",\n \"description\": \"Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"change_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the change 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"approval_status\": {\n \"type\": \"integer\",\n \"description\": \"Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the change\",\n \"example\": \"Replace Macbook\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in HTML format\",\n \"example\": \"

Replace damaged Macbook

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Replace damaged Macbook\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"project_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated project\",\n \"format\": \"int64\",\n \"example\": 1400023894\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the change\",\n \"format\": \"int64\",\n \"example\": 14000495482\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the change\",\n \"example\": \"Hardware\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the change\",\n \"example\": \"Computer\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the change\",\n \"example\": \"Mac\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"associated_release\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [\n {\n \"id\": 14000234324,\n \"display_id\": 1453,\n \"name\": \"Hardware-Monitor\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_problems\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the problems associated with the change request\",\n \"readOnly\": true,\n \"example\": [\n 140002394874,\n 140003948543\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"incidents_caused_by_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the incidents caused by this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400034598,\n 1400039485\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"tickets_initiating_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the tickets initiating this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400023984,\n 1400034984\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"associated_project\": {\n \"type\": \"integer\",\n \"description\": \"Id of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002394874\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"change_choices\": \"First Choice\",\n \"state\": \"TX\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"maintenance_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"black_out_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTask.json new file mode 100644 index 00000000..6176fcf8 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateFreshserviceChangeTask", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceChangeTask@0.2.0", + "description": "Create a new task on a change request in Freshservice.\n\nUse this tool to add a new task to an existing change request in Freshservice. Useful for managing tasks related to change requests.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request for which the task is to be created.", + "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": "task_details", + "required": true, + "description": "A JSON object detailing the task to be created, including fields like created_by, agent_id, id, status, parent_id, parent_type, due_date, notify_before, title, description, created_at, updated_at, closed_at, group_id, start_date. Each field must comply with its expected data type and description.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "detailss of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTimeEntry.json new file mode 100644 index 00000000..8ec39e71 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceChangeTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "CreateFreshserviceChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceChangeTimeEntry@1.0.0", + "description": "Create a time entry for a change request in Freshservice.\n\nUse this tool to log a new time entry associated with a specific change request in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique identifier of the change request for which you want to create a time entry.", + "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_entry_details", + "required": true, + "description": "JSON object containing details of the time entry to be created. This includes unique IDs, start time, duration, agent ID, notes, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceLocation.json new file mode 100644 index 00000000..74cd493f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceLocation.json @@ -0,0 +1,388 @@ +{ + "name": "CreateFreshserviceLocation", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceLocation@1.0.0", + "description": "Create a new location in Freshservice.\n\nThis tool is used to create a new location within the Freshservice platform. It should be called when there's a need to add a new location to the system, such as a new office or branch.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_unique_id", + "required": false, + "description": "Unique identifier for the new location. Must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "location_name", + "required": false, + "description": "The name of the location to be created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "parent_location_unique_id", + "required": false, + "description": "Unique ID of the parent location to create a hierarchical structure with a parent location in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "parent_location_id" + }, + { + "name": "primary_contact_unique_id", + "required": false, + "description": "Unique ID of the primary contact requester, referencing their name, email, and phone from requester details.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primary_contact_id" + }, + { + "name": "address_line_1", + "required": false, + "description": "The first line of the street address for the location.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line1" + }, + { + "name": "address_line_2", + "required": false, + "description": "The second line of the address, used for additional address details like suite or apartment number.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line2" + }, + { + "name": "location_city", + "required": false, + "description": "The city where the new location will be based.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_city" + }, + { + "name": "location_address_state", + "required": false, + "description": "The name of the state where the location is situated. It should be a string representing the state name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_state" + }, + { + "name": "country_name", + "required": false, + "description": "Country name where the location is situated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_country" + }, + { + "name": "location_zip_code", + "required": false, + "description": "The zip code of the new location in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_zipcode" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/locations", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "location_unique_id", + "description": "Unique ID of the location", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "location_name", + "description": "Name of the location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "parent_location_id", + "tool_parameter_name": "parent_location_unique_id", + "description": "Unique ID of the parent location", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primary_contact_id", + "tool_parameter_name": "primary_contact_unique_id", + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line1", + "tool_parameter_name": "address_line_1", + "description": "Address Line 1", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line2", + "tool_parameter_name": "address_line_2", + "description": "Address Line 2", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_city", + "tool_parameter_name": "location_city", + "description": "City", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_state", + "tool_parameter_name": "location_address_state", + "description": "State", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_country", + "tool_parameter_name": "country_name", + "description": "Country", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_zipcode", + "tool_parameter_name": "location_zip_code", + "description": "Zip Code of the Location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the location\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the location\",\n \"example\": \"Apple Campus\"\n },\n \"parent_location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent location\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the Location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblem.json new file mode 100644 index 00000000..0a9007cd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblem.json @@ -0,0 +1,911 @@ +{ + "name": "CreateFreshserviceProblem", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceProblem@1.0.0", + "description": "Create a new problem in Freshservice.\n\nUse this tool to create a new problem entry in Freshservice. It is called when there's a need to document and track a recurring issue or outage.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_details", + "required": true, + "description": "JSON object containing all necessary details for creating a Problem in Freshservice. This includes identifiers (e.g., id, agent_id), status, subject, priority, impact, timestamps, associated assets, attachments, custom fields, and analysis fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "problem_details", + "description": "Details of the Problem", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemNote.json new file mode 100644 index 00000000..0e3dabde --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemNote.json @@ -0,0 +1,346 @@ +{ + "name": "CreateFreshserviceProblemNote", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceProblemNote@1.0.0", + "description": "Create a new note on a Freshservice problem.\n\nUse this tool to add a note to a problem in Freshservice. It should be called when you need to log additional information or comments on a specific problem identified by its ID within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id_for_note_creation", + "required": true, + "description": "Unique identifier of the problem to add the note to in 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": "note_unique_id", + "required": false, + "description": "The unique identifier for the note to be created in Freshservice. It must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "creator_user_id", + "required": false, + "description": "Unique ID of the user creating the note.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "List of email addresses to notify about the note.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The content of the note in HTML format to be added to the problem.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_text", + "required": false, + "description": "The main content of the note in plain text format to be added to the Freshservice problem.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_created_datetime", + "required": false, + "description": "Date and time when the note was created, in ISO 8601 format (e.g., 2023-10-05T14:48:00Z).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "Date and time when the note was last updated. Format should be ISO 8601 (e.g., '2023-10-05T14:48:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "problem_id", + "tool_parameter_name": "problem_id_for_note_creation", + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_created_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemTask.json new file mode 100644 index 00000000..52fb6fbe --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProblemTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateFreshserviceProblemTask", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceProblemTask@1.0.0", + "description": "Create a new task on a problem in Freshservice.\n\nThis tool creates a new task associated with a specific problem in the Freshservice system. Use it when you need to assign tasks to a problem for better issue management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_identifier", + "required": true, + "description": "ID of the problem for which a new task will be created. It must be an integer representing 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 for which tasks are to be retrieved" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "task_details", + "required": true, + "description": "Details of the task to be created, including user ID, agent ID, status, due date, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "problem_id", + "tool_parameter_name": "problem_identifier", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "detailss of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"detailss of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProject.json new file mode 100644 index 00000000..62e632df --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceProject.json @@ -0,0 +1,309 @@ +{ + "name": "CreateFreshserviceProject", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceProject@1.0.0", + "description": "Create a new project in Freshservice.\n\nUse this tool to create a new project within the Freshservice platform. This is useful for managing tasks, timelines, and resources efficiently in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_details", + "required": true, + "description": "JSON object containing details of the project to be created, including fields like title, description, status, priority, and important dates.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "project_details", + "description": "project that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"project that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 13298\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the project\",\n \"example\": \"Solution Articles for Ticket\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in HTML format\",\n \"example\": \"
Publish solution articles for Ticket
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in text format\",\n \"readOnly\": true,\n \"example\": \"Publish solution articles for Ticket\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the project\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the project\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the project\",\n \"format\": \"int64\",\n \"example\": 43423\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"User who created the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 123123\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-04-01T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-30T07:16:45Z\"\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Project archived status\",\n \"readOnly\": true,\n \"example\": true\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the project\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-11T07:16:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceReleaseNote.json new file mode 100644 index 00000000..778e8e03 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceReleaseNote.json @@ -0,0 +1,346 @@ +{ + "name": "CreateFreshserviceReleaseNote", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceReleaseNote@1.0.0", + "description": "Create a new release note in Freshservice.\n\nUse this tool to add a new note to a specific release in Freshservice. It is helpful for documenting changes or updates related to a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The numeric ID of the specific release for which the note is to be created.", + "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": "note_unique_id", + "required": false, + "description": "Unique integer ID of the note to be created in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "creator_user_id", + "required": false, + "description": "Unique integer ID of the user who created the note in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "Email addresses to notify about the release note. Provide a list of email strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The content of the release note in HTML format. Use valid HTML tags for formatting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The body content of the release note in plain text format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The date and time when the release note was created. Expected format is ISO 8601 (e.g., YYYY-MM-DDTHH:MM:SSZ).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Note content of release\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceRequester.json new file mode 100644 index 00000000..5883da0b --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceRequester.json @@ -0,0 +1,453 @@ +{ + "name": "CreateFreshserviceRequester", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceRequester@0.2.0", + "description": "Create a new requester in Freshservice.\n\nUse this tool to add a new requester to your Freshservice account, typically used when you need to register new users who can make service requests.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "requester_details", + "required": true, + "description": "JSON object containing details of the requester, including identity, contact info, department, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "requester_details", + "description": "Requester who needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicket.json new file mode 100644 index 00000000..c7210011 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicket.json @@ -0,0 +1,551 @@ +{ + "name": "CreateFreshserviceTicket", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceTicket@1.0.0", + "description": "Create a new support ticket in Freshservice.\n\nUse this tool to generate a new support ticket in Freshservice, which is useful for tracking and managing customer support issues.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_details", + "required": true, + "description": "JSON object with details for the Freshservice ticket, including subject, priority, requester_id, email fields, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_details", + "description": "details of the Freshservice Ticket to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the Freshservice Ticket to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added in the 'cc' field of the incoming ticket email\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fwd_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while forwarding a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"reply_cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while replying to a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fr_escalated\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been escalated as a result of the first response time being breached\",\n \"readOnly\": true,\n \"example\": true\n },\n \"spam\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been marked as spam\",\n \"readOnly\": true,\n \"example\": true\n },\n \"priority\": {\n \"type\": \"number\",\n \"description\": \"Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.\",\n \"example\": 2.0\n },\n \"requester_id\": {\n \"type\": \"number\",\n \"description\": \"User ID of the requester.\",\n \"example\": 1400023894234\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10\",\n \"example\": 1.0\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5\",\n \"example\": 2.0\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Ticket\",\n \"example\": \"Printer not connected\\\"\"\n },\n \"id\": {\n \"type\": \"number\",\n \"description\": \"Unique ID of the ticket\",\n \"readOnly\": true,\n \"example\": 14000239432\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \\u2018incident\\u2019 as of now]\",\n \"example\": \"Incident\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"fr_due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the first response is due\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"is_escalated\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"description\": {\n \"type\": \"string\",\n \"example\": \"
How do I connect printer?
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the ticket in plain text\",\n \"example\": \"How do I connect printer?\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"choice\": \"First Choice\",\n \"employee_id\": \"E1234\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was last updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket\",\n \"example\": [\n \"Hardware\",\n \"Network\",\n \"VPN\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"Ticket attachments. The total size of these attachments cannot exceed 15MB\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicketTask.json new file mode 100644 index 00000000..b30ea428 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateFreshserviceTicketTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateFreshserviceTicketTask", + "fully_qualified_name": "FreshserviceApi.CreateFreshserviceTicketTask@1.0.0", + "description": "Create a new task for a Freshservice ticket.\n\nThis tool is used to create a new task associated with a specific ticket in Freshservice, helping manage and track support ticket actions.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the ticket for which the task is to be created.", + "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": "task_details", + "required": true, + "description": "JSON object containing details of the task, like created_by, agent_id, status, title, and due_date.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "details of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "details of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "details of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewAsset.json new file mode 100644 index 00000000..b44f75dc --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewAsset.json @@ -0,0 +1,419 @@ +{ + "name": "CreateNewAsset", + "fully_qualified_name": "FreshserviceApi.CreateNewAsset@1.0.0", + "description": "Create a new asset in Freshservice.\n\nUse this tool to add a new asset to the Freshservice system. Ideal for tracking and managing assets efficiently.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_details", + "required": true, + "description": "JSON containing all details about the asset, including \"id\", \"display_id\", \"name\", \"description\", \"asset_type_id\", \"impact\", \"author_type\", \"usage_type\", \"asset_tag\", \"user_id\", \"department_id\", \"location_id\", \"agent_id\", \"group_id\", \"assigned_on\", \"created_at\", \"updated_at\", and \"type_fields\".", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "asset_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewDepartment.json new file mode 100644 index 00000000..25771bbf --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewDepartment.json @@ -0,0 +1,355 @@ +{ + "name": "CreateNewDepartment", + "fully_qualified_name": "FreshserviceApi.CreateNewDepartment@1.0.0", + "description": "Create a new Department in Freshservice.\n\nThis tool is used to create a new department, or company in MSP mode, within Freshservice. Call this tool when you need to add a new organizational unit in the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_unique_id", + "required": false, + "description": "A unique integer identifier for the department being created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "department_name", + "required": false, + "description": "The name of the department to be created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "department_description", + "required": false, + "description": "Detailed description of the department being created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "head_user_identifier", + "required": false, + "description": "Unique identifier of the agent or requester who serves as the head of the department.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "head_user_id" + }, + { + "name": "prime_user_identifier", + "required": false, + "description": "Unique identifier for the primary agent or requester of the department.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "prime_user_id" + }, + { + "name": "department_email_domains", + "required": false, + "description": "Email domains associated with the department, provided as a list of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "domains" + }, + { + "name": "department_custom_fields", + "required": false, + "description": "JSON object representing custom fields associated with a Freshservice department entity. This can include fields like additional metadata or specific attributes relevant to the department.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "inferrable": true, + "http_endpoint_parameter_name": "custom_fields" + }, + { + "name": "department_creation_timestamp", + "required": false, + "description": "The timestamp indicating when the department was created, formatted as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "last_modified_timestamp", + "required": false, + "description": "Timestamp indicating when the department was last modified. Use ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/departments", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "department_unique_id", + "description": "Unique identifier of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "department_name", + "description": "Name of the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "department_description", + "description": "Description about the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "head_user_id", + "tool_parameter_name": "head_user_identifier", + "description": "Unique identifier of the agent or requester who serves as the head of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "prime_user_id", + "tool_parameter_name": "prime_user_identifier", + "description": "Unique identifier of the agent or requester who serves as the prime user of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "domains", + "tool_parameter_name": "department_email_domains", + "description": "Email domains associated with the department", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "custom_fields", + "tool_parameter_name": "department_custom_fields", + "description": "Custom fields that are associated with a Freshservice entity", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "department_creation_timestamp", + "description": "Timestamp at which the department was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "last_modified_timestamp", + "description": "Timestamp at which the department was last modified", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Department that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the department\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the department\",\n \"example\": \"IT Support\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the department\",\n \"example\": \"IT Support\"\n },\n \"head_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the head of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"prime_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the prime user of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"domains\": {\n \"type\": \"array\",\n \"description\": \"Email domains associated with the department\",\n \"example\": [\n \"support.freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": \"\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceAsset.json new file mode 100644 index 00000000..0b427315 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceAsset.json @@ -0,0 +1,395 @@ +{ + "name": "CreateNewFreshserviceAsset", + "fully_qualified_name": "FreshserviceApi.CreateNewFreshserviceAsset@1.0.0", + "description": "Create a new asset in Freshservice.\n\nUse this tool to create a new asset within the Freshservice platform. Call this when you need to add a new asset to your asset management system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_data", + "required": true, + "description": "Provide detailed JSON data for the asset including attributes like id, name, description, asset type, impact, usage type, and other relevant fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/assets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "asset_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": \"\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceProject.json new file mode 100644 index 00000000..30c8fc7f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewFreshserviceProject.json @@ -0,0 +1,309 @@ +{ + "name": "CreateNewFreshserviceProject", + "fully_qualified_name": "FreshserviceApi.CreateNewFreshserviceProject@0.2.0", + "description": "Create a new project in Freshservice.\n\nThis tool creates a new project in Freshservice. It should be called when you need to initiate a new project within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "new_project_details", + "required": true, + "description": "JSON object with details for creating a new project, including id, title, description, status, priority, owner_id, user_id, start_date, end_date, archived, and closed_at.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "new_project_details", + "description": "project that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewLocation.json new file mode 100644 index 00000000..aacc2475 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewLocation.json @@ -0,0 +1,412 @@ +{ + "name": "CreateNewLocation", + "fully_qualified_name": "FreshserviceApi.CreateNewLocation@1.0.0", + "description": "Create a new location in Freshservice.\n\nUse this tool to create a new location within the Freshservice platform. It should be called when there is a need to add a new geographical or organizational location to the service database.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_name", + "required": true, + "description": "Provide the name of the new location to be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "location_unique_id", + "required": false, + "description": "An integer representing the unique ID of the location to be created in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "parent_location_id", + "required": false, + "description": "The unique identifier of the parent location if applicable. Use this to nest the new location under an existing one.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "parent_location_id" + }, + { + "name": "primary_contact_unique_id", + "required": false, + "description": "Unique ID of the primary contact. This contact is a requester, and their details will be referenced for name, email, and phone number.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primary_contact_id" + }, + { + "name": "address_street_line_one", + "required": false, + "description": "First line of the street address for the new location in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line1" + }, + { + "name": "address_line_2", + "required": false, + "description": "The second line of the address, typically for additional location details or suite numbers.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line2" + }, + { + "name": "city_name", + "required": false, + "description": "The name of the city where the location is situated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_city" + }, + { + "name": "state", + "required": false, + "description": "The state or region of the location. This should be a string value representing the official name of the state.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_state" + }, + { + "name": "location_country", + "required": false, + "description": "Specify the country for the new location. This should be a valid country name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_country" + }, + { + "name": "location_zip_code", + "required": false, + "description": "Provide the Zip Code for the location to be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_zipcode" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "location_unique_id", + "description": "Unique ID of the location", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "location_name", + "description": "Name of the location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "parent_location_id", + "tool_parameter_name": "parent_location_id", + "description": "Unique ID of the parent location", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primary_contact_id", + "tool_parameter_name": "primary_contact_unique_id", + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line1", + "tool_parameter_name": "address_street_line_one", + "description": "Address Line 1", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line2", + "tool_parameter_name": "address_line_2", + "description": "Address Line 2", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_city", + "tool_parameter_name": "city_name", + "description": "City", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_state", + "tool_parameter_name": "state", + "description": "State", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_country", + "tool_parameter_name": "location_country", + "description": "Country", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_zipcode", + "tool_parameter_name": "location_zip_code", + "description": "Zip Code of the Location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the location\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the location\",\n \"example\": \"Apple Campus\"\n },\n \"parent_location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent location\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the Location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblem.json new file mode 100644 index 00000000..1bbacc90 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblem.json @@ -0,0 +1,911 @@ +{ + "name": "CreateNewProblem", + "fully_qualified_name": "FreshserviceApi.CreateNewProblem@1.0.0", + "description": "Create a new problem in Freshservice.\n\nUse this tool to create a new problem in Freshservice when you need to log an issue or fault that may require investigation and resolution.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_details", + "required": true, + "description": "JSON object containing the details of the problem, including identifiers, priority, impact, status, subject, due date, category, known errors, timestamps, assets, attachments, custom fields, and analysis.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "problem_details", + "description": "Details of the Problem", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblemInFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblemInFreshservice.json new file mode 100644 index 00000000..13be3bd6 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProblemInFreshservice.json @@ -0,0 +1,911 @@ +{ + "name": "CreateNewProblemInFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateNewProblemInFreshservice@0.2.0", + "description": "Create a new problem in Freshservice.\n\nUse this tool to create a new problem in Freshservice. It should be called when there is a need to document or track a new issue that requires resolution.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "problem_details", + "required": true, + "description": "JSON object containing details of the problem, including identifiers, priority, impact, status, subject, timestamps, category, known errors, assets, attachments, custom and analysis fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "problem_details", + "description": "Details of the Problem", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProduct.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProduct.json new file mode 100644 index 00000000..5e41f55d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewProduct.json @@ -0,0 +1,362 @@ +{ + "name": "CreateNewProduct", + "fully_qualified_name": "FreshserviceApi.CreateNewProduct@1.0.0", + "description": "Create a new product in the Freshservice catalog.\n\nUse this tool to add a new product to the Freshservice Product Catalog. It is called when a new product entry is needed in the inventory or catalog database.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_name", + "required": true, + "description": "Name of the Product to be added to the catalog.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "product_asset_type_id", + "required": true, + "description": "Identifier for the asset type of the product, expected as an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "asset_type_id" + }, + { + "name": "product_unique_id", + "required": false, + "description": "Unique identifier for the product in the catalog. It must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "manufacturer_name", + "required": false, + "description": "The name of the product's manufacturer. It accepts free text input.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "inferrable": true, + "http_endpoint_parameter_name": "manufacturer" + }, + { + "name": "product_status_id", + "required": false, + "description": "The status of the product: `1` - In Production, `2` - In Pipeline, `3` - Retired.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status_id" + }, + { + "name": "procurement_mode", + "required": false, + "description": "Mode of procurement for the product. Use `1` for Buy, `2` for Lease, `3` for Both.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "mode_of_procurement_id" + }, + { + "name": "depreciation_type_id", + "required": false, + "description": "Unique identifier for the type of depreciation used for the product. This should be an integer value corresponding to the desired depreciation method.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "depreciation_type_id" + }, + { + "name": "depreciation_type_identifier", + "required": false, + "description": "Unique identifier for the depreciation type used for the product.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "product_unique_id", + "description": "Unique ID of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "product_name", + "description": "Name of the Product", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "asset_type_id", + "tool_parameter_name": "product_asset_type_id", + "description": "Asset Type id of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "manufacturer", + "tool_parameter_name": "manufacturer_name", + "description": "Manufacturer Name - Free Text", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "status_id", + "tool_parameter_name": "product_status_id", + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "mode_of_procurement_id", + "tool_parameter_name": "procurement_mode", + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "depreciation_type_id", + "tool_parameter_name": "depreciation_type_id", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "depreciation_type_identifier", + "description": "Unique identifier for the depreciation type used", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the Product\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Product\",\n \"example\": \"Apple MacBook Air 13\"\n },\n \"asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Asset Type id of the Product\",\n \"format\": \"int64\",\n \"example\": 14000234243\n },\n \"manufacturer\": {\n \"type\": \"string\",\n \"description\": \"Manufacturer Name - Free Text\",\n \"example\": \"Apple\"\n },\n \"status_id\": {\n \"type\": \"integer\",\n \"description\": \"status can be\\n `1` - In Production\\n `2` - In Pipeline\\n `3` - Retired\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"mode_of_procurement_id\": {\n \"type\": \"integer\",\n \"description\": \"mode of procurement can be\\n `1` - Buy\\n `2` - Lease\\n `3` - Both\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"depreciation_type_id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"example\": 140009854\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the depreciation type used\",\n \"example\": \"Apple\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewPurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewPurchaseOrder.json new file mode 100644 index 00000000..9b0d2ff5 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewPurchaseOrder.json @@ -0,0 +1,115 @@ +{ + "name": "CreateNewPurchaseOrder", + "fully_qualified_name": "FreshserviceApi.CreateNewPurchaseOrder@0.2.0", + "description": "Creates a new Purchase Order in Freshservice.\n\nUse this tool to create a new Purchase Order in Freshservice. This is useful for managing procurement and tracking orders within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_details", + "required": true, + "description": "The JSON payload with details to create a purchase order, including items, quantities, and vendor information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-purchase-order-post'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "FRESHSERVICE_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "purchase_order_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewRequester.json new file mode 100644 index 00000000..24ed2fd9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewRequester.json @@ -0,0 +1,453 @@ +{ + "name": "CreateNewRequester", + "fully_qualified_name": "FreshserviceApi.CreateNewRequester@1.0.0", + "description": "Create a new requester in Freshservice.\n\nUse this tool to add a new requester to Freshservice whenever you need to register someone in the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_details", + "required": true, + "description": "Details of the requester to be created, including name, email, phone numbers, department IDs, manager ID, and other optional attributes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "requester_details", + "description": "Requester who needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Requester who needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the requester\",\n \"example\": \"Andrea\"\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the requester\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the requester\",\n \"example\": \"Product Manager\"\n },\n \"primary_email\": {\n \"type\": \"string\",\n \"description\": \"Primary email address of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"secondary_emails\": {\n \"type\": \"array\",\n \"description\": \"Secondary email addresses of the requester\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"department_ids\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the departments associated with the requester\",\n \"example\": [\n 1400043345,\n 1400046983\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"can_see_all_tickets_from_associated_departments\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise\",\n \"example\": true\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"2968 D Street, Bloomfield, Michigan\"\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the requester\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the requester\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the requester\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"background_information\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"Done\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewVendor.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewVendor.json new file mode 100644 index 00000000..b98697fe --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateNewVendor.json @@ -0,0 +1,412 @@ +{ + "name": "CreateNewVendor", + "fully_qualified_name": "FreshserviceApi.CreateNewVendor@1.0.0", + "description": "Creates a new vendor in the Freshservice system.\n\nUse this tool to create a new vendor in Freshservice. Call this tool when you need to add a vendor to your vendor list, providing necessary details to complete the registration.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_unique_id", + "required": false, + "description": "Unique integer ID of the vendor to be created in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "vendor_name", + "required": false, + "description": "The name of the vendor to be created. It should be a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "vendor_description", + "required": false, + "description": "Detailed description of the vendor, including any specific information or notes relevant to the vendor.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "primary_contact_id", + "required": false, + "description": "Unique ID of the primary contact for the vendor. This contact is a requester whose details (name, email, phone, mobile) are referenced from the requester database.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primary_contact_id" + }, + { + "name": "address_line_1", + "required": false, + "description": "The first line of the vendor's address, such as street name and number.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line1" + }, + { + "name": "address_line_2", + "required": false, + "description": "The second line of the vendor's address, typically used for apartment or suite numbers.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line2" + }, + { + "name": "vendor_city", + "required": false, + "description": "The city where the vendor is located.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_city" + }, + { + "name": "state", + "required": false, + "description": "The state or province where the vendor is located. Use a string value to specify the state.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_state" + }, + { + "name": "country", + "required": false, + "description": "The country where the vendor is located. Provide the full name of the country.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_country" + }, + { + "name": "location_zip_code", + "required": false, + "description": "Zip Code of the vendor's location.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_zipcode" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "vendor_unique_id", + "description": "Unique ID of the vendor", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "vendor_name", + "description": "Name of the vendor", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "vendor_description", + "description": "Description of the vendor", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primary_contact_id", + "tool_parameter_name": "primary_contact_id", + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line1", + "tool_parameter_name": "address_line_1", + "description": "Address Line 1", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line2", + "tool_parameter_name": "address_line_2", + "description": "Address Line 2", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_city", + "tool_parameter_name": "vendor_city", + "description": "City", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_state", + "tool_parameter_name": "state", + "description": "State", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_country", + "tool_parameter_name": "country", + "description": "Country", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_zipcode", + "tool_parameter_name": "location_zip_code", + "description": "Zip Code of the location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the vendor\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the vendor\",\n \"example\": \"Apple\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the vendor\",\n \"example\": \"Apple\"\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"Cupertino\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"Cupertino\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequest.json new file mode 100644 index 00000000..89374576 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequest.json @@ -0,0 +1,133 @@ +{ + "name": "CreateOnboardingRequest", + "fully_qualified_name": "FreshserviceApi.CreateOnboardingRequest@1.0.0", + "description": "Create a new onboarding request in Freshservice.\n\nUse this tool to initiate a new employee onboarding process in Freshservice. It should be called when a new hire needs to be onboarded, capturing all necessary details and confirming the creation of the request.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_request_details", + "required": false, + "description": "JSON containing required details for the new onboarding request, such as employee information and start date.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "onboarding request that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "onboarding_request_details", + "description": "onboarding request that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "onboarding request that needs to be created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"onboarding request that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fields\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"cf_employee_name\": \"Sample\",\n \"cf_department_name\": \"Customer Support\",\n \"cf_job_title\": \"it user\",\n \"cf_date_of_joining\": \"2019-06-15\"\n }\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequestFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequestFreshservice.json new file mode 100644 index 00000000..5a191dc8 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateOnboardingRequestFreshservice.json @@ -0,0 +1,109 @@ +{ + "name": "CreateOnboardingRequestFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateOnboardingRequestFreshservice@1.0.0", + "description": "Create a new onboarding request in Freshservice.\n\nUse this tool to initiate a new onboarding request in Freshservice when setting up new employees or team members.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_request_payload", + "required": false, + "description": "JSON object containing the details of the onboarding request to be created, including all necessary fields for Freshservice.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "onboarding request that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/onboarding_requests", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "onboarding_request_payload", + "description": "onboarding request that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "onboarding request that needs to be created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"onboarding request that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fields\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"cf_employee_name\": \"Sample\",\n \"cf_department_name\": \"Customer Support\",\n \"cf_job_title\": \"it user\",\n \"cf_date_of_joining\": \"2019-06-15\"\n }\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemInFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemInFreshservice.json new file mode 100644 index 00000000..6df439ca --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemInFreshservice.json @@ -0,0 +1,887 @@ +{ + "name": "CreateProblemInFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateProblemInFreshservice@1.0.0", + "description": "Create a new problem in Freshservice.\n\nUse this tool to create a new problem in Freshservice, which helps track and resolve issues effectively. Call this when there's a need to log an issue for better incident management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_details", + "required": true, + "description": "JSON with details for creating a problem in Freshservice, including IDs, priority, impact, status, subject, timestamps, assets, attachments, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/problems", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "problem_details", + "description": "Details of the Problem", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Problem" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Details of the Problem\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": \"\"\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTask.json new file mode 100644 index 00000000..31c2c2ef --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateProblemTask", + "fully_qualified_name": "FreshserviceApi.CreateProblemTask@1.0.0", + "description": "Create a new task for a problem in Freshservice.\n\nUse this tool to create a new task associated with a specific problem in Freshservice. Ideal for task management and organization within problem-solving environments.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique ID of the problem for which you want to create a task.", + "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": "task_details", + "required": true, + "description": "JSON object containing details of the task to be created, including 'created_by', 'agent_id', 'title', 'status', and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "detailss of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"detailss of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTimeEntry.json new file mode 100644 index 00000000..6ff8eb9e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProblemTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "CreateProblemTimeEntry", + "fully_qualified_name": "FreshserviceApi.CreateProblemTimeEntry@1.0.0", + "description": "Create a new time entry for a problem in Freshservice.\n\nThis tool creates a new time entry on a specified problem in Freshservice. It should be called when you need to log time spent on a problem within the service.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The ID of the problem for which the time entry is to be created. Must be 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": "time_entry_details", + "required": true, + "description": "Details of the time entry to be created, including IDs, time information, status, and custom fields. It should be a JSON object containing keys like 'id', 'task_id', 'parent_id', 'parent_type', 'start_time', 'time_spent', 'timer_running', 'billable', 'agent_id', 'note', 'created_at', 'updated_at', 'executed_at', and 'custom_fields'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductCatalogEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductCatalogEntry.json new file mode 100644 index 00000000..23b21807 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductCatalogEntry.json @@ -0,0 +1,338 @@ +{ + "name": "CreateProductCatalogEntry", + "fully_qualified_name": "FreshserviceApi.CreateProductCatalogEntry@1.0.0", + "description": "Create a new product in the product catalog.\n\nThis tool is used to add a new product to the product catalog in Freshservice. It should be called when you need to register a fresh product entry.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_unique_id", + "required": false, + "description": "An integer representing the unique ID of the product to be created in the catalog.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "product_name", + "required": false, + "description": "The name of the product to be added to the catalog. It must be a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "product_asset_type_id", + "required": false, + "description": "The ID representing the asset type of the product in the catalog. It must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "asset_type_id" + }, + { + "name": "product_manufacturer_name", + "required": false, + "description": "Free text field for the name of the product's manufacturer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "inferrable": true, + "http_endpoint_parameter_name": "manufacturer" + }, + { + "name": "product_status_id", + "required": false, + "description": "The current status of the product. Use `1` for In Production, `2` for In Pipeline, or `3` for Retired.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status_id" + }, + { + "name": "procurement_mode", + "required": false, + "description": "Mode of procurement: 1 for Buy, 2 for Lease, 3 for Both.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "mode_of_procurement_id" + }, + { + "name": "depreciation_type_id", + "required": false, + "description": "Unique identifier for the depreciation type. Expected to be an integer corresponding to a specific depreciation category.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "depreciation_type_id" + }, + { + "name": "depreciation_type_identifier", + "required": false, + "description": "Unique identifier for the depreciation type used. Provide a string value representing this identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/products", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "product_unique_id", + "description": "Unique ID of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "product_name", + "description": "Name of the Product", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "asset_type_id", + "tool_parameter_name": "product_asset_type_id", + "description": "Asset Type id of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "manufacturer", + "tool_parameter_name": "product_manufacturer_name", + "description": "Manufacturer Name - Free Text", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "status_id", + "tool_parameter_name": "product_status_id", + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "mode_of_procurement_id", + "tool_parameter_name": "procurement_mode", + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "depreciation_type_id", + "tool_parameter_name": "depreciation_type_id", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "depreciation_type_identifier", + "description": "Unique identifier for the depreciation type used", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the Product\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Product\",\n \"example\": \"Apple MacBook Air 13\"\n },\n \"asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Asset Type id of the Product\",\n \"format\": \"int64\",\n \"example\": 14000234243\n },\n \"manufacturer\": {\n \"type\": \"string\",\n \"description\": \"Manufacturer Name - Free Text\",\n \"example\": \"Apple\"\n },\n \"status_id\": {\n \"type\": \"integer\",\n \"description\": \"status can be\\n `1` - In Production\\n `2` - In Pipeline\\n `3` - Retired\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"mode_of_procurement_id\": {\n \"type\": \"integer\",\n \"description\": \"mode of procurement can be\\n `1` - Buy\\n `2` - Lease\\n `3` - Both\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"depreciation_type_id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"example\": 140009854\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the depreciation type used\",\n \"example\": \"Apple\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductFreshservice.json new file mode 100644 index 00000000..3f08388d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductFreshservice.json @@ -0,0 +1,362 @@ +{ + "name": "CreateProductFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateProductFreshservice@1.0.0", + "description": "Create a new product in the Freshservice catalog.\n\nThis tool is used to create and add a new product to the Freshservice Product Catalog. It should be called when you need to introduce a new product into the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_unique_id", + "required": false, + "description": "Unique identifier for the product to be created in the Freshservice catalog. Must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "product_name", + "required": false, + "description": "The name of the product to be created in the Freshservice catalog.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "product_asset_type_id", + "required": false, + "description": "Integer ID representing the asset type of the product, used to categorize the product in the catalog.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "asset_type_id" + }, + { + "name": "manufacturer_name", + "required": false, + "description": "Name of the product manufacturer. This is free text and can contain any valid manufacturer name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "inferrable": true, + "http_endpoint_parameter_name": "manufacturer" + }, + { + "name": "product_status", + "required": false, + "description": "The product status: `1` for In Production, `2` for In Pipeline, `3` for Retired.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status_id" + }, + { + "name": "procurement_mode", + "required": false, + "description": "Mode of procurement for the product: `1` for Buy, `2` for Lease, `3` for Both.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "mode_of_procurement_id" + }, + { + "name": "depreciation_type_identifier", + "required": false, + "description": "Unique integer identifier for the type of depreciation applicable to the product. This should match the internal categorization used by Freshservice for depreciation types.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "depreciation_type_id" + }, + { + "name": "depreciation_type_id_code", + "required": false, + "description": "Unique identifier for the depreciation type used for the product.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "product_unique_id", + "description": "Unique ID of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "product_name", + "description": "Name of the Product", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "asset_type_id", + "tool_parameter_name": "product_asset_type_id", + "description": "Asset Type id of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "manufacturer", + "tool_parameter_name": "manufacturer_name", + "description": "Manufacturer Name - Free Text", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "status_id", + "tool_parameter_name": "product_status", + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "mode_of_procurement_id", + "tool_parameter_name": "procurement_mode", + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "depreciation_type_id", + "tool_parameter_name": "depreciation_type_identifier", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "depreciation_type_id_code", + "description": "Unique identifier for the depreciation type used", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the Product\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Product\",\n \"example\": \"Apple MacBook Air 13\"\n },\n \"asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Asset Type id of the Product\",\n \"format\": \"int64\",\n \"example\": 14000234243\n },\n \"manufacturer\": {\n \"type\": \"string\",\n \"description\": \"Manufacturer Name - Free Text\",\n \"example\": \"Apple\"\n },\n \"status_id\": {\n \"type\": \"integer\",\n \"description\": \"status can be\\n `1` - In Production\\n `2` - In Pipeline\\n `3` - Retired\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"mode_of_procurement_id\": {\n \"type\": \"integer\",\n \"description\": \"mode of procurement can be\\n `1` - Buy\\n `2` - Lease\\n `3` - Both\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"depreciation_type_id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"example\": 140009854\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the depreciation type used\",\n \"example\": \"Apple\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductInCatalog.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductInCatalog.json new file mode 100644 index 00000000..31a80f66 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProductInCatalog.json @@ -0,0 +1,261 @@ +{ + "name": "CreateProductInCatalog", + "fully_qualified_name": "FreshserviceApi.CreateProductInCatalog@0.2.0", + "description": "Create a new product in the product catalog.\n\nThis tool allows you to create a new product in the Freshservice product catalog. Use this when you need to add a product to the catalog.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "product_details", + "required": true, + "description": "A JSON object containing product details such as id, name, asset type, manufacturer, status, procurement mode, and depreciation type. Example: {\"id\": 123, \"name\": \"Laptop\", \"asset_type_id\": 4, \"manufacturer\": \"Dell\", \"status_id\": 1, \"mode_of_procurement_id\": 1, \"depreciation_type_id\": 2, \"description\": \"Used for office work\"}", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "manufacturer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "status_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "mode_of_procurement_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "depreciation_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "manufacturer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "status_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "mode_of_procurement_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "depreciation_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProjectTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProjectTask.json new file mode 100644 index 00000000..cb7fd97e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateProjectTask.json @@ -0,0 +1,456 @@ +{ + "name": "CreateProjectTask", + "fully_qualified_name": "FreshserviceApi.CreateProjectTask@1.0.0", + "description": "Create a new project task in Freshservice.\n\nUse this tool to create a new project task within Freshservice. It should be called when you need to add a task to an existing project.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "ID of the project to which the task will be added. This must be an integer.", + "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": "project_task_details", + "required": true, + "description": "Details of the project task to be created, including id, title, description, status, owner, dates, and notification settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the task" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the task" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the task" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent who created the task" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the task" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the task" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the task" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Immediate parent of the task" + }, + "root_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Root parent of the task" + }, + "has_subtasks": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "States if the task has subtasks" + }, + "notification_needed": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify if needed to be notified" + }, + "notify": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BEFORE_START_DATE", + "BEFORE_END_DATE" + ], + "properties": null, + "inner_properties": null, + "description": "Specify whether notification should be sent before start or before end date" + }, + "value": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time period of notification" + }, + "time_unit": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "minutes", + "hours", + "days", + "weeks" + ], + "properties": null, + "inner_properties": null, + "description": "Time unit" + } + }, + "inner_properties": null, + "description": "Task notification details. Allowed range - 15 minutes to 4 weeks" + } + }, + "inner_properties": null, + "description": "project task that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "project_task_details", + "description": "project task that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the task" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the task" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the task" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent who created the task" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the task" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the task" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the task" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Immediate parent of the task" + }, + "root_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Root parent of the task" + }, + "has_subtasks": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "States if the task has subtasks" + }, + "notification_needed": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify if needed to be notified" + }, + "notify": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BEFORE_START_DATE", + "BEFORE_END_DATE" + ], + "properties": null, + "inner_properties": null, + "description": "Specify whether notification should be sent before start or before end date" + }, + "value": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time period of notification" + }, + "time_unit": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "minutes", + "hours", + "days", + "weeks" + ], + "properties": null, + "inner_properties": null, + "description": "Time unit" + } + }, + "inner_properties": null, + "description": "Task notification details. Allowed range - 15 minutes to 4 weeks" + } + }, + "inner_properties": null, + "description": "project task that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"project task that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"project_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the task\",\n \"example\": \"Clear backlog\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the task\",\n \"example\": \"Clear backlog\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the task\",\n \"format\": \"int64\",\n \"example\": 984793\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Agent who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 23423423\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the task\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-14T07:16:45Z\"\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-14T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-11T07:16:45Z\"\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Immediate parent of the task\",\n \"format\": \"int64\",\n \"example\": 34534\n },\n \"root_id\": {\n \"type\": \"integer\",\n \"description\": \"Root parent of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 12312\n },\n \"has_subtasks\": {\n \"type\": \"boolean\",\n \"description\": \"States if the task has subtasks\",\n \"readOnly\": true,\n \"example\": true\n },\n \"notification_needed\": {\n \"type\": \"boolean\",\n \"description\": \"Specify if needed to be notified\",\n \"example\": true\n },\n \"notify\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Specify whether notification should be sent before start or before end date\",\n \"example\": \"BEFORE_START_DATE\",\n \"enum\": [\n \"BEFORE_START_DATE\",\n \"BEFORE_END_DATE\"\n ]\n },\n \"value\": {\n \"type\": \"integer\",\n \"description\": \"Time period of notification\",\n \"example\": 2\n },\n \"time_unit\": {\n \"type\": \"string\",\n \"description\": \"Time unit\",\n \"example\": \"hours\",\n \"enum\": [\n \"minutes\",\n \"hours\",\n \"days\",\n \"weeks\"\n ]\n }\n },\n \"description\": \"Task notification details. Allowed range - 15 minutes to 4 weeks\",\n \"example\": {\n \"type\": \"BEFORE_START_DATE\",\n \"value\": 2,\n \"time_unit\": \"hours\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreatePurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreatePurchaseOrder.json new file mode 100644 index 00000000..29df440d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreatePurchaseOrder.json @@ -0,0 +1,115 @@ +{ + "name": "CreatePurchaseOrder", + "fully_qualified_name": "FreshserviceApi.CreatePurchaseOrder@1.0.0", + "description": "Create a new Purchase Order in Freshservice.\n\nThis tool is used to create a new Purchase Order in Freshservice. It should be called when a new order needs to be generated and recorded within the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_details", + "required": true, + "description": "A JSON object containing details of the purchase order such as items, quantities, vendor info, and total cost.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-purchase-order-post'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "FRESHSERVICE_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "purchase_order_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"allOf\": [\n {\n \"title\": \"PurchaseOrder\",\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the purchase order\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"vendor_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the vendor with whom the order is placed\",\n \"format\": \"int64\",\n \"example\": 100001633\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Title of the purchase order\",\n \"example\": \"Procure Adobe License\"\n },\n \"po_number\": {\n \"type\": \"string\",\n \"description\": \"Purchase order number\",\n \"example\": \"PO-10\"\n },\n \"vendor_details\": {\n \"type\": \"string\",\n \"description\": \"Details of the vendor with whom the order is placed\",\n \"example\": \"1 Infinite Loop Cupertino California United States 95014\"\n },\n \"expected_delivery_date\": {\n \"type\": \"string\",\n \"description\": \"Expected delivery date of the purchase order\",\n \"format\": \"date-time\",\n \"example\": \"2020-01-01T05:00:01Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Created date and time of the purchase order\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-30T04:22:14Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Updated date and time of the purchase order\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-30T04:22:14Z\"\n },\n \"created_by\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the agent who created purchase order\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001001256\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the purchase order\",\n \"example\": 20.0\n },\n \"shipping_address\": {\n \"type\": \"string\",\n \"description\": \"Address to which the order should be shipped\",\n \"example\": \"1 Infinite Loop Cupertino California\"\n },\n \"billing_same_as_shipping\": {\n \"type\": \"boolean\",\n \"description\": \"True if Billing address is same as Shipping address\",\n \"example\": true\n },\n \"billing_address\": {\n \"type\": \"string\",\n \"description\": \"Address to which the order should be billed\",\n \"example\": \"1 Infinite Loop Cupertino California\"\n },\n \"currency_code\": {\n \"type\": \"string\",\n \"description\": \"Currency unit used in the transaction\",\n \"example\": \"USD\",\n \"enum\": [\n \"AUD\",\n \"THB\",\n \"CAD\",\n \"CNY\",\n \"DKK\",\n \"AED\",\n \"USD\",\n \"EGP\",\n \"EUR\",\n \"HUF\",\n \"CHF\",\n \"HKD\",\n \"IDR\",\n \"ILS\",\n \"CZK\",\n \"ISK\",\n \"TRL\",\n \"MYR\",\n \"MXN\",\n \"NOK\",\n \"OMR\",\n \"PHP\",\n \"PLN\",\n \"GBP\",\n \"BWP\",\n \"QAR\",\n \"ZAR\",\n \"BRL\",\n \"RUB\",\n \"INR\",\n \"SAR\",\n \"SGD\",\n \"SEK\",\n \"TWD\",\n \"VND\",\n \"KRW\",\n \"JPY\",\n \"NZD\",\n \"JOD\"\n ]\n },\n \"conversion_rate\": {\n \"type\": \"number\",\n \"description\": \"Conversion rate to convert selected currency unit to helpdesk currency\",\n \"format\": \"float\",\n \"example\": 1.0\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department\",\n \"format\": \"int64\",\n \"example\": 10123\n },\n \"discount_percentage\": {\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of discount on the order\",\n \"format\": \"float\",\n \"example\": 2.0\n },\n \"tax_percentage\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of tax on the order\",\n \"format\": \"float\",\n \"example\": 5.0\n },\n \"shipping_cost\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Total cost of shipping the order\",\n \"format\": \"float\",\n \"example\": 10.0\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"properties\": {},\n \"example\": {\n \"manager\": \"andrea@freshservice.com\",\n \"department\": \"IT\"\n }\n }\n },\n \"x-tags\": [\n \"Purchase Orders\"\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"purcahse_items\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"item_type\": 2,\n \"item_name\": \"Macbook Air\",\n \"description\": \"Macbook Air\",\n \"cost\": 2,\n \"quantity\": 1,\n \"tax_percentage\": 5\n }\n ],\n \"items\": {\n \"title\": \"PurchaseItem\",\n \"type\": \"object\",\n \"properties\": {\n \"item_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of item to be ordered\",\n \"format\": \"int64\",\n \"example\": 2,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"item_name\": {\n \"type\": \"string\",\n \"description\": \"Name of the items to be ordered\",\n \"example\": \"Macbook Air\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Item description\",\n \"example\": \"Macbook Air\"\n },\n \"cost\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Cost of the item\",\n \"example\": 2.0\n },\n \"quantity\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Quantity of item to be ordered\",\n \"example\": 1\n },\n \"tax_percentage\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of tax on item cost\",\n \"example\": 5.0\n }\n },\n \"x-tags\": [\n \"Purchase Orders\"\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseNote.json new file mode 100644 index 00000000..1b317d8a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseNote.json @@ -0,0 +1,322 @@ +{ + "name": "CreateReleaseNote", + "fully_qualified_name": "FreshserviceApi.CreateReleaseNote@1.0.0", + "description": "Create a new note on a release in Freshservice.\n\nUse this tool to add a new note to an existing release in Freshservice, providing collaborative and up-to-date information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id_for_note_creation", + "required": true, + "description": "ID of the release to which the new note is being added. It must be an integer.", + "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": "note_unique_id", + "required": false, + "description": "The unique identifier for the release note. This must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "creator_user_id", + "required": false, + "description": "Unique ID of the user who created the note. This ID is required to identify the author of the release note in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "Email addresses to notify about the release note. Provide as an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The body of the release note in HTML format. Use this to provide structured content with formatting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The body of the note in plain text format, without HTML tags.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The date and time when the note was created. Use ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SSZ).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The datetime when the note was last updated in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/releases/{release_id}/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "release_id", + "tool_parameter_name": "release_id_for_note_creation", + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Note content of release\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseRequest.json new file mode 100644 index 00000000..4c1281f0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseRequest.json @@ -0,0 +1,975 @@ +{ + "name": "CreateReleaseRequest", + "fully_qualified_name": "FreshserviceApi.CreateReleaseRequest@1.0.0", + "description": "Initiate a new release request in Freshservice.\n\nThis tool is used to create a new release request in Freshservice. It should be called when a user wants to start tracking or managing a release process within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_details", + "required": true, + "description": "JSON object containing details of the Release, including identifiers, status, type, dates, assets, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Release" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "release_details", + "description": "Details of the Release", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Details of the Release" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the Release\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 14043616\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 10184589\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"release_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the Release 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Release\",\n \"example\": \"Security Patch Deployment\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"work_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work started\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"work_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work ended\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Release\",\n \"format\": \"int64\",\n \"example\": 10143312\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Release\",\n \"example\": \"Security\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Release\",\n \"example\": \"Deployment\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Release\",\n \"example\": \"Security\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"associated_assets\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the assets associated with the Release request\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_changes\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the Changes associated with the Release\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Some Value\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTask.json new file mode 100644 index 00000000..02c62e37 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateReleaseTask", + "fully_qualified_name": "FreshserviceApi.CreateReleaseTask@1.0.0", + "description": "Create a new task on a Freshservice release.\n\nUse this tool to add a new task to a specific release in Freshservice, enabling detailed release management and tracking.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "ID of the release to add a new task. It specifies the release context for task creation.", + "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": "task_details", + "required": true, + "description": "JSON containing details of the task to be created, including fields such as 'created_by', 'agent_id', 'id', 'status', 'parent_id', 'parent_type', 'due_date', 'notify_before', 'title', 'description', 'created_at', 'updated_at', 'closed_at', 'group_id', and 'start_date'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "detailss of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "detailss of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"detailss of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTimeEntry.json new file mode 100644 index 00000000..b35319c9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateReleaseTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "CreateReleaseTimeEntry", + "fully_qualified_name": "FreshserviceApi.CreateReleaseTimeEntry@1.0.0", + "description": "Create a new time entry on a release in Freshservice.\n\nThis tool creates a new time entry for a specified release in Freshservice. It should be called when you need to log or record time spent on a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The integer ID of the release for which the time entry will be created. This should be a valid and existing release ID within 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": "time_entry_details", + "required": true, + "description": "Details for the time entry to be created, including ID, task ID, start time, and more, in JSON format.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateRequester.json new file mode 100644 index 00000000..412f0191 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateRequester.json @@ -0,0 +1,453 @@ +{ + "name": "CreateRequester", + "fully_qualified_name": "FreshserviceApi.CreateRequester@1.0.0", + "description": "Create a new requester in Freshservice.\n\nUse this tool to add a new requester to the Freshservice system. Suitable for managing customer or user entries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_details", + "required": true, + "description": "JSON object containing all details of the requester to be created, including IDs, names, email addresses, phone numbers, department associations, and any custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "requester_details", + "description": "Requester who needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Requester who needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the requester\",\n \"example\": \"Andrea\"\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the requester\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the requester\",\n \"example\": \"Product Manager\"\n },\n \"primary_email\": {\n \"type\": \"string\",\n \"description\": \"Primary email address of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"secondary_emails\": {\n \"type\": \"array\",\n \"description\": \"Secondary email addresses of the requester\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"department_ids\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the departments associated with the requester\",\n \"example\": [\n 1400043345,\n 1400046983\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"can_see_all_tickets_from_associated_departments\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise\",\n \"example\": true\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"2968 D Street, Bloomfield, Michigan\"\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the requester\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the requester\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the requester\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"background_information\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"Done\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequest.json new file mode 100644 index 00000000..2f77a951 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequest.json @@ -0,0 +1,247 @@ +{ + "name": "CreateServiceRequest", + "fully_qualified_name": "FreshserviceApi.CreateServiceRequest@1.0.0", + "description": "Create a service request in Freshservice.\n\nUse this tool to submit a new service request in Freshservice. It facilitates the creation of service requests by sending the necessary information to Freshservice's system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "item_id", + "required": true, + "description": "The ID of the item to be requested. It must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the id of the item that needs to requested" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "requester_email", + "required": true, + "description": "The email address of the person making the service request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requester_email" + }, + { + "name": "item_quantity", + "required": false, + "description": "The number of units of the item needed by the requester. Defaults to 1 if not specified.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of units of the item needed by the requester. By default it is 1." + }, + "inferrable": true, + "http_endpoint_parameter_name": "quantity" + }, + { + "name": "user_requested_for_email", + "required": false, + "description": "Email address of the user for whom the service is requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requested_for_email" + }, + { + "name": "custom_fields_json", + "required": false, + "description": "A JSON object containing custom fields related to a Freshservice entity. This allows for additional data specific to the request.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "inferrable": true, + "http_endpoint_parameter_name": "custom_fields" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-service-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "item_id", + "description": "the id of the item that needs to requested", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the id of the item that needs to requested" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "quantity", + "tool_parameter_name": "item_quantity", + "description": "The number of units of the item needed by the requester. By default it is 1.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of units of the item needed by the requester. By default it is 1." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requester_email", + "tool_parameter_name": "requester_email", + "description": "the email id of the requester", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requested_for_email", + "tool_parameter_name": "user_requested_for_email", + "description": "the email id of the user for whom this is requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "custom_fields", + "tool_parameter_name": "custom_fields_json", + "description": "Custom fields that are associated with a Freshservice entity", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Service request that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"id\",\n \"requester_email\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"the id of the item that needs to requested\",\n \"format\": \"int64\",\n \"example\": 140002398473\n },\n \"quantity\": {\n \"type\": \"integer\",\n \"description\": \"The number of units of the item needed by the requester. By default it is 1.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"requester_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"requested_for_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the user for whom this is requested.\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequestInFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequestInFreshservice.json new file mode 100644 index 00000000..c7f72fda --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateServiceRequestInFreshservice.json @@ -0,0 +1,247 @@ +{ + "name": "CreateServiceRequestInFreshservice", + "fully_qualified_name": "FreshserviceApi.CreateServiceRequestInFreshservice@1.0.0", + "description": "Create a service request in Freshservice.\n\nThis tool is used to submit a new service request in Freshservice. Call this tool when you need to create or initiate a service request in the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "item_id", + "required": true, + "description": "The unique identifier for the item to be requested in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the id of the item that needs to requested" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "requester_email", + "required": true, + "description": "The email address of the requester submitting the service request. If not provided, the request is created on behalf of the authenticated agent.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requester_email" + }, + { + "name": "item_quantity", + "required": false, + "description": "The number of units of the item needed by the requester. Default is 1.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of units of the item needed by the requester. By default it is 1." + }, + "inferrable": true, + "http_endpoint_parameter_name": "quantity" + }, + { + "name": "user_requested_email", + "required": false, + "description": "Email ID of the user for whom the service is requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requested_for_email" + }, + { + "name": "custom_fields_data", + "required": false, + "description": "JSON object containing custom fields associated with the Freshservice entity. Use proper key-value pairs relevant to the request.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "inferrable": true, + "http_endpoint_parameter_name": "custom_fields" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-service-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "item_id", + "description": "the id of the item that needs to requested", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the id of the item that needs to requested" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "quantity", + "tool_parameter_name": "item_quantity", + "description": "The number of units of the item needed by the requester. By default it is 1.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of units of the item needed by the requester. By default it is 1." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requester_email", + "tool_parameter_name": "requester_email", + "description": "the email id of the requester", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requested_for_email", + "tool_parameter_name": "user_requested_email", + "description": "the email id of the user for whom this is requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "custom_fields", + "tool_parameter_name": "custom_fields_data", + "description": "Custom fields that are associated with a Freshservice entity", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Service request that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"id\",\n \"requester_email\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"the id of the item that needs to requested\",\n \"format\": \"int64\",\n \"example\": 140002398473\n },\n \"quantity\": {\n \"type\": \"integer\",\n \"description\": \"The number of units of the item needed by the requester. By default it is 1.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"requester_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"requested_for_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the user for whom this is requested.\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionArticle.json new file mode 100644 index 00000000..c7bf06f4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionArticle.json @@ -0,0 +1,405 @@ +{ + "name": "CreateSolutionArticle", + "fully_qualified_name": "FreshserviceApi.CreateSolutionArticle@1.0.0", + "description": "Create a new solution article in Freshservice.\n\nUse this tool to add a new solution article to Freshservice. Call this tool when you need to document solutions or FAQs within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "article_data", + "required": true, + "description": "JSON object containing solution article details like title, description, category, status, etc. Expected fields include 'id', 'folder_id', 'category_id', 'title', 'description', 'description_text', 'position', 'article_type', 'status', 'thumbs_up', 'thumbs_down', 'created_by', 'created_time', 'updated_by', 'updated_time', 'views', 'search_keywords', and 'tags'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "article_data", + "description": "Article that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Article that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400020394823\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"description\": \"ID of the folder under which the article is listed\",\n \"format\": \"int64\",\n \"example\": 140000394234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400023423\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the solution article\",\n \"example\": \"Unable to connect VPN\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in HTML format\",\n \"example\": \"
Login with AD credentials for VPN
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in plain-text format\",\n \"example\": \"Login with AD credentials for VPN\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The rank of the solution article in the article listing\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"article_type\": {\n \"type\": \"integer\",\n \"description\": \"The type of the article. ( 1 - permanent, 2 - workaround )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the article. ( 1 - draft, 2 - published )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"thumbs_up\": {\n \"type\": \"integer\",\n \"description\": \"Number of upvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 34534\n },\n \"thumbs_down\": {\n \"type\": \"integer\",\n \"description\": \"Number of downvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 43\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who created the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who last updated the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"views\": {\n \"type\": \"integer\",\n \"description\": \"number of views for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"search_keywords\": {\n \"type\": \"array\",\n \"description\": \"Keywords for which this article should be mapped\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"The tags associated to the article\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionCategory.json new file mode 100644 index 00000000..1062ace1 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionCategory.json @@ -0,0 +1,247 @@ +{ + "name": "CreateSolutionCategory", + "fully_qualified_name": "FreshserviceApi.CreateSolutionCategory@1.0.0", + "description": "Create a new solution category in Freshservice.\n\nThis tool is used to create a new solution category in Freshservice. It should be called when you need to organize solutions by adding a new category in the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_category_name", + "required": true, + "description": "The desired name for the new solution category to be created in Freshservice. It should be descriptive and unique.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "solution_category_id", + "required": false, + "description": "The unique identifier for the solution category to be created in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "solution_category_description", + "required": false, + "description": "Provide a description for the solution category.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "solution_category_position", + "required": false, + "description": "The position to display the solution category in Freshservice's category listing.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position." + }, + "inferrable": true, + "http_endpoint_parameter_name": "position" + }, + { + "name": "is_default_category", + "required": false, + "description": "Set to true if the category is a default one shipped with the product; such categories cannot have folders added or be renamed or deleted.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "default_category" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "solution_category_id", + "description": "Unique identifier of the solution category", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "solution_category_name", + "description": "Name of the solution category", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution category" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "solution_category_description", + "description": "Description of the solution category", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "position", + "tool_parameter_name": "solution_category_position", + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "default_category", + "tool_parameter_name": "is_default_category", + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Solution Category that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400092834723\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the solution category\",\n \"example\": \"FAQ\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the solution category\",\n \"example\": \"Employee FAQ\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"default_category\": {\n \"type\": \"boolean\",\n \"description\": \"If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category\",\n \"example\": true\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionFolder.json new file mode 100644 index 00000000..5ae24423 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateSolutionFolder.json @@ -0,0 +1,359 @@ +{ + "name": "CreateSolutionFolder", + "fully_qualified_name": "FreshserviceApi.CreateSolutionFolder@1.0.0", + "description": "Create a new solution folder in Freshservice.\n\nUse this tool to create a new solution folder in Freshservice, helping organize solutions efficiently.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_folder_details", + "required": true, + "description": "JSON object containing details like `id`, `category_id`, `name`, `description`, `position`, `managed_by_group`, `managed_by_agent`, `visibility`, and `default_folder` for creating a solution folder.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution folder" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution folder" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution folder" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position." + }, + "managed_by_group": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group ID who can edit the articles in the folder" + }, + "managed_by_agent": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The agent ID who can edit the articles in the folder" + }, + "visibility": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Requester group IDs that have access to view this folder" + }, + "agent_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group IDs that have access to view this folder" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The department IDs whose members will be able to view the folder" + }, + "all_agents": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all agents can view this folder" + }, + "everyone": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all users can view this folder" + }, + "logged_in_users": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all logged in users can view this folder" + } + }, + "inner_properties": null, + "description": "Users who can view this folder" + }, + "default_folder": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default folder shipped with the product. You can create or rename a default folder." + } + }, + "inner_properties": null, + "description": "Folder that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "solution_folder_details", + "description": "Folder that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution folder" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution folder" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution folder" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position." + }, + "managed_by_group": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group ID who can edit the articles in the folder" + }, + "managed_by_agent": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The agent ID who can edit the articles in the folder" + }, + "visibility": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Requester group IDs that have access to view this folder" + }, + "agent_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group IDs that have access to view this folder" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The department IDs whose members will be able to view the folder" + }, + "all_agents": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all agents can view this folder" + }, + "everyone": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all users can view this folder" + }, + "logged_in_users": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all logged in users can view this folder" + } + }, + "inner_properties": null, + "description": "Users who can view this folder" + }, + "default_folder": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default folder shipped with the product. You can create or rename a default folder." + } + }, + "inner_properties": null, + "description": "Folder that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Folder that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution folder\",\n \"format\": \"int64\",\n \"example\": 14000234234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 140009808\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the solution folder\",\n \"example\": \"Network FAQ\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the solution folder\",\n \"example\": \"Solution Articles for Network related queries\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"managed_by_group\": {\n \"type\": \"integer\",\n \"description\": \"Agent group ID who can edit the articles in the folder\",\n \"format\": \"int32\",\n \"example\": 938453\n },\n \"managed_by_agent\": {\n \"type\": \"integer\",\n \"description\": \"The agent ID who can edit the articles in the folder\",\n \"format\": \"int32\",\n \"example\": 349583\n },\n \"visibility\": {\n \"type\": \"object\",\n \"properties\": {\n \"requester_groups\": {\n \"type\": \"array\",\n \"description\": \"Requester group IDs that have access to view this folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"agent_groups\": {\n \"type\": \"array\",\n \"description\": \"Agent group IDs that have access to view this folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"The department IDs whose members will be able to view the folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"all_agents\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all agents can view this folder\",\n \"example\": true\n },\n \"everyone\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all users can view this folder\",\n \"example\": true\n },\n \"logged_in_users\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all logged in users can view this folder\",\n \"example\": true\n }\n },\n \"description\": \"Users who can view this folder\",\n \"example\": {\n \"requester_groups\": [\n 234234,\n 543444\n ],\n \"agent_groups\": [\n 498034,\n 349534\n ],\n \"departments\": [\n 485792,\n 298732\n ],\n \"all_agents\": false,\n \"everyone\": false,\n \"logged_in_users\": false\n }\n },\n \"default_folder\": {\n \"type\": \"boolean\",\n \"description\": \"If this is a default folder shipped with the product. You can create or rename a default folder.\",\n \"example\": true\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicket.json new file mode 100644 index 00000000..461ef32d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicket.json @@ -0,0 +1,551 @@ +{ + "name": "CreateTicket", + "fully_qualified_name": "FreshserviceApi.CreateTicket@0.2.0", + "description": "Create a new ticket in Freshservice.\n\nUse this tool to create a new support ticket in Freshservice. This is useful for logging customer issues, inquiries, or requests that need resolution.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_details", + "required": true, + "description": "Details of the Freshservice ticket to be created. This includes fields such as subject, description, requester_id, priority, status, and any other relevant ticket information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_details", + "description": "details of the Freshservice Ticket to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "details of the Freshservice Ticket to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTask.json new file mode 100644 index 00000000..4d34975a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTask.json @@ -0,0 +1,400 @@ +{ + "name": "CreateTicketTask", + "fully_qualified_name": "FreshserviceApi.CreateTicketTask@1.0.0", + "description": "Create a new task for a ticket in Freshservice.\n\nUse this tool to add a new task to an existing ticket in Freshservice. It should be called when a new task needs to be organized or managed within a specific ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id_for_task_creation", + "required": true, + "description": "Integer ID of the ticket request for which a new task is to be created.", + "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": "task_details", + "required": true, + "description": "JSON object containing details of the task to be created, such as title, description, status, and due date.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "details of task to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id_for_task_creation", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details", + "description": "details of task to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "details of task to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of task to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTimeEntry.json new file mode 100644 index 00000000..e9a2756d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTicketTimeEntry.json @@ -0,0 +1,374 @@ +{ + "name": "CreateTicketTimeEntry", + "fully_qualified_name": "FreshserviceApi.CreateTicketTimeEntry@1.0.0", + "description": "Create a new time entry on a Freshservice ticket.\n\nUse this tool to log a new time entry for a specific ticket in Freshservice. Useful for tracking time spent on ticket resolution or management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the ticket request for which the time entry will be created.", + "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": "time_entry_details", + "required": true, + "description": "Details of the time entry to be created. Includes attributes like start time, duration, and agent ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTimeEntryForChange.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTimeEntryForChange.json new file mode 100644 index 00000000..0019230d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateTimeEntryForChange.json @@ -0,0 +1,350 @@ +{ + "name": "CreateTimeEntryForChange", + "fully_qualified_name": "FreshserviceApi.CreateTimeEntryForChange@1.0.0", + "description": "Create a new time entry for a change request.\n\nUse this tool to log a time entry associated with a specific change request in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request for which the time entry is to be created.", + "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_entry_details", + "required": true, + "description": "JSON containing details of the time entry, including id, task_id, start_time, and other properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/changes/{change_id}/time_entries", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "details of time entry to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "details of time entry to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"details of time entry to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateVendor.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateVendor.json new file mode 100644 index 00000000..601e9454 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/CreateVendor.json @@ -0,0 +1,412 @@ +{ + "name": "CreateVendor", + "fully_qualified_name": "FreshserviceApi.CreateVendor@1.0.0", + "description": "Creates a new vendor in Freshservice.\n\nThis tool is used to create a new vendor in the Freshservice system. It's suitable for situations where an organization needs to add vendor details for future reference or management. The tool interacts with the Freshservice API to register the vendor and returns information about the created vendor.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_unique_id", + "required": false, + "description": "Integer representing the unique ID of the vendor to be created.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "vendor_name", + "required": false, + "description": "The name of the vendor to be created in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "vendor_description", + "required": false, + "description": "Provide a detailed description of the vendor. This can include services offered, special attributes, or any other relevant information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "primary_contact_unique_id", + "required": false, + "description": "Unique ID of the primary contact. This ID references the contact's requester details such as name, email, and phone.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primary_contact_id" + }, + { + "name": "vendor_address_line1", + "required": false, + "description": "First line of the vendor's address. Specify street name or building information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line1" + }, + { + "name": "vendor_address_line_2", + "required": false, + "description": "Additional address details for the vendor, such as apartment or suite number.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_line2" + }, + { + "name": "vendor_address_city", + "required": false, + "description": "City where the vendor is located. Example: 'New York'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_city" + }, + { + "name": "vendor_address_state", + "required": false, + "description": "State in which the vendor is located. Provide a valid state name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_state" + }, + { + "name": "vendor_country", + "required": false, + "description": "The country where the vendor is located. Input a valid country name or code.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_country" + }, + { + "name": "location_zip_code", + "required": false, + "description": "Zip Code of the vendor's location for address details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + }, + "inferrable": true, + "http_endpoint_parameter_name": "address_zipcode" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "vendor_unique_id", + "description": "Unique ID of the vendor", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "vendor_name", + "description": "Name of the vendor", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "vendor_description", + "description": "Description of the vendor", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primary_contact_id", + "tool_parameter_name": "primary_contact_unique_id", + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line1", + "tool_parameter_name": "vendor_address_line1", + "description": "Address Line 1", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_line2", + "tool_parameter_name": "vendor_address_line_2", + "description": "Address Line 2", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_city", + "tool_parameter_name": "vendor_address_city", + "description": "City", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_state", + "tool_parameter_name": "vendor_address_state", + "description": "State", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_country", + "tool_parameter_name": "vendor_country", + "description": "Country", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "address_zipcode", + "tool_parameter_name": "location_zip_code", + "description": "Zip Code of the location", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the vendor\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the vendor\",\n \"example\": \"Apple\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the vendor\",\n \"example\": \"Apple\"\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"Cupertino\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"Cupertino\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 8a144678..6040b735 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateCsatSurvey.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateCsatSurvey.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeactivateCsatSurvey@1.0.0", + "description": "Deactivate a CSAT survey by its ID.\n\nCall this tool to deactivate a Customer Satisfaction (CSAT) survey in Freshservice using its survey ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "survey_id", "required": true, - "description": "The ID of the CSAT survey you wish to deactivate in Freshservice.", + "description": "The ID of the Customer Satisfaction (CSAT) survey that you want to deactivate in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/deactivate", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateFreshserviceSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateFreshserviceSurvey.json new file mode 100644 index 00000000..42876a7a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateFreshserviceSurvey.json @@ -0,0 +1,115 @@ +{ + "name": "DeactivateFreshserviceSurvey", + "fully_qualified_name": "FreshserviceApi.DeactivateFreshserviceSurvey@1.0.0", + "description": "Deactivate a CSAT survey in Freshservice using its ID.\n\nUse this tool to deactivate a Customer Satisfaction (CSAT) survey in Freshservice by providing the survey's ID. This is helpful when a survey is no longer needed or should not be sent to customers.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "survey_id", + "required": true, + "description": "The integer ID of the CSAT survey 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json index ec5d5f87..126a059b 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteAgentAndTickets@1.0.0", + "description": "Permanently delete an agent and their requested tickets.\n\nUse this tool to permanently delete an agent from the system along with any tickets they have requested.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the agent to permanently delete along with their tickets.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}/forget", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json index 83e17f7f..c1472e36 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteAgentGroup@1.0.0", + "description": "Deletes an Agent Group in Freshservice by ID.\n\nUse this tool to delete an existing agent group in Freshservice by providing its ID. This is useful when you need to manage or reorganize agent groups by removing those that are no longer required.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the agent group you want to delete in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAnnouncement.json new file mode 100644 index 00000000..7e952e94 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAnnouncement.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteAnnouncement", + "fully_qualified_name": "FreshserviceApi.DeleteAnnouncement@1.0.0", + "description": "Delete an announcement by its ID in Freshservice.\n\nUse this tool to delete a specific announcement in Freshservice by providing the announcement ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json index 63a953c4..25dc2ff6 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteAsset@1.0.0", + "description": "Delete an existing asset in Freshservice.\n\nUse this tool to delete an asset from Freshservice when it is no longer needed. This action is irreversible and should be used cautiously.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier for the asset to delete. This is an integer value and must be provided to specify which asset to delete.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json index 69fdc4df..59f66578 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteAssetComponent@1.0.0", + "description": "Delete a specific component from an asset in Freshservice.\n\nUse this tool to delete a specific component from an asset using Freshservice. It requires the asset's display ID and the component ID to successfully process the deletion request.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier for the asset from which the component will be deleted. This must be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "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.", + "description": "The unique identifier of the component to be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json index f0122315..5430db73 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteAssetType@1.0.0", + "description": "Delete an existing asset type from Freshservice.\n\nThis tool is used to delete an asset type in Freshservice. It should be called when an asset type is no longer needed and needs to be removed from the system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier for the asset type to be deleted. It should be an integer matching an existing asset type in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json index 804baa8e..5a6faf20 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteCannedResponse@1.0.0", + "description": "Delete a Canned Response from Freshservice.\n\nUse this tool to delete a specific Canned Response in Freshservice by providing its ID. Ideal for managing and cleaning up unused or outdated responses.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "canned_response_id", "required": true, - "description": "The unique integer ID of the canned response to delete from Freshservice.", + "description": "The unique ID of the canned response you want to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json index 0fb96b22..d770596e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteCannedResponseFolder@1.0.0", + "description": "Deletes a specified Canned Response Folder in Freshservice.\n\nThis tool deletes a Canned Response Folder from Freshservice using the provided folder ID. Use it when you need to remove a specific folder.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique ID of the Canned Response Folder to delete in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFreshservice.json new file mode 100644 index 00000000..b474f460 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFreshservice.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteCannedResponseFreshservice", + "fully_qualified_name": "FreshserviceApi.DeleteCannedResponseFreshservice@1.0.0", + "description": "Delete a specific canned response in Freshservice.\n\nUse this tool to delete a canned response by its ID in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_id", + "required": true, + "description": "The unique ID of the canned response to delete in 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json index 8f49d00c..abb61bd3 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteChangeNote@1.0.0", + "description": "Delete a note from a Change request by ID in Freshservice.\n\nUse this tool to delete a specific note from a Change request in Freshservice by providing the change ID and note ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "change_request_id", "required": true, - "description": "The unique ID of the Change request from which the note will be deleted.", + "description": "The unique identifier of the Change request from which the note is to be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "note_id", "required": true, - "description": "The unique identifier of the note to delete from a Change request in Freshservice.", + "description": "The unique identifier of the note to be deleted from the Change request in Freshservice. This is an integer value.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequest.json new file mode 100644 index 00000000..5d2fd0f4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequest.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteChangeRequest", + "fully_qualified_name": "FreshserviceApi.DeleteChangeRequest@1.0.0", + "description": "Delete a change request by ID from Freshservice.\n\nUse this tool to delete a specific change request from Freshservice by providing the change ID. It confirms the deletion of the request.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique integer 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequestTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequestTask.json new file mode 100644 index 00000000..8ea6e0ef --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeRequestTask.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteChangeRequestTask", + "fully_qualified_name": "FreshserviceApi.DeleteChangeRequestTask@1.0.0", + "description": "Delete a task from a Freshservice change request.\n\nThis tool deletes a specified task from a change request in Freshservice using the change and task IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique integer ID of the change request 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 change" + }, + "inferrable": true, + "http_endpoint_parameter_name": "change_id" + }, + { + "name": "task_id", + "required": true, + "description": "The ID of the task to be deleted from the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTask.json new file mode 100644 index 00000000..59bbfd95 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTask.json @@ -0,0 +1,124 @@ +{ + "name": "DeleteChangeTask", + "fully_qualified_name": "FreshserviceApi.DeleteChangeTask@1.0.0", + "description": "Delete a task from a Change request in Freshservice.\n\nUse this tool to delete a specific task associated with a Change request in Freshservice by providing the Change and Task IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The numeric ID of the change request 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 change" + }, + "inferrable": true, + "http_endpoint_parameter_name": "change_id" + }, + { + "name": "task_id", + "required": true, + "description": "Provide the integer ID of the task to be deleted from the Change request.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTaskFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTaskFreshservice.json new file mode 100644 index 00000000..c560dcab --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTaskFreshservice.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteChangeTaskFreshservice", + "fully_qualified_name": "FreshserviceApi.DeleteChangeTaskFreshservice@1.0.0", + "description": "Delete a specific task from a Freshservice change request.\n\nUse this tool to delete a specific task from a change request in Freshservice by providing the change ID and task ID. It is called when there's a need to remove a task from the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request from which the 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_id", + "required": true, + "description": "ID of the task to be deleted from the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntry.json new file mode 100644 index 00000000..36713c4e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.DeleteChangeTimeEntry@1.0.0", + "description": "Deletes a specific time entry from a change request in Freshservice.\n\nUse this tool to delete a time entry associated with a specific change request in Freshservice. It requires the IDs of the change request and the time entry to process the deletion.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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 is required to specify the change for the deletion process.", + "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": "The unique identifier for the time entry to be deleted 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json index 3cd11933..66265b94 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json @@ -1,11 +1,11 @@ { "name": "DeleteChangeTimeEntryFreshservice", - "fully_qualified_name": "FreshserviceApi.DeleteChangeTimeEntryFreshservice@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteChangeTimeEntryFreshservice@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json index b07778df..22770f34 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteDepartment@1.0.0", + "description": "Deletes a department from Freshservice using its ID.\n\nThis tool is called to delete a specific department (or company in MSP mode) in Freshservice by providing its unique ID. Useful for managing organizational changes and cleaning up obsolete records.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "department_id", "required": true, - "description": "The unique ID of the department to delete from Freshservice.", + "description": "The unique integer ID of the department to delete in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartmentFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartmentFreshservice.json new file mode 100644 index 00000000..7967b8ff --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartmentFreshservice.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteDepartmentFreshservice", + "fully_qualified_name": "FreshserviceApi.DeleteDepartmentFreshservice@1.0.0", + "description": "Delete a department or company in Freshservice by ID.\n\nUse this tool to delete a specific department or company (in MSP Mode) from Freshservice by providing the department ID. It should be called when needing to remove a department permanently.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_id_to_delete", + "required": true, + "description": "Specify the ID of the department or company to be deleted from Freshservice. This ID is required to identify which 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" + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_to_delete", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json index 5ffa671d..39909395 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json @@ -1,11 +1,11 @@ { "name": "DeleteExistingLocation", - "fully_qualified_name": "FreshserviceApi.DeleteExistingLocation@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteExistingLocation@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingProject.json new file mode 100644 index 00000000..134890b9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingProject.json @@ -0,0 +1,91 @@ +{ + "name": "DeleteExistingProject", + "fully_qualified_name": "FreshserviceApi.DeleteExistingProject@1.0.0", + "description": "Delete an existing project in Freshservice.\n\nThis tool deletes a specified project from Freshservice when the project ID is provided. Use this tool to manage project lifecycle and remove projects that are no longer needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The unique integer ID of the project to be deleted.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index e2477c5f..dd3e1655 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingVendor.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingVendor.json @@ -1,11 +1,11 @@ { "name": "DeleteExistingVendor", - "fully_qualified_name": "FreshserviceApi.DeleteExistingVendor@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteExistingVendor@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json index 6c82ea50..e1c0c023 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceAnnouncement@1.0.0", + "description": "Delete an announcement from Freshservice by ID.\n\nUse this tool to delete a specific announcement in Freshservice by providing the announcement ID. It confirms the successful deletion of the announcement.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "announcement_id_to_delete", "required": true, - "description": "The ID of the announcement to delete from Freshservice.", + "description": "ID of the announcement to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json index cce1a05d..8438a948 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json @@ -1,11 +1,11 @@ { "name": "DeleteFreshserviceChange", - "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceChange@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceChange@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblem.json new file mode 100644 index 00000000..1faa9582 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblem.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteFreshserviceProblem", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProblem@1.0.0", + "description": "Delete a problem by ID from Freshservice.\n\nUse this tool to delete a specific problem from Freshservice using its ID. This operation is useful when you need to remove a resolved or irrelevant problem from the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id_to_delete", + "required": true, + "description": "Enter the ID of the problem you want 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_to_delete", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemNote.json new file mode 100644 index 00000000..7744680e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemNote.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteFreshserviceProblemNote", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProblemNote@1.0.0", + "description": "Delete a specific note from a problem in Freshservice.\n\nUse this tool to delete a specific note from a problem in Freshservice by providing the problem ID and note ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique ID of the problem from which you want to delete a note. This ID is required to specify the target 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 ID of 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTask.json new file mode 100644 index 00000000..846e2ee0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTask.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteFreshserviceProblemTask", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProblemTask@1.0.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 when provided with the problem and task IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "ID of the problem to identify which problem the task is associated with 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 be deleted.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTimeEntry.json new file mode 100644 index 00000000..570143d7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProblemTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteFreshserviceProblemTimeEntry", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProblemTimeEntry@1.0.0", + "description": "Delete a specific time entry from a Freshservice problem.\n\nUse this tool to delete a specific time entry associated with a problem in Freshservice by providing the problem and time entry IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "ID of the problem from which the time entry will be deleted. This should be an integer value.", + "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 numeric ID of the time entry to be deleted. This is required to identify which time entry to remove from the specified Freshservice 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json index 4099a515..29b32784 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProject@1.0.0", + "description": "Delete an existing project in Freshservice.\n\nUse this tool to delete a specified project by its ID in the Freshservice platform. Ideal for managing and removing outdated or unnecessary projects.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier of the project to be deleted in Freshservice. This should be a numeric value.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json index a3adacd3..d281f784 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceRelease@1.0.0", + "description": "Delete a release from Freshservice by its ID.\n\nUse this tool to delete a specific release in Freshservice when you have the release ID available. This is useful for managing and cleaning up outdated or erroneous releases in the system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "release_id_for_deletion", + "name": "release_id", "required": true, - "description": "The unique integer ID of the release to delete from Freshservice.", + "description": "The unique integer ID of the release to delete in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "release_id", - "tool_parameter_name": "release_id_for_deletion", + "tool_parameter_name": "release_id", "description": "ID of release to retrieve", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceSolutionArticle.json new file mode 100644 index 00000000..5a6e2411 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceSolutionArticle.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteFreshserviceSolutionArticle", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceSolutionArticle@1.0.0", + "description": "Deletes a solution article from Freshservice by ID.\n\nUse this tool to delete a specific solution article from Freshservice by providing the article ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_article_id", + "required": true, + "description": "The unique ID of the solution article to delete 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceTicketTimeEntry.json new file mode 100644 index 00000000..854e4930 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceTicketTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteFreshserviceTicketTimeEntry", + "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceTicketTimeEntry@1.0.0", + "description": "Delete a time entry from a Freshservice ticket.\n\nUse this tool to remove a specific time entry from a ticket in Freshservice. Ideal for when a time entry needs to be corrected or removed from a ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique identifier of the Freshservice ticket from which the time entry 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 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.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteLocation.json new file mode 100644 index 00000000..1e2bbf4e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteLocation.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteLocation", + "fully_qualified_name": "FreshserviceApi.DeleteLocation@1.0.0", + "description": "Deletes an existing location by ID.\n\nUse this tool to delete a specified location by providing its ID in the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_id", + "required": true, + "description": "The unique ID of the location to be deleted 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json index cd7a67e0..f96a9ae7 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProblem@1.0.0", + "description": "Delete a specified problem from Freshservice.\n\nUse this tool to delete a problem from Freshservice by providing the problem ID. Ideal for removing resolved or irrelevant issues from the system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "problem_id", + "name": "problem_id_to_delete", "required": true, - "description": "The unique ID of the problem to delete from Freshservice.", + "description": "The ID of the problem to delete in Freshservice. Provide a valid integer value.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "problem_id", - "tool_parameter_name": "problem_id", + "tool_parameter_name": "problem_id_to_delete", "description": "ID of problem to retrieve", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json index eec22a29..2efef52f 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProblemNote@1.0.0", + "description": "Delete a specific note from a problem in Freshservice.\n\nUse this tool to delete a note from a problem in Freshservice by specifying the problem ID and note ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the problem from which the note will be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "note_id", "required": true, - "description": "The unique identifier for the note to be deleted from a problem in Freshservice.", + "description": "The unique identifier of the note to be deleted from a problem in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json index 17f57c8f..26f514e0 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProblemTask@1.0.0", + "description": "Delete a specific task from a problem in Freshservice.\n\nUse this tool to delete a task associated with a specific problem in Freshservice by providing the problem and task IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "problem_id", "required": true, - "description": "The unique ID of the problem from which the task will be deleted.", + "description": "The unique identifier for the problem from which the task will be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "task_id", "required": true, - "description": "The unique identifier of the task to be deleted in Freshservice.", + "description": "The unique integer ID of the task to be deleted from the specified problem.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json index aa1bb127..9f3454a0 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProblemTimeEntry@1.0.0", + "description": "Delete a time entry from a specified problem in Freshservice.\n\nUse this tool to delete a specific time entry associated with a problem in Freshservice by providing the problem and time entry IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "problem_identifier", + "name": "problem_id", "required": true, - "description": "The unique ID representing the problem from which you want to delete a time entry.", + "description": "The unique identifier for the problem from which you want to delete a time entry. This should be an integer value.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "time_entry_id", "required": true, - "description": "The unique identifier for the time entry to be deleted from the specified problem.", + "description": "The unique integer ID of the time entry to be deleted from the specific problem in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}", @@ -87,7 +87,7 @@ "parameters": [ { "name": "problem_id", - "tool_parameter_name": "problem_identifier", + "tool_parameter_name": "problem_id", "description": "ID of problem", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json index c31ba4aa..0a33df14 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProduct@1.0.0", + "description": "Delete a product from the Freshservice catalog.\n\nUse this tool to remove an existing product from the Freshservice Product Catalog. Call it when you need to delete a product permanently.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "product_identifier", + "name": "product_id", "required": true, - "description": "The unique ID of the product to be deleted from the Freshservice catalog.", + "description": "The unique identifier of the product to be deleted from the catalog. This should be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -44,35 +44,28 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}", + "url": "https://api.freshservice.com/api/v2/products/{product_id}", "http_method": "DELETE", "headers": {}, "parameters": [ { "name": "product_id", - "tool_parameter_name": "product_identifier", + "tool_parameter_name": "product_id", "description": "", "value_schema": { "val_type": "integer", @@ -90,23 +83,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProductCatalogItem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProductCatalogItem.json new file mode 100644 index 00000000..47b84758 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProductCatalogItem.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteProductCatalogItem", + "fully_qualified_name": "FreshserviceApi.DeleteProductCatalogItem@1.0.0", + "description": "Delete a product from the catalog.\n\nUse this tool to remove an existing product from the Freshservice Product Catalog. Useful for managing inventory or updating product listings by deleting outdated or irrelevant entries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_id_to_delete", + "required": true, + "description": "The ID of the product to delete from the catalog. It should be an integer representing the unique identifier of the product.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_id_to_delete", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json index 11c7d98f..46a98f03 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteProjectTask@1.0.0", + "description": "Delete a project task in Freshservice.\n\nThis tool deletes an existing project task in Freshservice. Use it when you need to remove a specific task from a project by providing the project and task identifiers.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier of the project from which the task should be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "task_id_to_delete", "required": true, - "description": "ID of the task to be deleted from a project in Freshservice.", + "description": "ID of the task to be deleted in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json index e940049d..66f26b9e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeletePurchaseOrder@1.0.0", + "description": "Delete a purchase order in Freshservice by ID.\n\nUse this tool to delete a specific purchase order from Freshservice by providing its ID. This is useful when a purchase order needs to be permanently removed from the system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique integer ID of the purchase order to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRelease.json new file mode 100644 index 00000000..6119af42 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRelease.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteRelease", + "fully_qualified_name": "FreshserviceApi.DeleteRelease@1.0.0", + "description": "Delete a release by its ID in Freshservice.\n\nThis tool deletes a specific release from Freshservice using its unique ID. Use this when you need to remove a release record from the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id_to_delete", + "required": true, + "description": "The unique ID of the release to delete in 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_to_delete", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNote.json new file mode 100644 index 00000000..bfba16f5 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNote.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteReleaseNote", + "fully_qualified_name": "FreshserviceApi.DeleteReleaseNote@1.0.0", + "description": "Deletes a specific release note in Freshservice.\n\nUse this tool to delete a note associated with a release in Freshservice by specifying the release and note IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique integer ID of the release in Freshservice whose note is to be deleted.", + "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 release note to be deleted 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json index e6be2e96..4f6c5bd6 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json @@ -1,11 +1,11 @@ { "name": "DeleteReleaseNoteFreshservice", - "fully_qualified_name": "FreshserviceApi.DeleteReleaseNoteFreshservice@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteReleaseNoteFreshservice@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json index d2c6ac71..74beae06 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteReleaseTask@1.0.0", + "description": "Delete a specific task from a release in Freshservice.\n\nUse this tool to delete a task from a specific release in Freshservice by providing the release ID and task ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique ID of the release from which the task should be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "release_id" }, { - "name": "task_id_integer", + "name": "task_id", "required": true, - "description": "The integer ID of the task to be deleted from the release.", + "description": "The unique identifier for the task within a release to be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}", @@ -105,7 +105,7 @@ }, { "name": "task_id", - "tool_parameter_name": "task_id_integer", + "tool_parameter_name": "task_id", "description": "ID of task", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json index bc40416f..b90134d9 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteReleaseTimeEntry@1.0.0", + "description": "Delete a specific time entry from a release in Freshservice.\n\nUse this tool to delete a specific time entry associated with a release in Freshservice by providing the release ID and time entry ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "release_id", "required": true, - "description": "The unique integer ID of the release from which to delete the time entry.", + "description": "The unique identifier of the release from which the time entry will be deleted. This ID is required to specify the release in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "time_entry_id", "required": true, - "description": "ID of the time entry to be deleted from the release in Freshservice.", + "description": "The unique integer ID of the time entry to be deleted from a release in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequester.json new file mode 100644 index 00000000..a0b6b5c3 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequester.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteRequester", + "fully_qualified_name": "FreshserviceApi.DeleteRequester@1.0.0", + "description": "Delete a requester from Freshservice by ID.\n\nUse this tool to remove a requester from Freshservice using their unique ID. It should be called when a requester needs to be permanently deleted from the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "The unique ID of the requester to be deleted from Freshservice. This ID should be an integer and is required to identify which requester needs to be removed.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json index 020cbeff..7aebf863 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteRequesterAndTickets@1.0.0", + "description": "Permanently delete a requester and their tickets in Freshservice.\n\nThis tool is used to permanently remove a requester and all of their associated tickets from Freshservice. It should be called when you need to completely erase a requester's data, including all their ticket history.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/forget", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFreshservice.json new file mode 100644 index 00000000..4d974777 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFreshservice.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteRequesterFreshservice", + "fully_qualified_name": "FreshserviceApi.DeleteRequesterFreshservice@1.0.0", + "description": "Delete a requester from Freshservice by ID.\n\nUse this tool to delete a specific requester from Freshservice by providing their ID. This tool is useful when you need to remove a user from the service.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "ID of the requester to delete from Freshservice. This must 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json index da4407f4..bb1727f2 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json @@ -1,11 +1,11 @@ { "name": "DeleteRequesterFromFreshservice", - "fully_qualified_name": "FreshserviceApi.DeleteRequesterFromFreshservice@0.1.0", + "fully_qualified_name": "FreshserviceApi.DeleteRequesterFromFreshservice@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json index e9761166..32b2041e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteSolutionArticle@1.0.0", + "description": "Delete a specific solution article from Freshservice.\n\nUse this tool to delete a solution article in Freshservice by providing its ID. This can be useful for managing outdated or incorrect articles within the service.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_article_id", "required": true, - "description": "ID of the solution article to be deleted from Freshservice.", + "description": "ID of the solution article to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json index 11ffb29b..39e6c7d2 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteSolutionCategory@1.0.0", + "description": "Delete a solution category in Freshservice by ID.\n\nUse this tool to delete a specific solution category from Freshservice using the category ID. This is useful when you need to remove outdated or incorrect categories from your knowledge base.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_category_id", "required": true, - "description": "The unique ID of the solution category to be deleted from Freshservice.", + "description": "ID of the solution category to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json index e788930d..baab2a90 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteSolutionFolder@1.0.0", + "description": "Delete a solution folder from Freshservice.\n\nUse this tool to delete a solution folder by its ID in Freshservice when cleanup or reorganization is needed.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_folder_id", "required": true, - "description": "ID of the solution folder to be deleted from Freshservice.", + "description": "ID of the solution folder to delete from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json index 3ffc0300..d079a529 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteSurvey@1.0.0", + "description": "Delete a survey and its responses from Freshservice.\n\nUse this tool to delete a specific survey from Freshservice by providing the survey ID. This action will remove the survey along with all its underlying responses.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "survey_id_to_delete", "required": true, - "description": "The ID of the survey you wish to delete from Freshservice.", + "description": "The ID of the survey you wish to delete from Freshservice, including all underlying responses.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurveyById.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurveyById.json new file mode 100644 index 00000000..89b447f2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurveyById.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteSurveyById", + "fully_qualified_name": "FreshserviceApi.DeleteSurveyById@1.0.0", + "description": "Deletes a survey and its responses by its ID.\n\nUse this tool to delete a specific survey in Freshservice using its ID. This action also removes all underlying responses to the survey.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "survey_id", + "required": true, + "description": "The unique ID of the survey to delete from Freshservice. This ID will be used to identify and remove the survey along with all its responses.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketConversation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketConversation.json new file mode 100644 index 00000000..cb757b50 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketConversation.json @@ -0,0 +1,124 @@ +{ + "name": "DeleteTicketConversation", + "fully_qualified_name": "FreshserviceApi.DeleteTicketConversation@1.0.0", + "description": "Remove a conversation from a Freshservice ticket.\n\nUse this tool to delete a specific conversation from a ticket in Freshservice by providing the ticket and conversation IDs. This is helpful for managing and cleaning up conversations within support tickets.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "ID of the Freshservice ticket from which the conversation should be deleted.", + "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", + "required": true, + "description": "Provide the ID of the reply or note to delete.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/tickets/{ticket_id}/conversations/{conversation_id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "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", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index e21d64bd..581844b9 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteTicketTask@1.0.0", + "description": "Deletes a task from a Freshservice ticket.\n\nThis tool deletes a specific task associated with a ticket in Freshservice, identified by the ticket and task ID. Use this to manage and update tasks on tickets efficiently.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "ticket_id", + "name": "ticket_identifier", "required": true, - "description": "The unique ID of the ticket from which you want to delete a task.", + "description": "The unique integer ID of the ticket containing the task to be deleted.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "task_id", "required": true, - "description": "The unique identifier for the task to be deleted from the ticket.", + "description": "The unique ID of the task to delete from a Freshservice ticket.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}", @@ -87,7 +87,7 @@ "parameters": [ { "name": "ticket_id", - "tool_parameter_name": "ticket_id", + "tool_parameter_name": "ticket_identifier", "description": "ID of ticket", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json index df897828..19490907 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.DeleteTicketTimeEntry@1.0.0", + "description": "Delete a time entry from a Freshservice ticket.\n\nUse this tool to delete a specific time entry from a ticket in Freshservice when it is no longer needed or was added incorrectly.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier of the ticket from which the time entry will be deleted. Provide a valid ticket ID.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "time_entry_id", "required": true, - "description": "The unique integer ID of the time entry to be deleted from the Freshservice ticket.", + "description": "The ID of the time entry to be deleted from the ticket.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntryFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntryFreshservice.json new file mode 100644 index 00000000..51417f67 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntryFreshservice.json @@ -0,0 +1,124 @@ +{ + "name": "DeleteTicketTimeEntryFreshservice", + "fully_qualified_name": "FreshserviceApi.DeleteTicketTimeEntryFreshservice@1.0.0", + "description": "Delete a time entry from a Freshservice ticket.\n\nUse this tool to delete a specific time entry associated with a ticket in Freshservice. It requires the ticket ID and time entry ID to remove the entry.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique identifier of the Freshservice ticket from which the time entry will be deleted.", + "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 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteVendor.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteVendor.json new file mode 100644 index 00000000..f9662ab9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteVendor.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteVendor", + "fully_qualified_name": "FreshserviceApi.DeleteVendor@1.0.0", + "description": "Delete an existing vendor in Freshservice.\n\nThis tool deletes a specified vendor in Freshservice. It should be called when a user needs to remove a vendor from the system using the vendor's unique ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_id", + "required": true, + "description": "The unique integer ID of the vendor to be deleted 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditFreshserviceTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditFreshserviceTicket.json new file mode 100644 index 00000000..2b0443cb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditFreshserviceTicket.json @@ -0,0 +1,584 @@ +{ + "name": "EditFreshserviceTicket", + "fully_qualified_name": "FreshserviceApi.EditFreshserviceTicket@1.0.0", + "description": "Edit a Freshservice ticket efficiently.\n\nThis tool is used to update the details of an existing ticket in Freshservice. It should be called when modifications or updates to a ticket's information are needed, such as changing the status, priority, or other relevant ticket details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the Freshservice ticket to update. 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 updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "ticket_details", + "required": true, + "description": "JSON object with fields for updating the ticket, such as status, priority, email lists, escalations, timestamps, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "Details of the ticket to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id", + "description": "ID of the ticket to be updated", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the ticket to be updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "ticket_details", + "description": "Details of the ticket to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "Details of the ticket to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the ticket to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added in the 'cc' field of the incoming ticket email\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fwd_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while forwarding a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"reply_cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Email addresses added while replying to a ticket\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fr_escalated\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been escalated as a result of the first response time being breached\",\n \"readOnly\": true,\n \"example\": true\n },\n \"spam\": {\n \"type\": \"boolean\",\n \"description\": \"Set to 'true' if the ticket has been marked as spam\",\n \"readOnly\": true,\n \"example\": true\n },\n \"priority\": {\n \"type\": \"number\",\n \"description\": \"Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4.\",\n \"example\": 2.0\n },\n \"requester_id\": {\n \"type\": \"number\",\n \"description\": \"User ID of the requester.\",\n \"example\": 1400023894234\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10\",\n \"example\": 1.0\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5\",\n \"example\": 2.0\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Ticket\",\n \"example\": \"Printer not connected\\\"\"\n },\n \"id\": {\n \"type\": \"number\",\n \"description\": \"Unique ID of the ticket\",\n \"readOnly\": true,\n \"example\": 14000239432\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \\u2018incident\\u2019 as of now]\",\n \"example\": \"Incident\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"fr_due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the first response is due\",\n \"format\": \"date_time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"is_escalated\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"description\": {\n \"type\": \"string\",\n \"example\": \"
How do I connect printer?
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the ticket in plain text\",\n \"example\": \"How do I connect printer?\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"choice\": \"First Choice\",\n \"employee_id\": \"E1234\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the ticket was last updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket\",\n \"example\": [\n \"Hardware\",\n \"Network\",\n \"VPN\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"Ticket attachments. The total size of these attachments cannot exceed 15MB\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditTicketConversation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditTicketConversation.json new file mode 100644 index 00000000..c484bf34 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/EditTicketConversation.json @@ -0,0 +1,521 @@ +{ + "name": "EditTicketConversation", + "fully_qualified_name": "FreshserviceApi.EditTicketConversation@1.0.0", + "description": "Edit a conversation in a Freshservice ticket.\n\nUse this tool to edit the conversation on an existing Freshservice ticket. It is useful for updating information, correcting errors, or adding new details to a specific conversation within a ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_identifier", + "required": true, + "description": "Integer representing the ID of the ticket whose conversation needs editing.", + "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 deleted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "conversation_id", + "required": true, + "description": "ID of the reply or note that needs to be updated in the 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 updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "conversation_id" + }, + { + "name": "conversation_details", + "required": true, + "description": "JSON object containing details like IDs, body, timestamps, and email details for the conversation to be updated.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the conversatoin" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "source": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Source of the note, 0-email, 1-form, 2-note, 3-status, 4-meta, 5-feedback, 6-forward_email)" + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if a particular conversation should appear as being created from the outside (i.e., not through the web portal)" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the conversation is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the conversation is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "change_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the change to which the note belongs" + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the note belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the conversation to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations/{conversation_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_identifier", + "description": "ID of the ticket for which conversation has to be deleted", + "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 deleted" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "conversation_id", + "tool_parameter_name": "conversation_id", + "description": "ID of the reply or note that needs to be updated", + "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 updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "conversation_details", + "description": "details of the conversation to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the conversatoin" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "source": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Source of the note, 0-email, 1-form, 2-note, 3-status, 4-meta, 5-feedback, 6-forward_email)" + }, + "incoming": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if a particular conversation should appear as being created from the outside (i.e., not through the web portal)" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the conversation is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the conversation is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "change_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the change to which the note belongs" + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the note belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the conversation to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the conversation to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the conversatoin\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140003948573\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000495822\n },\n \"source\": {\n \"type\": \"integer\",\n \"description\": \"Source of the note, 0-email, 1-form, 2-note, 3-status, 4-meta, 5-feedback, 6-forward_email)\",\n \"format\": \"int32\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"incoming\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if a particular conversation should appear as being created from the outside (i.e., not through the web portal)\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the conversation is created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the conversation is updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"body\": {\n \"type\": \"string\",\n \"example\": \"

Thanks for swift response

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"example\": \"Thanks for swift response\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"readOnly\": true,\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n },\n \"change_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the change to which the note belongs\",\n \"format\": \"int64\",\n \"example\": 140003498\n },\n \"ticket_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the ticket to which the note belongs\",\n \"format\": \"int64\",\n \"example\": 140002938232\n },\n \"from_email\": {\n \"type\": \"string\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"to_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the conversation must be sent\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses which must be copied on while sending the conversation\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"bcc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which a blind copy must be sent\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAgentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAgentFields.json new file mode 100644 index 00000000..64dd8d30 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAgentFields.json @@ -0,0 +1,148 @@ +{ + "name": "FetchAgentFields", + "fully_qualified_name": "FreshserviceApi.FetchAgentFields@1.0.0", + "description": "Retrieve all agent fields in Freshservice.\n\nUse this tool to get a complete list of agent fields from Freshservice. This could be useful for understanding the available fields when managing agents.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify 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 list of agent fields.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json index 1d4b32b4..103a5c90 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json @@ -1,11 +1,11 @@ { "name": "FetchAllVendors", - "fully_qualified_name": "FreshserviceApi.FetchAllVendors@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchAllVendors@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json index 5e84ac27..8c192d3c 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.FetchAnnouncementDetails@1.0.0", + "description": "Retrieves announcement details by ID from Freshservice.\n\nUse this tool to obtain detailed information about a specific announcement in Freshservice by providing its ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "announcement_id", "required": true, - "description": "The unique integer ID of the announcement to retrieve from Freshservice.", + "description": "ID of the announcement to retrieve from Freshservice. This should be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchBusinessHoursConfigs.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchBusinessHoursConfigs.json new file mode 100644 index 00000000..d41bea10 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchBusinessHoursConfigs.json @@ -0,0 +1,148 @@ +{ + "name": "FetchBusinessHoursConfigs", + "fully_qualified_name": "FreshserviceApi.FetchBusinessHoursConfigs@1.0.0", + "description": "Retrieve all Business Hours configurations.\n\nCall this tool to get a detailed list of all business hours configurations from Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify 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 of the Business Hours configurations 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" + } + ] + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchChangeTaskDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchChangeTaskDetails.json new file mode 100644 index 00000000..c117cffb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchChangeTaskDetails.json @@ -0,0 +1,148 @@ +{ + "name": "FetchChangeTaskDetails", + "fully_qualified_name": "FreshserviceApi.FetchChangeTaskDetails@1.0.0", + "description": "Retrieve details of a task for a specific change request.\n\nUse this tool to obtain information about a specific task associated with a change request in Freshservice. It is useful for tracking task status, assignees, and other task-related information within a change.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to retrieve the specific task details from Freshservice.", + "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_id", + "required": true, + "description": "Specify the unique ID of the task within the change request 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceDepartment.json new file mode 100644 index 00000000..e3f1901c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceDepartment.json @@ -0,0 +1,91 @@ +{ + "name": "FetchFreshserviceDepartment", + "fully_qualified_name": "FreshserviceApi.FetchFreshserviceDepartment@1.0.0", + "description": "Retrieve Freshservice department details by ID.\n\nCall this tool to fetch detailed information about a specific department from Freshservice using its unique ID. Useful for retrieving departmental data in various contexts, including viewing or updating records.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_id", + "required": true, + "description": "The unique ID of the department to retrieve from Freshservice.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceProblems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceProblems.json new file mode 100644 index 00000000..5c48b509 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchFreshserviceProblems.json @@ -0,0 +1,157 @@ +{ + "name": "FetchFreshserviceProblems", + "fully_qualified_name": "FreshserviceApi.FetchFreshserviceProblems@1.0.0", + "description": "Retrieve a list of all Problems in Freshservice.\n\nUse this tool to get detailed information about all the problems in your Freshservice account. It provides a comprehensive list of current issues being tracked.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "retrieve_problems_updated_since", + "required": false, + "description": "Retrieve problems updated since this date (YYYY-MM-DD format).", + "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": "number_of_problems_per_page", + "required": false, + "description": "Number of problems 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 problems 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 when paginating through 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/problems", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "updated_since", + "tool_parameter_name": "retrieve_problems_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": "number_of_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", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 334dfa3f..82fb23b6 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchLocationDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchLocationDetails.json @@ -1,11 +1,11 @@ { "name": "FetchLocationDetails", - "fully_qualified_name": "FreshserviceApi.FetchLocationDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchLocationDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingFormFields.json new file mode 100644 index 00000000..116bfaa9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingFormFields.json @@ -0,0 +1,417 @@ +{ + "name": "FetchOnboardingFormFields", + "fully_qualified_name": "FreshserviceApi.FetchOnboardingFormFields@1.0.0", + "description": "Retrieve all fields from the onboarding request form.\n\nUse this tool to get a list of fields contained in the onboarding initiator form via Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_form_request_body", + "required": false, + "description": "A JSON structure defining fields for the onboarding initiator form, including placeholder, label, name, position, whether it's required, default values, field type, dynamic sections, choices, and sections.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-onboarding-request-form'.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/onboarding_requests/form", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "onboarding_form_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"content\": {\n \"*/*\": {\n \"schema\": {\n \"required\": [\n \"choices\",\n \"default\",\n \"dynamic_sections\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\",\n \"sections\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"dynamic_sections\": {\n \"type\": \"boolean\"\n },\n \"choices\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"sections\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"section_fields\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"data_source\",\n \"default\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"data_source\": {\n \"type\": \"number\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"description\": \"\",\n \"x-examples\": {\n \"example-1\": {\n \"placeholder\": \"Enter Heirachy\",\n \"label\": \"Hierarchy\",\n \"name\": \"cf_hierarchy\",\n \"position\": 10,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_dropdown\",\n \"dynamic_sections\": true,\n \"choices\": [\n \"L3\",\n \"L2\",\n \"L1\"\n ],\n \"sections\": [\n {\n \"values\": [\n \"L3\",\n \"L2\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets\",\n \"name\": \"cf_assets\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location\",\n \"name\": \"cf_location\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n },\n {\n \"values\": [\n \"L1\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets_2\",\n \"name\": \"cf_asset2_@\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location_2\",\n \"name\": \"cf_location_2\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n }\n ]\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequest.json new file mode 100644 index 00000000..2d48f098 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequest.json @@ -0,0 +1,115 @@ +{ + "name": "FetchOnboardingRequest", + "fully_qualified_name": "FreshserviceApi.FetchOnboardingRequest@1.0.0", + "description": "Retrieve a specific onboarding request by ID.\n\nUse this tool to get details about a specific onboarding request from Freshservice by providing the request ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_request_id", + "required": true, + "description": "The ID number representing the specific onboarding request to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequestFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequestFreshservice.json new file mode 100644 index 00000000..23ba402e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingRequestFreshservice.json @@ -0,0 +1,115 @@ +{ + "name": "FetchOnboardingRequestFreshservice", + "fully_qualified_name": "FreshserviceApi.FetchOnboardingRequestFreshservice@1.0.0", + "description": "Retrieve a specific onboarding request from Freshservice.\n\nUse this tool to access the details of a particular onboarding request by providing its ID. It is useful for tracking the status and specifics of new employee onboarding processes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_request_id", + "required": true, + "description": "The Display ID for the specific onboarding request to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingTickets.json new file mode 100644 index 00000000..f7407714 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchOnboardingTickets.json @@ -0,0 +1,80 @@ +{ + "name": "FetchOnboardingTickets", + "fully_qualified_name": "FreshserviceApi.FetchOnboardingTickets@1.0.0", + "description": "Retrieve tickets for specific onboarding requests.\n\nThis tool fetches details of FreshService Tickets linked to a particular Onboarding Request. Use it to access related ticket information based on the onboarding request ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchProductDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchProductDetails.json new file mode 100644 index 00000000..ebfc4707 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchProductDetails.json @@ -0,0 +1,91 @@ +{ + "name": "FetchProductDetails", + "fully_qualified_name": "FreshserviceApi.FetchProductDetails@1.0.0", + "description": "Retrieve product details from the catalog.\n\nUse this tool to obtain specific information about a product by providing its product ID from the Freshservice Product Catalog.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "The ID of the product to retrieve from the Freshservice catalog. 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": "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseDetails.json new file mode 100644 index 00000000..b9940d41 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseDetails.json @@ -0,0 +1,115 @@ +{ + "name": "FetchReleaseDetails", + "fully_qualified_name": "FreshserviceApi.FetchReleaseDetails@1.0.0", + "description": "Retrieve release details using a release ID from Freshservice.\n\nUse this tool to get detailed information about a specific release by providing its ID. It accesses the Freshservice platform to fetch the relevant release data.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_identifier", + "required": true, + "description": "The ID of the release to retrieve from Freshservice. This should be an integer value that uniquely identifies the release.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json index 5e90e175..6e74d836 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json @@ -1,11 +1,11 @@ { "name": "FetchReleaseNote", - "fully_qualified_name": "FreshserviceApi.FetchReleaseNote@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchReleaseNote@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json index 290201e3..b8ccc6e0 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json @@ -1,11 +1,11 @@ { "name": "FetchReleaseTimeEntry", - "fully_qualified_name": "FreshserviceApi.FetchReleaseTimeEntry@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchReleaseTimeEntry@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchRequesterInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchRequesterInfo.json new file mode 100644 index 00000000..322f5ecd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchRequesterInfo.json @@ -0,0 +1,115 @@ +{ + "name": "FetchRequesterInfo", + "fully_qualified_name": "FreshserviceApi.FetchRequesterInfo@1.0.0", + "description": "Retrieve requester details using their ID from Freshservice.\n\nUse this tool to get detailed information about a requester by providing their ID through Freshservice's API.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "Integer representing the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchSupportTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchSupportTickets.json new file mode 100644 index 00000000..02390c64 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchSupportTickets.json @@ -0,0 +1,256 @@ +{ + "name": "FetchSupportTickets", + "fully_qualified_name": "FreshserviceApi.FetchSupportTickets@1.0.0", + "description": "Fetch the list of all support tickets in Freshservice.\n\nUse this tool to retrieve a list of all support tickets from Freshservice. It can be helpful for viewing or managing support requests.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_filter_type", + "required": false, + "description": "Pre-defined filters to categorize tickets. Available 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": "filter_by_requester_email", + "required": false, + "description": "Filter tickets by the 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "filter_by_requester_id", + "required": false, + "description": "Filter tickets by a specific requester using their unique 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": "updated_since_datetime", + "required": false, + "description": "Filter tickets updated after this datetime (ISO 8601 format, e.g., '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": "include_fields_in_response", + "required": false, + "description": "Specify fields to include in the response, such as 'stats' for ticket status times or 'requester' for requester details.", + "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": "Sort the list of tickets. 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": "filter_by_requester_email", + "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": "updated_since_datetime", + "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": "include_fields_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index a66935b0..b2d701bf 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketDetails.json @@ -1,11 +1,11 @@ { "name": "FetchTicketDetails", - "fully_qualified_name": "FreshserviceApi.FetchTicketDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchTicketDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json index 1eba7f45..a89af927 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json @@ -1,11 +1,11 @@ { "name": "FetchTicketList", - "fully_qualified_name": "FreshserviceApi.FetchTicketList@0.1.0", + "fully_qualified_name": "FreshserviceApi.FetchTicketList@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -121,10 +121,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -132,13 +132,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", @@ -256,14 +256,6 @@ ], "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", @@ -271,7 +263,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketLocation.json new file mode 100644 index 00000000..3336fe63 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketLocation.json @@ -0,0 +1,115 @@ +{ + "name": "FetchTicketLocation", + "fully_qualified_name": "FreshserviceApi.FetchTicketLocation@1.0.0", + "description": "Retrieve details of a specific location by ID.\n\nThis tool retrieves detailed information about a specific location using its ID. It should be used when needing to fetch data related to a particular location in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_id", + "required": true, + "description": "The ID of the location to retrieve. This should be an integer representing the specific location's unique identifier 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTaskDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTaskDetails.json new file mode 100644 index 00000000..0f18627f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTaskDetails.json @@ -0,0 +1,124 @@ +{ + "name": "FetchTicketTaskDetails", + "fully_qualified_name": "FreshserviceApi.FetchTicketTaskDetails@1.0.0", + "description": "Retrieve task details from a Freshservice ticket.\n\nThis tool fetches the details of a specific task associated with a ticket in Freshservice, using the ticket and task IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The ID of the ticket request 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 ticket request" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "task_id", + "required": true, + "description": "The unique integer ID of the task you want to retrieve from a Freshservice 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTimeEntry.json new file mode 100644 index 00000000..790640b1 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "FetchTicketTimeEntry", + "fully_qualified_name": "FreshserviceApi.FetchTicketTimeEntry@1.0.0", + "description": "Retrieve a specific time entry for a ticket in Freshservice.\n\nThis tool is used to fetch details of a specific time entry associated with a ticket in Freshservice by providing the ticket and time entry IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The unique integer ID of the ticket request for which the time entry details are needed.", + "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": "The unique identifier for the time entry you want to retrieve details for.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FreshserviceCreateProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FreshserviceCreateProject.json new file mode 100644 index 00000000..b14e8e1d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FreshserviceCreateProject.json @@ -0,0 +1,285 @@ +{ + "name": "FreshserviceCreateProject", + "fully_qualified_name": "FreshserviceApi.FreshserviceCreateProject@1.0.0", + "description": "Create a new project in Freshservice.\n\nCall this tool to create a new project in Freshservice. Ideal for setting up project management tasks or when beginning a new initiative within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_details", + "required": true, + "description": "JSON object containing details of the project to be created, including id, title, description, status, priority, owner_id, user_id, start_date, end_date, archived, and closed_at.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/projects", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "project_details", + "description": "project that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"project that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 13298\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the project\",\n \"example\": \"Solution Articles for Ticket\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in HTML format\",\n \"example\": \"
Publish solution articles for Ticket
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in text format\",\n \"readOnly\": true,\n \"example\": \"Publish solution articles for Ticket\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the project\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the project\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the project\",\n \"format\": \"int64\",\n \"example\": 43423\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"User who created the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 123123\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-04-01T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-30T07:16:45Z\"\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Project archived status\",\n \"readOnly\": true,\n \"example\": true\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the project\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-11T07:16:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentFields.json new file mode 100644 index 00000000..7b0bc02d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentFields.json @@ -0,0 +1,148 @@ +{ + "name": "GetAgentFields", + "fully_qualified_name": "FreshserviceApi.GetAgentFields@1.0.0", + "description": "Retrieve all agent fields in Freshservice.\n\nFetches and returns a list of all agent fields available in Freshservice, useful for managing configurations or data related to agents.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify 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", + "required": false, + "description": "The page number to retrieve in the paginated list of agent fields.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroup.json new file mode 100644 index 00000000..362d7aab --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroup.json @@ -0,0 +1,91 @@ +{ + "name": "GetAgentGroup", + "fully_qualified_name": "FreshserviceApi.GetAgentGroup@1.0.0", + "description": "Retrieve Agent Group details from Freshservice using an ID.\n\nUse this tool to get detailed information about an Agent Group from Freshservice by providing its unique ID. It is useful for fetching specifics of a group when managing agents in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_id", + "required": true, + "description": "The unique ID of the agent group to retrieve from Freshservice.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/agent_groups/{agent_group_id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "agent_group_id", + "tool_parameter_name": "agent_group_id", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupById.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupById.json new file mode 100644 index 00000000..ea2390b9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupById.json @@ -0,0 +1,115 @@ +{ + "name": "GetAgentGroupById", + "fully_qualified_name": "FreshserviceApi.GetAgentGroupById@1.0.0", + "description": "Retrieve details of a specific agent group by ID.\n\nUse this tool to get detailed information about an agent group in Freshservice by providing the specific agent group ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_id", + "required": true, + "description": "ID of the agent group to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_id", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json index 47a5d614..67c38d1d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json @@ -1,11 +1,11 @@ { "name": "GetAgentGroupInfo", - "fully_qualified_name": "FreshserviceApi.GetAgentGroupInfo@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAgentGroupInfo@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroups.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroups.json new file mode 100644 index 00000000..25020e19 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroups.json @@ -0,0 +1,148 @@ +{ + "name": "GetAgentGroups", + "fully_qualified_name": "FreshserviceApi.GetAgentGroups@1.0.0", + "description": "Retrieve a list of all agent groups from Freshservice.\n\nUse this tool to obtain a list of all the agent groups configured in your Freshservice account. It is useful for managing groups and understanding team structures within the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of 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 to retrieve for pagination in the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupsList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupsList.json new file mode 100644 index 00000000..4bbaad16 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupsList.json @@ -0,0 +1,148 @@ +{ + "name": "GetAgentGroupsList", + "fully_qualified_name": "FreshserviceApi.GetAgentGroupsList@1.0.0", + "description": "Retrieve a list of all Agent Groups in Freshservice.\n\nThis tool fetches and returns a list of all agent groups from Freshservice. It is useful for managing or reviewing team structures and assignments within the service desk platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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 page number to retrieve from the list of agent groups. Use this 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllAssets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllAssets.json new file mode 100644 index 00000000..b1447d7c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllAssets.json @@ -0,0 +1,280 @@ +{ + "name": "GetAllAssets", + "fully_qualified_name": "FreshserviceApi.GetAllAssets@1.0.0", + "description": "Retrieve a list of all assets in Freshservice.\n\nThis tool calls the Freshservice API to get a complete list of all assets. Use this when you need to view or manage the assets within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of entries to retrieve per page. Ignored if search or filter is used.", + "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 specific page number of assets 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": "include_asset_type_fields", + "required": false, + "description": "Specify asset type fields to include in the 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "include" + }, + { + "name": "asset_filter_query", + "required": false, + "description": "A URL-encoded query string to filter the list of assets. Supported parameters include asset_type_id, department_id, location_id, asset_state, user_id, agent_id, name, asset_tag, created_at, and updated_at.", + "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": "search_assets_query", + "required": false, + "description": "A simple query to search for an asset by name, asset tag, or serial number. Example: \"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": "list_trashed_assets", + "required": false, + "description": "Set to true to list assets in the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "list_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": "asset_filter_query", + "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": "search_assets_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json index 15b11bc6..78e423fe 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json @@ -1,11 +1,11 @@ { "name": "GetAllCsatSurveys", - "fully_qualified_name": "FreshserviceApi.GetAllCsatSurveys@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAllCsatSurveys@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceAssets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceAssets.json new file mode 100644 index 00000000..09be9a7e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceAssets.json @@ -0,0 +1,256 @@ +{ + "name": "GetAllFreshserviceAssets", + "fully_qualified_name": "FreshserviceApi.GetAllFreshserviceAssets@1.0.0", + "description": "Retrieve a list of all assets in Freshservice.\n\nUse this tool to get a comprehensive list of all assets managed within the Freshservice platform. Ideal for inventory checks and asset management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of entries to retrieve per page in a paginated list. Not applicable when using 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 pagination in the asset 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" + }, + { + "name": "include_asset_type_fields", + "required": false, + "description": "Specify asset type fields to include in the 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "include" + }, + { + "name": "asset_filter_query", + "required": false, + "description": "URL-encoded simple or compound query to filter assets. Supports parameters like asset_type_id, department_id, location_id, 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 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": "search_query", + "required": false, + "description": "A query string to search for assets by name, asset_tag, or serial_number.", + "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": "list_trashed_assets", + "required": false, + "description": "Set to true to retrieve assets that are in the 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": "list_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": "asset_filter_query", + "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": "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 5edef5a1..f661b852 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceRequesters.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceRequesters.json @@ -1,11 +1,11 @@ { "name": "GetAllFreshserviceRequesters", - "fully_qualified_name": "FreshserviceApi.GetAllFreshserviceRequesters@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAllFreshserviceRequesters@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -136,10 +136,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -147,13 +147,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters", @@ -289,14 +289,6 @@ ], "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", @@ -304,7 +296,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json index 56bd4871..3983ee54 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json @@ -1,18 +1,18 @@ { "name": "GetAllLocations", - "fully_qualified_name": "FreshserviceApi.GetAllLocations@0.1.0", - "description": "Retrieve a list of all locations in Freshservice.\n\n", + "fully_qualified_name": "FreshserviceApi.GetAllLocations@1.0.0", + "description": "Retrieve a list of all locations in Freshservice.\n\nUse this tool to obtain information about all the locations stored in the Freshservice platform. It can be useful for managing or reviewing location data within the service.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The number of location entries to retrieve per page for pagination in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number_to_retrieve", + "name": "page_number", "required": false, - "description": "The page number of locations to retrieve from Freshservice.", + "description": "The number of the page to retrieve from the list of locations.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -59,29 +59,22 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations", + "url": "https://api.freshservice.com/api/v2/locations", "http_method": "GET", "headers": {}, "parameters": [ @@ -105,7 +98,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number_to_retrieve", + "tool_parameter_name": "page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -123,23 +116,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllRequesters.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllRequesters.json new file mode 100644 index 00000000..3d6fb24c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllRequesters.json @@ -0,0 +1,313 @@ +{ + "name": "GetAllRequesters", + "fully_qualified_name": "FreshserviceApi.GetAllRequesters@1.0.0", + "description": "Retrieve a list of all requesters in Freshservice.\n\nCall this tool to get a comprehensive list of all requesters from the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of requesters to retrieve per page in 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": "retrieve_page_number", + "required": false, + "description": "Specify the page number to retrieve in the list of 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 list the corresponding requester. Use this to filter results to a specific requester by email.", + "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": "The mobile phone number to filter and list 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": "The work phone number to filter requesters by. Returns requesters matching the specified work phone number.", + "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": "requester_filter_query", + "required": false, + "description": "A URL-encoded string to filter the list of requesters. Use parameters like first_name, job_title, etc. Example: \"job_title:'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'\"" + }, + "inferrable": true, + "http_endpoint_parameter_name": "query" + }, + { + "name": "list_active_user_accounts", + "required": false, + "description": "Set to true to list only active user accounts. If false or not set, both active and deactivated accounts are returned.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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": "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": "active", + "tool_parameter_name": "list_active_user_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": "requester_filter_query", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json index a746a31d..bec78d29 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetApplicationLicenses@1.0.0", + "description": "Retrieve licenses for a specified software application.\n\nUse this tool to get a list of all licenses linked to a particular software application within Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "application_id", "required": true, - "description": "The unique identifier for the software application to retrieve licenses for. Provide as an integer.", + "description": "The unique identifier for the software application to retrieve associated licenses.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/licenses", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json index 2fd14772..aee73485 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetAssetContracts@1.0.0", + "description": "Retrieve contracts linked to a specific asset.\n\nUse this tool to obtain all contracts associated with a particular asset identified by its display ID. Ideal for managing asset-related agreements and tracking contract details.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "asset_display_id", "required": true, - "description": "The unique display ID of the asset to retrieve contracts for.", + "description": "The unique integer ID of the asset to retrieve associated contracts for.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/contracts", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json index d661d1ff..6236b554 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json @@ -1,11 +1,11 @@ { "name": "GetAssetDetails", - "fully_qualified_name": "FreshserviceApi.GetAssetDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAssetDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json index 7aaa5da7..59032502 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json @@ -1,11 +1,11 @@ { "name": "GetAssetFields", - "fully_qualified_name": "FreshserviceApi.GetAssetFields@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAssetFields@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}/fields", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json index a7c7617b..ae386a6e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json @@ -1,11 +1,11 @@ { "name": "GetAssetList", - "fully_qualified_name": "FreshserviceApi.GetAssetList@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAssetList@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -121,10 +121,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -132,13 +132,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets", @@ -256,14 +256,6 @@ ], "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", @@ -271,7 +263,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetRequests.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetRequests.json new file mode 100644 index 00000000..442e72db --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetRequests.json @@ -0,0 +1,115 @@ +{ + "name": "GetAssetRequests", + "fully_qualified_name": "FreshserviceApi.GetAssetRequests@1.0.0", + "description": "Retrieve requests linked to a specific asset.\n\nUse this tool to get a list of all requests associated with a specific asset by its display ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID of the asset for which to retrieve requests. This should 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypeFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypeFields.json new file mode 100644 index 00000000..9b954616 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypeFields.json @@ -0,0 +1,115 @@ +{ + "name": "GetAssetTypeFields", + "fully_qualified_name": "FreshserviceApi.GetAssetTypeFields@1.0.0", + "description": "Retrieve asset fields from Freshservice.\n\nFetches asset fields for a specific asset type from Freshservice, including default and specific fields, in their UI display order.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_type_identifier", + "required": true, + "description": "The unique integer ID representing the specific asset type whose fields need 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json index 9aa168ee..f9062bb1 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json @@ -1,11 +1,11 @@ { "name": "GetAssetTypes", - "fully_qualified_name": "FreshserviceApi.GetAssetTypes@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetAssetTypes@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypesList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypesList.json new file mode 100644 index 00000000..699af0dd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypesList.json @@ -0,0 +1,148 @@ +{ + "name": "GetAssetTypesList", + "fully_qualified_name": "FreshserviceApi.GetAssetTypesList@1.0.0", + "description": "Retrieve a list of all asset types in Freshservice.\n\nThis tool calls the Freshservice API to get a complete list of all available asset types. Use it when you need to know the types of assets available within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of asset type entries to retrieve per page in a paginated list. Adjust to manage the size of each 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_to_retrieve", + "required": false, + "description": "Specify the page number to retrieve for paginated asset types 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json index f425c27b..42373b39 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetBusinessHoursConfig@1.0.0", + "description": "Retrieve the Business Hours configuration from Freshservice.\n\nThis tool retrieves the Business Hours configuration using the provided ID from Freshservice. It should be called when detailed information about specific business hours settings is required.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "business_hours_configuration_id", "required": true, - "description": "The ID of the Business Hours configuration to retrieve from Freshservice.", + "description": "The unique ID of the Business Hours configuration to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours/{business_hours_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json index 92c8fa50..b976dc31 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetBusinessHoursConfigs@1.0.0", + "description": "Retrieve all business hours configurations from Freshservice.\n\nThis tool retrieves the entire list of business hours configurations from Freshservice. It should be called when you need to understand or display the business hours settings configured in the Freshservice system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "The number of Business Hours configurations to retrieve per page in the paginated list.", + "description": "The number of business hours configurations to retrieve per page in the paginated result.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "requested_page_number", + "name": "page_number", "required": false, - "description": "Specify the page number of results you want to retrieve.", + "description": "The specific page number of business hours configurations to retrieve.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours", @@ -105,7 +105,7 @@ }, { "name": "page", - "tool_parameter_name": "requested_page_number", + "tool_parameter_name": "page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json index 1cf9dd56..11eb7c34 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetCannedResponse@1.0.0", + "description": "Retrieve details of a Freshservice canned response by ID.\n\nUse this tool to obtain the details of a specific canned response from Freshservice, given its unique ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "canned_response_id", "required": true, - "description": "The unique ID of the Canned Response you want to retrieve from Freshservice.", + "description": "The unique ID of the canned response to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json index 387b0a0e..9f01c966 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetCannedResponseFolder@1.0.0", + "description": "Retrieve a specific canned response folder from Freshservice.\n\nUse this tool to fetch the details of a specific canned response folder by its ID from Freshservice. It is helpful for accessing pre-defined response templates for customer support or information retrieval.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "ID of the canned response folder to be retrieved from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolders.json new file mode 100644 index 00000000..06532887 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolders.json @@ -0,0 +1,80 @@ +{ + "name": "GetCannedResponseFolders", + "fully_qualified_name": "FreshserviceApi.GetCannedResponseFolders@1.0.0", + "description": "Retrieve all canned response folders from Freshservice.\n\nThis tool retrieves a list of all canned response folders available in Freshservice. It should be called when you need to access or manage pre-written responses for different scenarios or queries in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json index ee49aec2..8c40ac47 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetCannedResponses@1.0.0", + "description": "Retrieve all canned responses from Freshservice.\n\nUse this tool to get a list of all available canned responses in the Freshservice system. Useful for reviewing or managing standardized replies.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json index 40a16ec6..129b14e2 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json @@ -1,11 +1,11 @@ { "name": "GetCatalogItemFields", - "fully_qualified_name": "FreshserviceApi.GetCatalogItemFields@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetCatalogItemFields@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/catalog/item/{service_item_id}/fields", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json index 1baa0a5b..3e644a25 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetChangeFormFields@1.0.0", + "description": "Retrieve fields for the Change Object in Freshservice.\n\nUse this tool to obtain a list of all fields that make up the Change Object in Freshservice. Ideal for understanding the structure or schema of change forms.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/change_form_fields", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeList.json new file mode 100644 index 00000000..36b64799 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeList.json @@ -0,0 +1,294 @@ +{ + "name": "GetChangeList", + "fully_qualified_name": "FreshserviceApi.GetChangeList@1.0.0", + "description": "Retrieve a list of all changes in Freshservice.\n\nCall this tool to obtain a complete list of changes from Freshservice, useful for tracking updates or modifications.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "filter_by_name", + "required": false, + "description": "Retrieve changes by the specified filter name, such as 'my_open' or 'closed'.", + "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": "filter_by_requester_id", + "required": false, + "description": "Filter changes by the specific requester ID to narrow down the 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": "Email of the requester to filter the list of changes.", + "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": "retrieve_changes_updated_since", + "required": false, + "description": "Retrieve changes updated since a specific date (in ISO 8601 format).", + "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": "changes_per_page", + "required": false, + "description": "Specifies 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "per_page" + }, + { + "name": "page_number_to_retrieve", + "required": false, + "description": "The page number of the change 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "filter_name", + "tool_parameter_name": "filter_by_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": "filter_by_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": "retrieve_changes_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": "changes_per_page", + "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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeNotes.json new file mode 100644 index 00000000..f753fbbd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeNotes.json @@ -0,0 +1,181 @@ +{ + "name": "GetChangeNotes", + "fully_qualified_name": "FreshserviceApi.GetChangeNotes@1.0.0", + "description": "Retrieve notes from a Change request in Freshservice.\n\nUse this tool to obtain detailed notes on a specified Change request using its ID in Freshservice. Useful for understanding updates or comments related to a change.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the change request to retrieve corresponding notes 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 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 the change notes 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequest.json new file mode 100644 index 00000000..8d634d50 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequest.json @@ -0,0 +1,115 @@ +{ + "name": "GetChangeRequest", + "fully_qualified_name": "FreshserviceApi.GetChangeRequest@1.0.0", + "description": "Retrieve a specific change request by ID from Freshservice.\n\nUse this tool to access information about a specific change request in Freshservice by providing its unique ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestNotes.json new file mode 100644 index 00000000..8aed4948 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestNotes.json @@ -0,0 +1,181 @@ +{ + "name": "GetChangeRequestNotes", + "fully_qualified_name": "FreshserviceApi.GetChangeRequestNotes@1.0.0", + "description": "Retrieve notes from a Freshservice change request.\n\nUse this tool to get all notes associated with a specific change request ID in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique ID of the change request to retrieve notes for, required to access specific change request data.", + "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": "Specify the number of notes 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 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 to retrieve for paginated notes.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTasks.json new file mode 100644 index 00000000..ed051c6d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTasks.json @@ -0,0 +1,181 @@ +{ + "name": "GetChangeRequestTasks", + "fully_qualified_name": "FreshserviceApi.GetChangeRequestTasks@1.0.0", + "description": "Retrieve tasks for a specific Change request from Freshservice.\n\nUse this tool to get all tasks associated with a specific Change request using its ID in Freshservice. Ideal for managing or reviewing change tasks.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the Change request to retrieve tasks for in 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 a paginated response.", + "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_to_retrieve", + "required": false, + "description": "The specific page number of tasks to be retrieved for a 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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 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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTimeEntries.json new file mode 100644 index 00000000..30e9282e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeRequestTimeEntries.json @@ -0,0 +1,181 @@ +{ + "name": "GetChangeRequestTimeEntries", + "fully_qualified_name": "FreshserviceApi.GetChangeRequestTimeEntries@1.0.0", + "description": "Retrieve time entries for a specific Change request.\n\nUse this tool to get all time entries associated with a specific Change request in Freshservice by providing the Change ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the Change request to retrieve time entries for in Freshservice.", + "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": "entries_per_page", + "required": false, + "description": "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": "Specify the page number of the time entries 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json index e1301e1f..d653ad60 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetChangeTimeEntries@1.0.0", + "description": "Retrieve time entries for a specific Change request.\n\nUse this tool to get the list of time entries associated with a specific Change request in Freshservice by providing the Change ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the Change request to get time entries for.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "change_id" }, { - "name": "time_entries_per_page", + "name": "entries_per_page", "required": false, - "description": "Specify the number of time entries to retrieve per page. Helps in paginated responses.", + "description": "The number of time entries to retrieve per page for pagination.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number_to_retrieve", "required": false, - "description": "The page number to retrieve from the paginated list of time entries.", + "description": "The specific page number of time entries to retrieve for pagination.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries", @@ -102,7 +102,7 @@ "parameters": [ { "name": "per_page", - "tool_parameter_name": "time_entries_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", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntry.json new file mode 100644 index 00000000..50321bbc --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "GetChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.GetChangeTimeEntry@1.0.0", + "description": "Retrieve a time entry for a specific change request.\n\nFetch details of a time entry associated with a specific change request ID in Freshservice, useful for tracking time spent on changes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to retrieve the time entry for. Required for identifying the specific change request.", + "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": "Unique identifier for the time entry to be retrieved. Must be an integer.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json index c11e6d6b..c1dde14d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json @@ -1,11 +1,11 @@ { "name": "GetComponentTypes", - "fully_qualified_name": "FreshserviceApi.GetComponentTypes@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetComponentTypes@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/component_types", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json index fd6867ee..3ae19029 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json @@ -1,11 +1,11 @@ { "name": "GetCsatSurvey", - "fully_qualified_name": "FreshserviceApi.GetCsatSurvey@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetCsatSurvey@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurveys.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurveys.json new file mode 100644 index 00000000..2fb4079f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurveys.json @@ -0,0 +1,181 @@ +{ + "name": "GetCsatSurveys", + "fully_qualified_name": "FreshserviceApi.GetCsatSurveys@1.0.0", + "description": "Retrieve a list of all CSAT Surveys in Freshservice.\n\n", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "filter_active_surveys", + "required": false, + "description": "Set to 1 to list active surveys or 0 for inactive surveys.", + "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 survey entries to retrieve per page in a paginated response.", + "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 the CSAT surveys 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json index d93d28aa..c68e0495 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetDepartmentFields@1.0.0", + "description": "Retrieve department fields from Freshservice.\n\nUse this tool to get the Department Fields or Company Fields (in MSP Mode) from Freshservice, displayed in the order found on the UI.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/department_fields", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentInfo.json new file mode 100644 index 00000000..bd6844d2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentInfo.json @@ -0,0 +1,115 @@ +{ + "name": "GetDepartmentInfo", + "fully_qualified_name": "FreshserviceApi.GetDepartmentInfo@1.0.0", + "description": "Retrieve department details from Freshservice using an ID.\n\nUse this tool to obtain detailed information about a department or company (in MSP Mode) from Freshservice by providing the specific department ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_id", + "required": true, + "description": "The ID of the department to retrieve details for from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json index 2011e9e5..3a2d9ddf 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetDeviceComponents@1.0.0", + "description": "Retrieve all components of a specific device.\n\nThis tool retrieves a list of all components associated with a specified device by its display ID. Use this to gain detailed insights into the individual parts of a device.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "device_display_id", "required": true, - "description": "The integer ID of the device whose components you want to list.", + "description": "The unique display ID of the device whose components are to be listed. It must be an integer value.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgent.json new file mode 100644 index 00000000..92449a9a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgent.json @@ -0,0 +1,115 @@ +{ + "name": "GetFreshserviceAgent", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAgent@1.0.0", + "description": "Retrieve agent details from Freshservice by ID.\n\nThis tool retrieves detailed information about an agent from Freshservice using their ID. It should be called when user requests specific agent details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_id", + "required": true, + "description": "The unique integer ID used to retrieve the specific agent from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgentInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgentInfo.json new file mode 100644 index 00000000..72ec2ee5 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgentInfo.json @@ -0,0 +1,115 @@ +{ + "name": "GetFreshserviceAgentInfo", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAgentInfo@1.0.0", + "description": "Retrieve details of a Freshservice agent by ID.\n\nUse this tool to obtain information about a specific agent in Freshservice by providing the agent's ID. It can be called when detailed agent information is needed for administration or support purposes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_identifier", + "required": true, + "description": "The unique ID of the agent to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_identifier", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json index 4726c86b..c9b929e1 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAgents@1.0.0", + "description": "Retrieve a list of all agents in Freshservice.\n\nUse this tool to get a comprehensive list of all agents currently registered in Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The number of entries to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number_to_retrieve", + "name": "page_number", "required": false, - "description": "The specific page number of the agent list to retrieve.", + "description": "The page number to retrieve in a paginated list of agents.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "page" }, { - "name": "requester_email", + "name": "agent_email_address", "required": false, - "description": "The email address of the requester for which the corresponding agent needs to be listed.", + "description": "The email address for which the corresponding requester needs to be listed. Useful for filtering agents by their email.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -55,9 +55,9 @@ "http_endpoint_parameter_name": "email" }, { - "name": "filter_by_mobile_phone_number", + "name": "mobile_phone_number_filter", "required": false, - "description": "Filter agents by a specific mobile phone number to list the corresponding requesters.", + "description": "Specify the mobile phone number to filter and list corresponding requesters.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -72,7 +72,7 @@ { "name": "filter_by_work_phone_number", "required": false, - "description": "Work phone number to filter the list of agents by their corresponding requesters.", + "description": "Filter agents based on their work phone number. Provide the exact work phone number to retrieve corresponding requesters.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -85,9 +85,9 @@ "http_endpoint_parameter_name": "work_phone_number" }, { - "name": "agent_type", + "name": "agent_employment_type", "required": false, - "description": "Filter agents by employment type: 'fulltime' or 'occasional'.", + "description": "Specifies whether to list full-time or occasional agents. Accepts values: 'fulltime' or 'occasional'.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -100,9 +100,9 @@ "http_endpoint_parameter_name": "state" }, { - "name": "agent_query_filter", + "name": "agent_filter_query", "required": false, - "description": "URL-encoded string for filtering agents. Supports parameters like first_name, last_name, job_title, email, etc.", + "description": "A URL-encoded query string to filter the list of agents. Supports fields like first_name, job_title, created_at, etc. Example: \"job_title:'HR Manager' AND created_at:>'2018-08-10'\".", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -115,9 +115,9 @@ "http_endpoint_parameter_name": "query" }, { - "name": "filter_active_users", + "name": "filter_active_accounts", "required": false, - "description": "Set to true to list active accounts, false to list deactivated ones, or omit to include both.", + "description": "Set to true to list only active accounts. Not setting this filter returns both active and deactivated accounts.", "value_schema": { "val_type": "boolean", "inner_val_type": null, @@ -151,10 +151,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -162,13 +162,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents", @@ -195,7 +195,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number_to_retrieve", + "tool_parameter_name": "page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -213,7 +213,7 @@ }, { "name": "email", - "tool_parameter_name": "requester_email", + "tool_parameter_name": "agent_email_address", "description": "The email address for which the corresponding requester needs to be listed.", "value_schema": { "val_type": "string", @@ -231,7 +231,7 @@ }, { "name": "mobile_phone_number", - "tool_parameter_name": "filter_by_mobile_phone_number", + "tool_parameter_name": "mobile_phone_number_filter", "description": "The mobile phone number for which the corresponding requesters need to be listed.", "value_schema": { "val_type": "string", @@ -267,7 +267,7 @@ }, { "name": "state", - "tool_parameter_name": "agent_type", + "tool_parameter_name": "agent_employment_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", @@ -285,7 +285,7 @@ }, { "name": "active", - "tool_parameter_name": "filter_active_users", + "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", @@ -303,7 +303,7 @@ }, { "name": "query", - "tool_parameter_name": "agent_query_filter", + "tool_parameter_name": "agent_filter_query", "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", @@ -322,14 +322,6 @@ ], "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", @@ -337,7 +329,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncement.json new file mode 100644 index 00000000..9d566b7f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncement.json @@ -0,0 +1,115 @@ +{ + "name": "GetFreshserviceAnnouncement", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAnnouncement@1.0.0", + "description": "Retrieve a specific announcement from Freshservice.\n\nCall this tool to get details of an announcement using its ID from Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_id", + "required": true, + "description": "The unique integer ID of the announcement to be retrieved 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json index 7dd4925f..b8511807 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAnnouncements@1.0.0", + "description": "Retrieve a list of all announcements from Freshservice.\n\nUse this tool to get all current announcements in Freshservice. Call this when you need to display or access information about company or service announcements.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "announcement_state", "required": false, - "description": "Specify the state of the announcements to retrieve: archived, active, scheduled, or unread.", + "description": "Filter announcements by their state: archived, active, scheduled, or unread.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "retrieve_page_number", + "name": "page_number", "required": false, - "description": "Specify the page number of announcements to retrieve. Useful for navigating through paginated results.", + "description": "The page number to retrieve for paginated results.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements", @@ -138,7 +138,7 @@ }, { "name": "page", - "tool_parameter_name": "retrieve_page_number", + "tool_parameter_name": "page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAssetTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAssetTypes.json new file mode 100644 index 00000000..19c889a4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAssetTypes.json @@ -0,0 +1,124 @@ +{ + "name": "GetFreshserviceAssetTypes", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceAssetTypes@1.0.0", + "description": "Retrieve a list of all asset types from Freshservice.\n\nUse this tool to get a complete list of asset types available in Freshservice. It's useful when you need to understand what types of assets are managed within the service.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of asset types 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 of the asset types list you wish 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index ca030027..94da0ffa 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponseFolders.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponseFolders.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceCannedResponseFolders@1.0.0", + "description": "Retrieve all canned response folders from Freshservice.\n\nUse this tool to fetch a list of all canned response folders available in Freshservice. It provides an overview of the folders for easier access and organization.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponses.json new file mode 100644 index 00000000..cf8bae57 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponses.json @@ -0,0 +1,56 @@ +{ + "name": "GetFreshserviceCannedResponses", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceCannedResponses@1.0.0", + "description": "Retrieve all canned responses in Freshservice.\n\nUse this tool to get a list of all canned responses configured in Freshservice, useful for customer support and ticket management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/canned_responses", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceChangeList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceChangeList.json new file mode 100644 index 00000000..3a2b4906 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceChangeList.json @@ -0,0 +1,294 @@ +{ + "name": "GetFreshserviceChangeList", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceChangeList@1.0.0", + "description": "Retrieve a list of all changes in Freshservice.\n\nUse this tool to get a comprehensive list of changes in Freshservice. It can be called when you need to access or review all changes recorded in the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "filter_name_for_change_retrieval", + "required": false, + "description": "Specify the filter to retrieve changes, such as 'my_open', 'unassigned', or 'closed'.", + "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": "Specify the requester ID to filter changes associated with this 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" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requester_id" + }, + { + "name": "requester_email", + "required": false, + "description": "The email address of the requester to filter changes by their 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" + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "filter_by_updated_since", + "required": false, + "description": "Retrieve changes updated since a specific date (in ISO 8601 format).", + "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": "changes_per_page", + "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 page number of the change 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "filter_name", + "tool_parameter_name": "filter_name_for_change_retrieval", + "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": "filter_by_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": "changes_per_page", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceComponentTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceComponentTypes.json new file mode 100644 index 00000000..4b9eedfd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceComponentTypes.json @@ -0,0 +1,148 @@ +{ + "name": "GetFreshserviceComponentTypes", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceComponentTypes@1.0.0", + "description": "Retrieve all component types and their fields from Freshservice.\n\nUse this tool to get a comprehensive list of all component types in Freshservice, including the fields specific to each component type. This is useful for managing and understanding the different components within your Freshservice environment.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of component 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 paginated list of component 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json index 00b503bd..175e0beb 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceDepartments@1.0.0", + "description": "Retrieve a list of departments from Freshservice.\n\nUse this tool to get a list of all departments or companies (in MSP Mode) available in Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "The number of entries to retrieve per page in a paginated list.", + "description": "The number of departments to retrieve in each page of a paginated list. Must be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number", + "name": "page_number_to_retrieve", "required": false, - "description": "The specific page number of departments to retrieve from Freshservice.", + "description": "The page number of results to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments", @@ -105,7 +105,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number", + "tool_parameter_name": "page_number_to_retrieve", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceLocations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceLocations.json new file mode 100644 index 00000000..242005b7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceLocations.json @@ -0,0 +1,148 @@ +{ + "name": "GetFreshserviceLocations", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceLocations@1.0.0", + "description": "Retrieve all locations from Freshservice.\n\nUse this tool to get a complete list of locations stored in Freshservice. This can be useful for managing location-based data and operations within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of locations 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 page number to retrieve from the paginated list of locations.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProblems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProblems.json new file mode 100644 index 00000000..b4084394 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProblems.json @@ -0,0 +1,181 @@ +{ + "name": "GetFreshserviceProblems", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceProblems@1.0.0", + "description": "Retrieve all problems from Freshservice.\n\nThis tool fetches a list of all problems recorded in Freshservice. It should be called when there is a need to access or review issues tracked in the system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "retrieve_problems_updated_since", + "required": false, + "description": "Retrieve problems updated since the specified date (in ISO 8601 format).", + "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": "Specify the number of problems 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 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": "Specify the page number to retrieve from the paginated list of problems.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "updated_since", + "tool_parameter_name": "retrieve_problems_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProjects.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProjects.json new file mode 100644 index 00000000..40bab0a9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceProjects.json @@ -0,0 +1,200 @@ +{ + "name": "GetFreshserviceProjects", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceProjects@1.0.0", + "description": "Retrieves a list of all projects in Freshservice.\n\nUse this tool to obtain a complete list of projects from Freshservice. It is useful when you need an overview of all projects currently tracked within the service.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Number of entries to retrieve per page in a paginated list. Expect 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 specific page number of the project list you wish 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": "project_status_filter", + "required": false, + "description": "Specify the project status to filter results: '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": "retrieve_archived_projects", + "required": false, + "description": "Retrieve archived projects when true; active projects when false.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": "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": "retrieve_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRelease.json new file mode 100644 index 00000000..f1834f4a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRelease.json @@ -0,0 +1,115 @@ +{ + "name": "GetFreshserviceRelease", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceRelease@1.0.0", + "description": "Retrieve release details from Freshservice by ID.\n\nCall this tool to obtain specific release details from Freshservice using a provided release ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "ID of the release to retrieve 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_id", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleaseTask.json new file mode 100644 index 00000000..739becec --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleaseTask.json @@ -0,0 +1,148 @@ +{ + "name": "GetFreshserviceReleaseTask", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceReleaseTask@1.0.0", + "description": "Retrieve a specific task for a release in Freshservice.\n\nCall this tool to get information about a specific task within a release in Freshservice using the release and task IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_identifier", + "required": true, + "description": "The numeric ID of the release to retrieve the task 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": "task_id", + "required": true, + "description": "The unique integer ID of the task to retrieve within a release in Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_identifier", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleases.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleases.json new file mode 100644 index 00000000..1331ddfb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceReleases.json @@ -0,0 +1,181 @@ +{ + "name": "GetFreshserviceReleases", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceReleases@1.0.0", + "description": "Retrieve a list of all Releases in Freshservice.\n\nUse this tool to obtain a complete list of all Releases within the Freshservice platform. Useful for tracking, managing, and reviewing release information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_updated_since", + "required": false, + "description": "Retrieve releases updated after the specified 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", + "required": false, + "description": "Indicates which page of the release list to retrieve in a paginated response.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "updated_since", + "tool_parameter_name": "release_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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json index 8506e7b2..ce756ca2 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceRequester@1.0.0", + "description": "Retrieve requester details from Freshservice using requester ID.\n\nUse this tool to get specific information about a requester in Freshservice by providing their unique ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceSurveys.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceSurveys.json new file mode 100644 index 00000000..a1530596 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceSurveys.json @@ -0,0 +1,181 @@ +{ + "name": "GetFreshserviceSurveys", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceSurveys@1.0.0", + "description": "Retrieve all CSAT Surveys in Freshservice.\n\nUse this tool to get a comprehensive list of all Customer Satisfaction (CSAT) surveys from Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "filter_active_surveys", + "required": false, + "description": "Filter surveys by active status. Use 1 for active surveys 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": "Specify the number of entries to retrieve per page for 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 page number to retrieve for paginated survey results. Specify which page of surveys you want to access.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTicketDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTicketDetails.json new file mode 100644 index 00000000..75f73091 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTicketDetails.json @@ -0,0 +1,148 @@ +{ + "name": "GetFreshserviceTicketDetails", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceTicketDetails@1.0.0", + "description": "Retrieve details of a FreshService ticket by ID.\n\nUse this tool to obtain detailed information about a specific ticket in Freshservice when given a ticket ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique ID of the FreshService ticket to fetch details for.", + "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_additional_ticket_fields", + "required": false, + "description": "Specify fields to include in the ticket response, like 'stats' or 'requester'. Supported options are 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]" + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "include", + "tool_parameter_name": "include_additional_ticket_fields", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTickets.json new file mode 100644 index 00000000..066338a1 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceTickets.json @@ -0,0 +1,280 @@ +{ + "name": "GetFreshserviceTickets", + "fully_qualified_name": "FreshserviceApi.GetFreshserviceTickets@1.0.0", + "description": "Retrieve all tickets from Freshservice.\n\nUse this tool to fetch the list of all tickets available in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_filter", + "required": false, + "description": "Pre-defined filters for tickets. 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", + "required": false, + "description": "Filter tickets by the requester's email address.", + "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_update_time", + "required": false, + "description": "Specify a timestamp to filter tickets updated since this time (e.g., '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", + "required": false, + "description": "Specify the fields to include in the response, such as 'stats' for ticket times or 'requester' for requester details.", + "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": "ticket_sort_order", + "required": false, + "description": "Sort order for the list of tickets. Use 'asc' for ascending or '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "filter", + "tool_parameter_name": "ticket_filter", + "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", + "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_update_time", + "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", + "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": "ticket_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetInstalledSoftwareList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetInstalledSoftwareList.json new file mode 100644 index 00000000..494f7895 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetInstalledSoftwareList.json @@ -0,0 +1,115 @@ +{ + "name": "GetInstalledSoftwareList", + "fully_qualified_name": "FreshserviceApi.GetInstalledSoftwareList@1.0.0", + "description": "Retrieve all software installed on a specific device.\n\nUse this tool to obtain a comprehensive list of software applications installed on a particular device by its display ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "device_display_id", + "required": true, + "description": "The unique integer identifier for the device to fetch the software 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetLocations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetLocations.json new file mode 100644 index 00000000..bd2730c7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetLocations.json @@ -0,0 +1,148 @@ +{ + "name": "GetLocations", + "fully_qualified_name": "FreshserviceApi.GetLocations@1.0.0", + "description": "Retrieve a list of all locations in Freshservice.\n\nCall this tool to obtain a comprehensive list of all locations configured in the Freshservice system. Useful for management and administrative tasks requiring location data.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of location 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 of the locations list you want 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingFormFields.json new file mode 100644 index 00000000..80cea2ef --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingFormFields.json @@ -0,0 +1,441 @@ +{ + "name": "GetOnboardingFormFields", + "fully_qualified_name": "FreshserviceApi.GetOnboardingFormFields@1.0.0", + "description": "Retrieve fields from the onboarding request form.\n\nUse this tool to get a list of all fields available in the onboarding request initiator form. It helps in understanding the structure of the form for processing or display purposes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "onboarding_request_form_details", + "required": false, + "description": "A JSON object detailing the onboarding request form fields. Includes properties like placeholder, label, name, position, required status, and field type.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-onboarding-request-form'.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/form", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "onboarding_request_form_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"*/*\": {\n \"schema\": {\n \"required\": [\n \"choices\",\n \"default\",\n \"dynamic_sections\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\",\n \"sections\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"dynamic_sections\": {\n \"type\": \"boolean\"\n },\n \"choices\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"sections\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"section_fields\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"data_source\",\n \"default\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"data_source\": {\n \"type\": \"number\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"description\": \"\",\n \"x-examples\": {\n \"example-1\": {\n \"placeholder\": \"Enter Heirachy\",\n \"label\": \"Hierarchy\",\n \"name\": \"cf_hierarchy\",\n \"position\": 10,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_dropdown\",\n \"dynamic_sections\": true,\n \"choices\": [\n \"L3\",\n \"L2\",\n \"L1\"\n ],\n \"sections\": [\n {\n \"values\": [\n \"L3\",\n \"L2\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets\",\n \"name\": \"cf_assets\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location\",\n \"name\": \"cf_location\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n },\n {\n \"values\": [\n \"L1\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets_2\",\n \"name\": \"cf_asset2_@\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location_2\",\n \"name\": \"cf_location_2\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n }\n ]\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestForm.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestForm.json new file mode 100644 index 00000000..76ec2e9a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestForm.json @@ -0,0 +1,441 @@ +{ + "name": "GetOnboardingRequestForm", + "fully_qualified_name": "FreshserviceApi.GetOnboardingRequestForm@1.0.0", + "description": "Retrieve all fields in the onboarding request form.\n\nThis tool retrieves a list of all fields in the initiator onboarding request form from Freshservice, which can be used to understand the data structure required for the onboarding process.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "form_configuration", + "required": false, + "description": "A JSON object detailing the structure and configuration of the onboarding request form fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-onboarding-request-form'.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/form", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "form_configuration", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "dynamic_sections": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "choices": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "sections": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "values": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": null + }, + "section_fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "placeholder": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "position": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "default": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "field_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "data_source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"*/*\": {\n \"schema\": {\n \"required\": [\n \"choices\",\n \"default\",\n \"dynamic_sections\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\",\n \"sections\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"dynamic_sections\": {\n \"type\": \"boolean\"\n },\n \"choices\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"sections\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"section_fields\": {\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"data_source\",\n \"default\",\n \"field_type\",\n \"label\",\n \"name\",\n \"placeholder\",\n \"position\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"placeholder\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"position\": {\n \"type\": \"number\"\n },\n \"required\": {\n \"type\": \"boolean\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"field_type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"data_source\": {\n \"type\": \"number\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"description\": \"\",\n \"x-examples\": {\n \"example-1\": {\n \"placeholder\": \"Enter Heirachy\",\n \"label\": \"Hierarchy\",\n \"name\": \"cf_hierarchy\",\n \"position\": 10,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_dropdown\",\n \"dynamic_sections\": true,\n \"choices\": [\n \"L3\",\n \"L2\",\n \"L1\"\n ],\n \"sections\": [\n {\n \"values\": [\n \"L3\",\n \"L2\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets\",\n \"name\": \"cf_assets\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location\",\n \"name\": \"cf_location\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n },\n {\n \"values\": [\n \"L1\"\n ],\n \"section_fields\": [\n {\n \"placeholder\": \"\",\n \"label\": \"Assets_2\",\n \"name\": \"cf_asset2_@\",\n \"position\": 1,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 4\n },\n {\n \"placeholder\": \"Select Location\",\n \"label\": \"Location_2\",\n \"name\": \"cf_location_2\",\n \"position\": 2,\n \"required\": false,\n \"default\": false,\n \"field_type\": \"custom_lookup_bigint\",\n \"data_source\": 1\n }\n ]\n }\n ]\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json index ae3776bc..980c3f5b 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetOnboardingRequestTickets@1.0.0", + "description": "Retrieve tickets for a specific onboarding request.\n\nUse this tool to get details of FreshService tickets associated with a specific onboarding request. Useful when you need to review or manage tickets related to employee onboarding processes.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/id/tickets", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json index 1ea9a1ba..a9432063 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetProblemNotes@1.0.0", + "description": "Retrieve notes for a specific problem in Freshservice.\n\nUse this tool to get all notes associated with a specific problem ID from Freshservice. Useful for accessing additional information, updates, or discussions related to a particular problem.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "Specify the numerical ID of the problem to retrieve its notes from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "notes_per_page", "required": false, - "description": "The number of notes to retrieve per page in the paginated results.", + "description": "Specify the number of notes to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number", + "name": "notes_page_number", "required": false, - "description": "The page number of the notes to retrieve for pagination purposes.", + "description": "The specific page number to retrieve notes from. Used for pagination purposes.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes", @@ -120,7 +120,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number", + "tool_parameter_name": "notes_page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json index 37c387a7..a57ed0ef 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetProblemTasks@1.0.0", + "description": "Retrieve tasks associated with a specific problem ID.\n\nUse this tool to get the list of tasks related to a particular problem in Freshservice by providing the problem ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "problem_id", "required": true, - "description": "The ID of the problem for which tasks need to be retrieved from Freshservice.", + "description": "The ID of the problem for which tasks need to be retrieved. This identifies the specific problem in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "tasks_per_page", "required": false, - "description": "Specify the number of tasks to retrieve per page for pagination.", + "description": "The number of tasks to retrieve per page in the paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number", "required": false, - "description": "The specific page number of tasks to retrieve.", + "description": "The page number of the task list to retrieve.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json index ce3ba933..5c26c8e1 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetProblemTimeEntries@1.0.0", + "description": "Retrieve time entries for a specific Freshservice problem.\n\nUse this tool to get all time entries associated with a particular problem in Freshservice by providing the problem ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique ID of the Freshservice problem to retrieve time entries for.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "entries_per_page", "required": false, - "description": "The number of time entries to retrieve per page in a paginated list.", + "description": "The number of time entries to retrieve in each page of a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number_to_retrieve", "required": false, - "description": "The page number to retrieve in the paginated list of time entries.", + "description": "The page number to retrieve from the paginated list of time entries for the specified problem.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json index c2cc1623..3a7fef0e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json @@ -1,11 +1,11 @@ { "name": "GetProblemTimeEntry", - "fully_qualified_name": "FreshserviceApi.GetProblemTimeEntry@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetProblemTimeEntry@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json index 1015ed3c..a2c672eb 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json @@ -1,11 +1,11 @@ { "name": "GetProductDetails", - "fully_qualified_name": "FreshserviceApi.GetProductDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetProductDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductInfo.json new file mode 100644 index 00000000..15bc89ab --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductInfo.json @@ -0,0 +1,115 @@ +{ + "name": "GetProductInfo", + "fully_qualified_name": "FreshserviceApi.GetProductInfo@1.0.0", + "description": "Retrieve a specific Product from the Product Catalog.\n\nUse this tool to get detailed information about a specific product using its ID from the Freshservice Product Catalog.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "The unique identifier of the product to retrieve from the 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectDetails.json new file mode 100644 index 00000000..29ed6650 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectDetails.json @@ -0,0 +1,115 @@ +{ + "name": "GetProjectDetails", + "fully_qualified_name": "FreshserviceApi.GetProjectDetails@1.0.0", + "description": "Retrieve detailed information about a specific project.\n\nUse this tool to obtain comprehensive data for a project by specifying the project ID. It accesses the Freshservice API to fetch and return details, helping in managing and understanding ongoing projects.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json index 3345d77e..cab20d6f 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetProjectTaskDetails@1.0.0", + "description": "Retrieve detailed information about a specific project task within Freshservice.\n\n", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "task_id", "required": true, - "description": "The unique identifier for the task to retrieve details.", + "description": "The unique identifier for the task to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "project_id", "required": true, - "description": "The unique identifier for the project to which the task belongs.", + "description": "The unique identifier for the project associated with the task. Use this to specify which project's task details to retrieve.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -59,29 +59,22 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}", + "url": "https://api.freshservice.com/api/v2/projects/{project_id}/tasks/{id}", "http_method": "GET", "headers": {}, "parameters": [ @@ -123,23 +116,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTasks.json new file mode 100644 index 00000000..cbb52b1a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTasks.json @@ -0,0 +1,261 @@ +{ + "name": "GetProjectTasks", + "fully_qualified_name": "FreshserviceApi.GetProjectTasks@1.0.0", + "description": "Retrieve a list of project tasks from Freshservice.\n\nUse this tool to get a list of all tasks within a specific project in Freshservice. It should be called when you need detailed task information for project management or tracking purposes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The ID of the project whose tasks are to be retrieved.", + "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": "Specify the number of entries to retrieve per page in a paginated task 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 of the project tasks 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: 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 their parent task ID. Useful for narrowing down tasks under specific parent tasks.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json index 4e09b88f..5ed5fcfb 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetPurchaseOrder@1.0.0", + "description": "Retrieve details of a specific Purchase Order.\n\nThis tool fetches the details of an existing Purchase Order using the provided purchase order ID. Use this to obtain information about a purchase order in the Freshservice system when prompted to provide specific order details.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the purchase order to be retrieved. Must be an integer identifying a specific order.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -44,29 +44,22 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}", + "url": "https://api.freshservice.com/api/v2/purchase_orders/{purchase_order_id}", "http_method": "GET", "headers": {}, "parameters": [ @@ -90,23 +83,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrders.json new file mode 100644 index 00000000..49131315 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrders.json @@ -0,0 +1,148 @@ +{ + "name": "GetPurchaseOrders", + "fully_qualified_name": "FreshserviceApi.GetPurchaseOrders@1.0.0", + "description": "Retrieve all purchase orders from Freshservice.\n\nUse this tool to get a comprehensive list of all purchase orders recorded in the Freshservice system. It's useful for tasks that require an overview of procurement activities.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify the number of entries to retrieve per page in a paginated list. This helps manage and control the pagination 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 specific page number to retrieve from the paginated list of purchase orders.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRecentAnnouncements.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRecentAnnouncements.json new file mode 100644 index 00000000..1fe41902 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRecentAnnouncements.json @@ -0,0 +1,181 @@ +{ + "name": "GetRecentAnnouncements", + "fully_qualified_name": "FreshserviceApi.GetRecentAnnouncements@1.0.0", + "description": "Retrieve all announcements from Freshservice.\n\nUse this tool to get a comprehensive list of announcements available in Freshservice. It's useful for keeping up-to-date with recent updates or information shared within the service.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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": "The number of announcements 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 Announcements 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 for paginated announcements.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json index 9ac45ca8..9b40aa94 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json @@ -1,11 +1,11 @@ { "name": "GetReleaseDetails", - "fully_qualified_name": "FreshserviceApi.GetReleaseDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetReleaseDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json index 7056fa4e..e3249901 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetReleaseFormFields@1.0.0", + "description": "Retrieve fields of the Release Object in Freshservice.\n\nUse this tool to obtain all fields that make up the Release Object in Freshservice. This is useful when needing to understand or display the structure of a release form.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release_form_fields", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseInfo.json new file mode 100644 index 00000000..a896e109 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseInfo.json @@ -0,0 +1,91 @@ +{ + "name": "GetReleaseInfo", + "fully_qualified_name": "FreshserviceApi.GetReleaseInfo@1.0.0", + "description": "Retrieve information about a specific release.\n\nCall this tool to obtain details of a release by providing its ID within the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique ID of the Release to retrieve information 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 '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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/release/{release_id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "release_id", + "tool_parameter_name": "release_id", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseList.json new file mode 100644 index 00000000..e82f447f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseList.json @@ -0,0 +1,181 @@ +{ + "name": "GetReleaseList", + "fully_qualified_name": "FreshserviceApi.GetReleaseList@1.0.0", + "description": "Retrieve a list of all releases in Freshservice.\n\nCall this tool to get comprehensive information on all current releases in the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "retrieve_releases_updated_since", + "required": false, + "description": "The starting date to retrieve releases updated on or after this date. Use ISO 8601 format (YYYY-MM-DD).", + "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": "Specify the number of releases to display 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 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": "The specific page number of results to retrieve when fetching paginated release data.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "updated_since", + "tool_parameter_name": "retrieve_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNote.json new file mode 100644 index 00000000..65467684 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNote.json @@ -0,0 +1,148 @@ +{ + "name": "GetReleaseNote", + "fully_qualified_name": "FreshserviceApi.GetReleaseNote@1.0.0", + "description": "Retrieve a note from a specific release in Freshservice.\n\nThis tool retrieves a specific note associated with a given release ID from Freshservice. It is useful for accessing detailed notes or updates related to particular releases.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique identifier for a specific release 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 integer ID of the note to be retrieved from the release.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json index 68670592..8076e599 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetReleaseNotes@1.0.0", + "description": "Retrieve notes for a specified release in Freshservice.\n\nUse this tool to get detailed notes on a release by providing the release ID. It is useful for obtaining updates and information documented in a particular release within Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "release_id", + "name": "release_identifier", "required": true, - "description": "The ID of the release for which notes are to be retrieved.", + "description": "The ID representing the release for which notes are to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "notes_per_page", "required": false, - "description": "The number of release notes to retrieve in each page.", + "description": "The number of notes to retrieve per page in the paginated result.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "retrieve_page_number", + "name": "page_number_to_retrieve", "required": false, - "description": "The specific page number of release notes to retrieve. Useful for paginated results.", + "description": "Indicates which page of notes to retrieve for the specified release.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes", @@ -120,7 +120,7 @@ }, { "name": "page", - "tool_parameter_name": "retrieve_page_number", + "tool_parameter_name": "page_number_to_retrieve", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -138,7 +138,7 @@ }, { "name": "release_id", - "tool_parameter_name": "release_id", + "tool_parameter_name": "release_identifier", "description": "ID of release for which notes are to be retrieved", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTasks.json new file mode 100644 index 00000000..aea795ea --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTasks.json @@ -0,0 +1,181 @@ +{ + "name": "GetReleaseTasks", + "fully_qualified_name": "FreshserviceApi.GetReleaseTasks@1.0.0", + "description": "Retrieve all tasks for a specified release in Freshservice.\n\nThis tool is used to obtain a list of tasks associated with a specific release ID from Freshservice. It is useful when you need detailed information about tasks related to a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique ID of the release for which tasks are to be retrieved from 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": "The 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_to_retrieve", + "required": false, + "description": "Specify the page number of tasks 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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 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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json index d41eae10..75b1f75c 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetReleaseTimeEntries@1.0.0", + "description": "Retrieve time entries for a specified release.\n\nThis tool retrieves the time entries associated with a given Release ID from Freshservice. It should be called when there's a need to review or analyze time tracking data for a specific release in Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The ID of the release for which time entries are to be retrieved from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "entries_per_page", "required": false, - "description": "The number of time entries to retrieve per page in the paginated list.", + "description": "The number of time entries to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number_to_retrieve", "required": false, - "description": "The page number to retrieve in the paginated list of time entries.", + "description": "Specify the page number of the time entries to retrieve for the given release.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json index 8bfc19f8..897d1dda 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json @@ -1,11 +1,11 @@ { "name": "GetReleasesList", - "fully_qualified_name": "FreshserviceApi.GetReleasesList@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetReleasesList@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json index bf364269..2e11217c 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetRequesterFields@1.0.0", + "description": "Retrieve all requester fields from Freshservice.\n\nUse this tool to get a list of all the requester fields available in Freshservice. It's useful for obtaining field information when managing or customizing user requests.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The number of entries to retrieve in each page of a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "page_number_to_retrieve", "required": false, - "description": "Specify the page number of requester fields to retrieve from Freshservice.", + "description": "The page number to retrieve from the paginated list of requester fields.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -59,29 +59,22 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requester_fields", + "url": "https://api.freshservice.com/api/v2/requester_fields", "http_method": "GET", "headers": {}, "parameters": [ @@ -123,23 +116,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItem.json new file mode 100644 index 00000000..11864537 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItem.json @@ -0,0 +1,115 @@ +{ + "name": "GetServiceItem", + "fully_qualified_name": "FreshserviceApi.GetServiceItem@1.0.0", + "description": "Retrieve details of a specific service item from Freshservice.\n\nThis tool fetches the information of a specific service item identified by its service_item_id from the Freshservice API.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "service_item_id", + "required": true, + "description": "ID of the service item to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemFields.json new file mode 100644 index 00000000..9fd92156 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemFields.json @@ -0,0 +1,115 @@ +{ + "name": "GetServiceItemFields", + "fully_qualified_name": "FreshserviceApi.GetServiceItemFields@1.0.0", + "description": "Retrieve all fields of a specified service item in Freshservice.\n\nThis tool retrieves detailed information about all the fields of a specified service item from Freshservice, using the service item's ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "service_item_id", + "required": true, + "description": "The integer ID of the service item to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItems.json new file mode 100644 index 00000000..6f2286ee --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItems.json @@ -0,0 +1,148 @@ +{ + "name": "GetServiceItems", + "fully_qualified_name": "FreshserviceApi.GetServiceItems@1.0.0", + "description": "Retrieve a list of all service items in Freshservice.\n\nUse this tool to get a complete list of service items available in your Freshservice account. It should be called when you need detailed information about the service items.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specifies the number of entries to retrieve in each page of the service items 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 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json index 9bfdd2a6..299a8c4d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json @@ -1,11 +1,11 @@ { "name": "GetServiceItemsList", - "fully_qualified_name": "FreshserviceApi.GetServiceItemsList@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetServiceItemsList@0.2.0", "description": "Retrieve a list of all Service Items in Freshservice.\n\n", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_items", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareApplicationLicenses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareApplicationLicenses.json new file mode 100644 index 00000000..6f11ffa5 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareApplicationLicenses.json @@ -0,0 +1,115 @@ +{ + "name": "GetSoftwareApplicationLicenses", + "fully_qualified_name": "FreshserviceApi.GetSoftwareApplicationLicenses@1.0.0", + "description": "Retrieve all licenses linked to a specific software application.\n\nThis tool fetches a list of all licenses associated with a given software application. Use it when you need to see the licensing details related to the software.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "software_application_id", + "required": true, + "description": "The unique integer identifier of the software application to retrieve licenses for.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json index f588a783..a8737e39 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json @@ -1,11 +1,11 @@ { "name": "GetSoftwareInstallationList", - "fully_qualified_name": "FreshserviceApi.GetSoftwareInstallationList@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetSoftwareInstallationList@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/installations", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json index b6cc952f..8ae69653 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetSoftwareList@1.0.0", + "description": "Get a list of all software applications in Freshservice.\n\nThis tool retrieves a comprehensive list of all the software applications managed in Freshservice. Use it to obtain the current catalog of applications.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "Number of software entries to retrieve per page for pagination.", + "description": "The number of software entries to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number", + "name": "page_number_to_retrieve", "required": false, - "description": "The page number of the software list to retrieve. Used for pagination.", + "description": "The specific page number of the software list to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications", @@ -105,7 +105,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number", + "tool_parameter_name": "page_number_to_retrieve", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticle.json new file mode 100644 index 00000000..081b9d3a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticle.json @@ -0,0 +1,115 @@ +{ + "name": "GetSolutionArticle", + "fully_qualified_name": "FreshserviceApi.GetSolutionArticle@1.0.0", + "description": "Retrieve information about a specific solution article from Freshservice.\n\nUse this tool to obtain detailed information about a specific solution article by providing the article ID. This is useful for accessing and viewing content from the solutions database in Freshservice when you need to present the article content to a user.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_article_id", + "required": true, + "description": "Integer ID of the solution article to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json index ed54d3fa..859bd7c5 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetSolutionArticles@1.0.0", + "description": "Retrieve all Solution articles from Freshservice.\n\nThis tool is used to gather a complete list of Solution articles available in Freshservice. It should be called when you need to access or display the entire collection of articles.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "Specify the number of solution articles to retrieve per page in the paginated results.", + "description": "The number of solution articles to retrieve per page for pagination.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "page_number", "required": false, - "description": "The page number of the solution articles to retrieve from Freshservice.", + "description": "The specific page number of the solution articles to retrieve.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "page" }, { - "name": "folder_identifier", + "name": "folder_id", "required": false, - "description": "The numeric ID of the folder to list solution articles from.", + "description": "The ID of the folder whose solution articles need to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -55,9 +55,9 @@ "http_endpoint_parameter_name": "folder_id" }, { - "name": "solution_category_id", + "name": "category_identifier", "required": false, - "description": "Specify the ID of the category whose solution articles are to be retrieved.", + "description": "The unique identifier for the category whose solution articles need to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -91,10 +91,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -102,13 +102,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles", @@ -153,7 +153,7 @@ }, { "name": "folder_id", - "tool_parameter_name": "folder_identifier", + "tool_parameter_name": "folder_id", "description": "The ID of the folder whose solution articles have to be listed.", "value_schema": { "val_type": "integer", @@ -171,7 +171,7 @@ }, { "name": "category_id", - "tool_parameter_name": "solution_category_id", + "tool_parameter_name": "category_identifier", "description": "The ID of the category whose solution articles have to be listed.", "value_schema": { "val_type": "integer", @@ -190,14 +190,6 @@ ], "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", @@ -205,7 +197,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json index 9667ae24..43cf5d52 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json @@ -1,18 +1,18 @@ { "name": "GetSolutionCategories", - "fully_qualified_name": "FreshserviceApi.GetSolutionCategories@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetSolutionCategories@1.0.0", "description": "Retrieve a list of all solution categories in Freshservice.\n\n", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "The number of entries to retrieve per page in the paginated list.", + "description": "Specify the number of entries to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "page_number_to_retrieve", "required": false, - "description": "The page number to retrieve in the paginated list of solution categories.", + "description": "The page number of solution categories to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolder.json new file mode 100644 index 00000000..0b13d755 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolder.json @@ -0,0 +1,115 @@ +{ + "name": "GetSolutionFolder", + "fully_qualified_name": "FreshserviceApi.GetSolutionFolder@1.0.0", + "description": "Retrieve details of a specified solution folder.\n\nUse this tool to get information about a specific solution folder by its ID. It should be called when you need detailed information on a solution folder within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_folder_id", + "required": true, + "description": "The unique ID of the solution folder to retrieve details for.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolders.json new file mode 100644 index 00000000..0cd3c47e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionFolders.json @@ -0,0 +1,157 @@ +{ + "name": "GetSolutionFolders", + "fully_qualified_name": "FreshserviceApi.GetSolutionFolders@1.0.0", + "description": "Retrieve all Solution Folders from Freshservice.\n\nThis tool retrieves a list of all solution folders in the Freshservice platform. It should be called when you need to access or display the structured knowledge base folders in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_category_id", + "required": false, + "description": "The ID of the solution category where the folders reside, used to filter results.", + "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": "entries_per_page", + "required": false, + "description": "The number of solution folders to retrieve per page in a paginated response.", + "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": "Specifies the page number to retrieve from the list of solution folders.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSpecificLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSpecificLocation.json new file mode 100644 index 00000000..81f0b3f7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSpecificLocation.json @@ -0,0 +1,91 @@ +{ + "name": "GetSpecificLocation", + "fully_qualified_name": "FreshserviceApi.GetSpecificLocation@1.0.0", + "description": "Retrieve information about a specific location.\n\nUse this tool to get detailed information about a specific location by providing the location ID. It should be called when precise location data is needed from the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_identifier", + "required": true, + "description": "The unique ID of the location 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": "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 43a4fa73..19141b24 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketConversations.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketConversations.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetTicketConversations@1.0.0", + "description": "Fetches all conversations from a specified Freshservice ticket.\n\nUse this tool to retrieve a list of all conversations associated with a specific ticket in Freshservice. This can be helpful for reviewing past interactions and understanding communication history related to the ticket.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "ID of the ticket from Freshservice for fetching conversations.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketDetails.json new file mode 100644 index 00000000..507b22e0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketDetails.json @@ -0,0 +1,148 @@ +{ + "name": "GetTicketDetails", + "fully_qualified_name": "FreshserviceApi.GetTicketDetails@1.0.0", + "description": "Retrieve details of a FreshService ticket using its ID.\n\nUse this tool to get comprehensive information about a specific FreshService ticket by providing the ticket ID. It helps in obtaining current status, description, and other relevant ticket details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the FreshService ticket to be fetched. Provide an integer value to retrieve specific ticket details.", + "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_response", + "required": false, + "description": "Specify fields to include in the response, such as 'conversations', 'requester', 'stats', 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json index 548a6923..1ef029e2 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetTicketTasks@1.0.0", + "description": "Retrieve tasks for a specific ticket in Freshservice.\n\nThis tool retrieves all tasks associated with a given ticket ID from Freshservice. It should be called when there is a need to view task details for a specific support ticket.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "ticket_request_id", "required": true, - "description": "ID of the Freshservice ticket for which tasks are to be retrieved.", + "description": "ID of the ticket request to retrieve associated tasks from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "tasks_per_page", "required": false, - "description": "Specify the number of tasks to retrieve per page in the paginated list.", + "description": "Specify the number of tasks to retrieve per page in the list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number", + "name": "page_number_to_retrieve", "required": false, - "description": "The specific page number to retrieve from the paginated list of tasks.", + "description": "The specific page number of tasks to retrieve in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks", @@ -120,7 +120,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number", + "tool_parameter_name": "page_number_to_retrieve", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json index 66476313..5d2092b4 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetTicketTimeEntries@1.0.0", + "description": "Retrieve time entries for a specific ticket in Freshservice.\n\nUse this tool to get all time entries associated with a specific ticket ID from Freshservice. Ideal for tracking time spent and managing ticket details.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "ticket_request_id", "required": true, - "description": "The unique ID of the ticket request to retrieve time entries for.", + "description": "The ID of the ticket request for which the time entries need to be retrieved. This should be an integer value identifying a specific ticket in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "ticket_id" }, { - "name": "number_of_entries_per_page", + "name": "entries_per_page", "required": false, - "description": "The number of time entries to retrieve in each page of a paginated list.", + "description": "Number of time entries to retrieve per page in a paginated list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number", "required": false, - "description": "The page number to retrieve from the paginated list of time entries.", + "description": "The page number of time entries to retrieve for the given ticket ID.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries", @@ -102,7 +102,7 @@ "parameters": [ { "name": "per_page", - "tool_parameter_name": "number_of_entries_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", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json index 27f770c5..07472bfa 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetTicketTimeEntry@1.0.0", + "description": "Retrieve a specific time entry for a ticket in Freshservice.\n\nUse this tool to obtain information about a specific time entry associated with a ticket in Freshservice by providing the ticket and time entry IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique ID of the ticket request used to retrieve the time entry.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "time_entry_id", "required": true, - "description": "Provide the ID of the time entry to retrieve specific details from a ticket in Freshservice.", + "description": "The unique integer ID of the specific time entry to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -59,29 +59,22 @@ }, "requirements": { "authorization": null, - "secrets": [ - { - "key": "FRESHSERVICE_API_KEY" - }, - { - "key": "FRESHSERVICE_SUBDOMAIN" - } - ], + "secrets": null, "metadata": null }, "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, - "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}", + "url": "https://api.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}", "http_method": "GET", "headers": {}, "parameters": [ @@ -123,23 +116,9 @@ } ], "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 - } - ] + "secrets": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 4c382aee..205067ea 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetUserOnboardingRequests.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetUserOnboardingRequests.json @@ -1,11 +1,11 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.GetUserOnboardingRequests@1.0.0", + "description": "Retrieve all onboarding requests for a specific user.\n\nUse this tool to obtain all onboarding requests associated with a particular user, aiding in user management and tracking.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [] @@ -30,10 +30,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -41,13 +41,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests", @@ -56,14 +56,6 @@ "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", @@ -71,7 +63,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json index 82d1e075..3457cc16 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json @@ -1,11 +1,11 @@ { "name": "GetVendorDetails", - "fully_qualified_name": "FreshserviceApi.GetVendorDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.GetVendorDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorList.json new file mode 100644 index 00000000..a4e17f83 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorList.json @@ -0,0 +1,148 @@ +{ + "name": "GetVendorList", + "fully_qualified_name": "FreshserviceApi.GetVendorList@1.0.0", + "description": "Retrieve a list of all vendors from Freshservice.\n\nUse this tool to get a complete list of vendors stored in the Freshservice system. It's useful for acquiring vendor information when managing resources or contracts.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify the number of vendor 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "per_page" + }, + { + "name": "page_number", + "required": false, + "description": "Specifies which page number of vendor entries to retrieve. 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorsList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorsList.json new file mode 100644 index 00000000..11d48425 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorsList.json @@ -0,0 +1,124 @@ +{ + "name": "GetVendorsList", + "fully_qualified_name": "FreshserviceApi.GetVendorsList@1.0.0", + "description": "Retrieve a list of all vendors from Freshservice.\n\nUse this tool to get a comprehensive list of all vendors available in the Freshservice platform. Ideal for when you need vendor information in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Number of entries to retrieve per page in the vendor 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 of vendor list to retrieve. 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentFields.json new file mode 100644 index 00000000..9ed3ffad --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentFields.json @@ -0,0 +1,124 @@ +{ + "name": "ListAgentFields", + "fully_qualified_name": "FreshserviceApi.ListAgentFields@1.0.0", + "description": "Retrieve a list of all agent fields in Freshservice.\n\nThis tool is used to call Freshservice's API to get a list of all agent fields. It should be called when there is a need to view or manage the different fields available for agents in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of entries to retrieve per page in a paginated list. Adjust to control data load per request.", + "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 agent fields.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentGroups.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentGroups.json new file mode 100644 index 00000000..f5db3e28 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAgentGroups.json @@ -0,0 +1,124 @@ +{ + "name": "ListAgentGroups", + "fully_qualified_name": "FreshserviceApi.ListAgentGroups@1.0.0", + "description": "Retrieve a list of all Agent Groups in Freshservice.\n\nCall this tool to obtain a comprehensive list of agent groups available in the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of agent group 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 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllAgents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllAgents.json new file mode 100644 index 00000000..2cb91bbd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllAgents.json @@ -0,0 +1,322 @@ +{ + "name": "ListAllAgents", + "fully_qualified_name": "FreshserviceApi.ListAllAgents@1.0.0", + "description": "Retrieve a list of all agents in Freshservice.\n\nThis tool retrieves a list of all agents from Freshservice, providing information about each agent available.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of agent entries to retrieve on 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": "retrieve_page_number", + "required": false, + "description": "Specify the page number to retrieve from the list of agents.", + "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 associated with the requester 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": "search_by_mobile_phone_number", + "required": false, + "description": "Specify the mobile phone number to filter the list of agents associated with it.", + "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": "The work phone number to filter requesters in the agents list.", + "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_employment_type", + "required": false, + "description": "Specifies whether to list full-time or occasional agents. Accepts values '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": "filter_query", + "required": false, + "description": "A URL-encoded string to filter agents based on parameters like job_title, email, etc. Example: \"job_title:'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'\"" + }, + "inferrable": true, + "http_endpoint_parameter_name": "query" + }, + { + "name": "retrieve_active_accounts", + "required": false, + "description": "Retrieve only active user accounts if true. If false, include deactivated accounts as well.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": "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": "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": "search_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_employment_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": "retrieve_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": "filter_query", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index ccf4f323..9750c270 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllProducts.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllProducts.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ListAllProducts@1.0.0", + "description": "Retrieve all products from Freshservice.\n\nUse this tool to get a comprehensive list of all the products available in the Freshservice system. This helps in managing and reviewing product inventories effectively.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "entries_per_page", "required": false, - "description": "Specify the number of entries to retrieve in each page of the product list.", + "description": "The number of entries to retrieve in each page of a paginated list. This controls the page size.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number", + "name": "page_number_to_fetch", "required": false, - "description": "Specify the page number to retrieve from the paginated list of products.", + "description": "The specific page number to retrieve from the list of products.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products", @@ -105,7 +105,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number", + "tool_parameter_name": "page_number_to_fetch", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationInstallations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationInstallations.json new file mode 100644 index 00000000..6159158a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationInstallations.json @@ -0,0 +1,115 @@ +{ + "name": "ListApplicationInstallations", + "fully_qualified_name": "FreshserviceApi.ListApplicationInstallations@1.0.0", + "description": "Retrieve all devices with a specific software installed.\n\nThis tool fetches a list of devices where a specified software application is installed. It should be called when you need to determine which devices have a certain software application installed by providing the application ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "software_application_id", + "required": true, + "description": "The unique identifier for the software application to get installation details.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationLicenses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationLicenses.json new file mode 100644 index 00000000..40df9b03 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListApplicationLicenses.json @@ -0,0 +1,91 @@ +{ + "name": "ListApplicationLicenses", + "fully_qualified_name": "FreshserviceApi.ListApplicationLicenses@1.0.0", + "description": "Retrieve licenses for a specified application.\n\nUse this tool to obtain a list of all licenses associated with a specific software application by providing the application ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "application_id", + "required": true, + "description": "The unique identifier of the application for which to retrieve licenses.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetContracts.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetContracts.json new file mode 100644 index 00000000..1ebb9a14 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetContracts.json @@ -0,0 +1,91 @@ +{ + "name": "ListAssetContracts", + "fully_qualified_name": "FreshserviceApi.ListAssetContracts@1.0.0", + "description": "Retrieve contracts linked to a specific asset.\n\nThis tool fetches all contracts associated with a given asset using its display ID. Useful for managing asset-related agreements in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID of the asset to retrieve contracts for. 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": "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 331c6a43..8ea58a2d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetRequests.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetRequests.json @@ -1,11 +1,11 @@ { "name": "ListAssetRequests", - "fully_qualified_name": "FreshserviceApi.ListAssetRequests@0.1.0", + "fully_qualified_name": "FreshserviceApi.ListAssetRequests@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/requests", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetTypes.json new file mode 100644 index 00000000..c572a253 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetTypes.json @@ -0,0 +1,148 @@ +{ + "name": "ListAssetTypes", + "fully_qualified_name": "FreshserviceApi.ListAssetTypes@1.0.0", + "description": "Fetch a list of all asset types from Freshservice.\n\nUse this to get an overview of all asset types defined within Freshservice. Useful for managing assets or integrating asset data with other systems.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of asset types to retrieve per page in 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", + "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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssets.json new file mode 100644 index 00000000..1d2120e6 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssets.json @@ -0,0 +1,280 @@ +{ + "name": "ListAssets", + "fully_qualified_name": "FreshserviceApi.ListAssets@1.0.0", + "description": "Retrieve a list of all assets in Freshservice.\n\nThis tool is used to get a complete list of all assets available in the Freshservice platform. It can be called to fetch detailed inventory information, aiding in asset management tasks.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify the number of asset entries to retrieve per page in a paginated list. Not applicable when a search or filter is used.", + "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 from the list of assets.", + "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.", + "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": "asset_filter_query", + "required": false, + "description": "A URL-encoded query string to filter the asset list. Supports parameters like asset_type_id, department_id, location_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": "search_query", + "required": false, + "description": "A simple query to search for an asset. Supports 'name', 'asset_tag', and 'serial_number'. Example: \"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": "list_trashed_assets_only", + "required": false, + "description": "Set to true to list only assets in the 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "list_trashed_assets_only", + "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": "asset_filter_query", + "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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json index 95bb906f..c4addc82 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ListCannedResponses@1.0.0", + "description": "Retrieve canned responses from a specified folder in Freshservice.\n\nCall this tool to obtain a list of all canned responses within a specified canned response folder in Freshservice. It's useful for accessing predefined replies saved in a particular folder.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "canned_response_folder_id", "required": true, - "description": "ID of the canned response folder to retrieve responses from.", + "description": "The ID of the canned response folder to retrieve responses from.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders/{canned_response_folder_id}/canned_responses", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListChangeFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListChangeFormFields.json new file mode 100644 index 00000000..4fa24ee7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListChangeFormFields.json @@ -0,0 +1,80 @@ +{ + "name": "ListChangeFormFields", + "fully_qualified_name": "FreshserviceApi.ListChangeFormFields@1.0.0", + "description": "Retrieve all fields of the Change Object in Freshservice.\n\nUse this tool to get detailed information about each field in the Change Object from Freshservice. Ideal for understanding the structure and specifications of change fields.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/change_form_fields", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListComponentTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListComponentTypes.json new file mode 100644 index 00000000..5700beb9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListComponentTypes.json @@ -0,0 +1,148 @@ +{ + "name": "ListComponentTypes", + "fully_qualified_name": "FreshserviceApi.ListComponentTypes@1.0.0", + "description": "Retrieve all Freshservice component types and their fields.\n\nUse this tool to obtain a list of all component types available in Freshservice. It provides details about each component type and their specific fields, which can be useful for understanding how components are organized.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specifies the number of component type entries 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 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 in a paginated list of component 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCsatSurveys.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCsatSurveys.json new file mode 100644 index 00000000..8b877323 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCsatSurveys.json @@ -0,0 +1,157 @@ +{ + "name": "ListCsatSurveys", + "fully_qualified_name": "FreshserviceApi.ListCsatSurveys@1.0.0", + "description": "Retrieve a list of all CSAT surveys in Freshservice.\n\nThis tool should be called to get an overview of all Customer Satisfaction (CSAT) surveys available in the Freshservice platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "filter_active_surveys", + "required": false, + "description": "Filter to return only active (1) or inactive (0) surveys.", + "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": "Specify the number of survey 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": "retrieve_page_number", + "required": false, + "description": "Specify the page number of CSAT surveys to retrieve from the 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListDeviceSoftware.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListDeviceSoftware.json new file mode 100644 index 00000000..d93d2172 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListDeviceSoftware.json @@ -0,0 +1,91 @@ +{ + "name": "ListDeviceSoftware", + "fully_qualified_name": "FreshserviceApi.ListDeviceSoftware@1.0.0", + "description": "Get a list of all software installed on a device.\n\nThis tool retrieves a list of all the software applications installed on a specified device. It should be called when detailed information about software installations on a device is needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "device_display_id", + "required": true, + "description": "The unique display ID of the device to retrieve installed software information.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 816a224e..28f814ca 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgentGroups.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgentGroups.json @@ -1,11 +1,11 @@ { "name": "ListFreshserviceAgentGroups", - "fully_qualified_name": "FreshserviceApi.ListFreshserviceAgentGroups@0.1.0", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceAgentGroups@0.2.0", "description": "Retrieve a list of all Agent Groups in Freshservice.\n\n", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgents.json new file mode 100644 index 00000000..ddb83777 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgents.json @@ -0,0 +1,346 @@ +{ + "name": "ListFreshserviceAgents", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceAgents@1.0.0", + "description": "Retrieve a list of all agents from Freshservice.\n\nCall this tool to get a comprehensive list of all agents present in your Freshservice account. It will return the agent details necessary for managing or reviewing team configurations.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify the number of entries to retrieve per page in the result set.", + "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 in the list of Freshservice agents.", + "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 agent in Freshservice.", + "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 the given mobile phone number.", + "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": "Filter agents by their work phone number to retrieve 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_employment_status", + "required": false, + "description": "Specifies if the list should include full-time or occasional agents. Use '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": "query_filter", + "required": false, + "description": "A URL-encoded query string to filter agents based on parameters like first_name, job_title, etc. Example: \"job_title:'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'\"" + }, + "inferrable": true, + "http_endpoint_parameter_name": "query" + }, + { + "name": "list_active_accounts", + "required": false, + "description": "List only active user accounts. Use true for active accounts, false for deactivated ones.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_employment_status", + "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": "list_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 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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json index 606020a2..ae10809a 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json @@ -1,11 +1,11 @@ { "name": "ListFreshserviceChanges", - "fully_qualified_name": "FreshserviceApi.ListFreshserviceChanges@0.1.0", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceChanges@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -128,10 +128,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -139,13 +139,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes", @@ -270,14 +270,6 @@ ], "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", @@ -285,7 +277,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceDepartments.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceDepartments.json new file mode 100644 index 00000000..b09bccfb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceDepartments.json @@ -0,0 +1,148 @@ +{ + "name": "ListFreshserviceDepartments", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceDepartments@1.0.0", + "description": "Retrieve a list of all departments from Freshservice.\n\nCall this tool to get a list of all departments or companies (in MSP Mode) from Freshservice's database.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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 page number to retrieve from the paginated list of departments.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProducts.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProducts.json new file mode 100644 index 00000000..719ed7a0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProducts.json @@ -0,0 +1,148 @@ +{ + "name": "ListFreshserviceProducts", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceProducts@1.0.0", + "description": "Retrieve a list of all products in Freshservice.\n\nUse this tool to get a comprehensive list of products available in the Freshservice system. It should be called when you need to access information about all products managed in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of product entries to retrieve on 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 specific page number of the product list to retrieve, supporting 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProjects.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProjects.json new file mode 100644 index 00000000..3dd61f73 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceProjects.json @@ -0,0 +1,224 @@ +{ + "name": "ListFreshserviceProjects", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceProjects@1.0.0", + "description": "Retrieve all projects from Freshservice.\n\nUse this tool to obtain a comprehensive list of projects stored in the Freshservice platform. Ideal for users needing to access or review project details managed within Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of projects to retrieve per page in a paginated result set from Freshservice.", + "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 projects 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" + }, + { + "name": "filter_project_status", + "required": false, + "description": "Filter projects based on their 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": "Set to true to retrieve archived projects, false 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "filter_project_status", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceTickets.json new file mode 100644 index 00000000..22a5de8a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceTickets.json @@ -0,0 +1,280 @@ +{ + "name": "ListFreshserviceTickets", + "fully_qualified_name": "FreshserviceApi.ListFreshserviceTickets@1.0.0", + "description": "Fetch a list of tickets from Freshservice.\n\nUse this tool to retrieve all tickets currently in Freshservice. Ideal for viewing open or closed tickets and managing support inquiries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_filter", + "required": false, + "description": "Apply a pre-defined filter to fetch specific types of tickets. Options 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]." + }, + "inferrable": true, + "http_endpoint_parameter_name": "filter" + }, + { + "name": "filter_by_requester_email", + "required": false, + "description": "Filter tickets by the requester's email address.", + "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": "requester_id_filter", + "required": false, + "description": "Filter tickets by the ID of the requester to view those created by a specific user.", + "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": "updated_since", + "required": false, + "description": "Filter tickets based on their update timestamp. Use ISO 8601 format, e.g., '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": "include_fields_in_response", + "required": false, + "description": "Specify certain fields to include in the response. Examples: 'stats' for ticket's closed and resolved times, 'requester' for requester's details.", + "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": "ticket_sort_order", + "required": false, + "description": "Sort the list of tickets in ascending ('asc') or descending ('desc') order. 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "filter", + "tool_parameter_name": "ticket_filter", + "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": "filter_by_requester_email", + "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": "requester_id_filter", + "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": "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": "include_fields_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": "ticket_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json index 9800deb2..f57dda10 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ListInstalledSoftware@1.0.0", + "description": "Retrieve all software installed on a specified device.\n\nUse this tool to obtain a list of applications installed on a particular device by specifying the device's display ID. Ideal for asset tracking and management scenarios.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "An integer representing the unique display ID of the device to retrieve its installed software.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/applications", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProblemTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProblemTasks.json new file mode 100644 index 00000000..40894d51 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProblemTasks.json @@ -0,0 +1,181 @@ +{ + "name": "ListProblemTasks", + "fully_qualified_name": "FreshserviceApi.ListProblemTasks@1.0.0", + "description": "Retrieve tasks for a given problem ID in Freshservice.\n\nUse this tool to get a list of tasks associated with a specific problem ID from Freshservice. Ideal for querying task details related to particular issues.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "ID of the 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" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "tasks_per_page", + "required": false, + "description": "Specify the 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_to_retrieve", + "required": false, + "description": "The specific page number of tasks to retrieve for the given problem.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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 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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json index 1072fee7..5bf28a83 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ListProjectTasks@1.0.0", + "description": "Retrieve a list of all project tasks in Freshservice.\n\nThis tool fetches a list of all tasks associated with a given project in Freshservice. Use this when you need to view or manage tasks within a specific project.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "project_id", "required": true, - "description": "The ID of the project for which you want to retrieve tasks.", + "description": "The ID of the project for which to retrieve tasks.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "entries_per_page", "required": false, - "description": "The number of entries to retrieve in each page for pagination.", + "description": "Specify the number of task entries to retrieve per page in the list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -42,7 +42,7 @@ { "name": "page_number", "required": false, - "description": "The specific page number of the task list to retrieve.", + "description": "The page number to retrieve in a paginated list of project tasks.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -57,7 +57,7 @@ { "name": "task_filter", "required": false, - "description": "Filter tasks by status. Options: all, open, in_progress, completed, overdue, unassigned.", + "description": "Filter tasks by status, such as 'all', 'open', 'in_progress', 'completed', 'overdue', or 'unassigned'.", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -77,9 +77,9 @@ "http_endpoint_parameter_name": "filter" }, { - "name": "task_parent_id", + "name": "task_filter_parent_id", "required": false, - "description": "Filter tasks by parent ID for specific task hierarchy or relationships.", + "description": "Filter tasks by their parent ID to narrow down the list of project tasks.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -113,10 +113,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -124,13 +124,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/tasks", @@ -200,7 +200,7 @@ }, { "name": "parent_id", - "tool_parameter_name": "task_parent_id", + "tool_parameter_name": "task_filter_parent_id", "description": "Task filters", "value_schema": { "val_type": "integer", @@ -237,14 +237,6 @@ ], "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", @@ -252,7 +244,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json index 1025534d..ece25a6e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json @@ -1,11 +1,11 @@ { "name": "ListPurchaseOrders", - "fully_qualified_name": "FreshserviceApi.ListPurchaseOrders@0.1.0", + "fully_qualified_name": "FreshserviceApi.ListPurchaseOrders@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListRequesterFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListRequesterFields.json new file mode 100644 index 00000000..cc864cd8 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListRequesterFields.json @@ -0,0 +1,148 @@ +{ + "name": "ListRequesterFields", + "fully_qualified_name": "FreshserviceApi.ListRequesterFields@1.0.0", + "description": "Retrieve a list of all requester fields in Freshservice.\n\nUse this tool to obtain a complete list of requester fields in your Freshservice instance.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Number of requester fields 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 in a paginated list of requester fields.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListServiceItems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListServiceItems.json new file mode 100644 index 00000000..32c781ac --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListServiceItems.json @@ -0,0 +1,148 @@ +{ + "name": "ListServiceItems", + "fully_qualified_name": "FreshserviceApi.ListServiceItems@1.0.0", + "description": "Retrieve all service items from Freshservice.\n\nCall this tool to get a complete list of service items available in Freshservice, typically used for managing or reviewing available services.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of entries to retrieve per page in the paginated service item 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 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareApplications.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareApplications.json new file mode 100644 index 00000000..3a960e25 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareApplications.json @@ -0,0 +1,148 @@ +{ + "name": "ListSoftwareApplications", + "fully_qualified_name": "FreshserviceApi.ListSoftwareApplications@1.0.0", + "description": "Retrieve a list of software applications from Freshservice.\n\nUse this tool to get a comprehensive list of all software applications available in Freshservice. This can be helpful for inventory management or IT support inquiries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "Specify the number of software application 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_to_retrieve", + "required": false, + "description": "The specific page number of the software list to retrieve from Freshservice. Useful for navigating large 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" + } + ] + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareInstallations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareInstallations.json new file mode 100644 index 00000000..28370b3e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSoftwareInstallations.json @@ -0,0 +1,115 @@ +{ + "name": "ListSoftwareInstallations", + "fully_qualified_name": "FreshserviceApi.ListSoftwareInstallations@1.0.0", + "description": "Retrieve all devices with specific software installed.\n\nUse this tool to get a list of all devices where a specified software application is installed. This is helpful for inventory management and tracking software deployment across devices.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "application_id", + "required": true, + "description": "The unique identifier for the software application to list installations for.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionArticles.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionArticles.json new file mode 100644 index 00000000..55a03654 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionArticles.json @@ -0,0 +1,214 @@ +{ + "name": "ListSolutionArticles", + "fully_qualified_name": "FreshserviceApi.ListSolutionArticles@1.0.0", + "description": "Retrieve all Solution articles in Freshservice.\n\nUse this tool to get a complete list of Solution articles available in Freshservice. It is useful when you need information or content from the solution knowledge base.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "entries_per_page", + "required": false, + "description": "The number of solution articles 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 for paginated results in the solution articles 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" + }, + { + "name": "folder_id", + "required": false, + "description": "The ID of the folder whose solution articles should 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." + }, + "inferrable": true, + "http_endpoint_parameter_name": "folder_id" + }, + { + "name": "category_id", + "required": false, + "description": "The ID of the category whose solution articles need to be listed. Use to filter articles by category.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_id", + "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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json index cceba48e..7b5593fe 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ListSolutionFolders@1.0.0", + "description": "Retrieve all solution folders from Freshservice.\n\nThis tool retrieves a list of all solution folders in Freshservice. Use it to access organized categories and subcategories for solutions.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_category_id", "required": false, - "description": "ID of the solution category where the folders reside.", + "description": "The ID of the solution category where the folders reside. This identifies which category's folders to list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "category_id" }, { - "name": "per_page_count", + "name": "entries_per_page", "required": false, - "description": "Specifies the number of solution folders to retrieve per page for pagination.", + "description": "Specify the number of entries to retrieve per page in a paginated response.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number_to_retrieve", + "name": "page_number", "required": false, - "description": "Specify the page number to retrieve from the paginated solution folders list.", + "description": "The specific page number of the solution folders list to retrieve. Useful for paginated results.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders", @@ -120,7 +120,7 @@ }, { "name": "per_page", - "tool_parameter_name": "per_page_count", + "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", @@ -138,7 +138,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number_to_retrieve", + "tool_parameter_name": "page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequester.json new file mode 100644 index 00000000..2e80d390 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequester.json @@ -0,0 +1,124 @@ +{ + "name": "MergeRequester", + "fully_qualified_name": "FreshserviceApi.MergeRequester@1.0.0", + "description": "Merge secondary requesters into a primary requester.\n\nUse this tool to combine multiple secondary requesters into a single primary requester, streamlining requester management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "secondary_requester_ids", + "required": true, + "description": "List of IDs for secondary requesters to be merged 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": "The unique ID of the primary requester to which secondary requesters will be merged.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index dbb6e9c0..b8e157a3 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequesters.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequesters.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.MergeRequesters@1.0.0", + "description": "Merge secondary requesters into a primary requester.\n\nUse this tool to consolidate multiple requester profiles by merging secondary requesters into a specified primary requester in the Freshservice system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "secondary_requester_ids", "required": true, - "description": "List of IDs for the secondary requesters to merge into the primary.", + "description": "IDs of the secondary requesters to be merged into the primary requester. Provide as an array of integers.", "value_schema": { "val_type": "array", "inner_val_type": "integer", @@ -27,7 +27,7 @@ { "name": "primary_requester_id", "required": true, - "description": "Specify the ID of the primary requester to merge secondary requesters into.", + "description": "The unique ID of the primary requester into which secondary requesters will be merged.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{primary_requester_id}/merge", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeSecondaryRequesters.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeSecondaryRequesters.json new file mode 100644 index 00000000..c55a3f0a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeSecondaryRequesters.json @@ -0,0 +1,148 @@ +{ + "name": "MergeSecondaryRequesters", + "fully_qualified_name": "FreshserviceApi.MergeSecondaryRequesters@1.0.0", + "description": "Merge secondary requesters into a primary requester.\n\nUse this tool to combine one or more secondary requester profiles into a primary requester profile, consolidating their information into a single account.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "secondary_requester_ids", + "required": true, + "description": "List of IDs of secondary requesters to be merged into 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" + }, + "inferrable": true, + "http_endpoint_parameter_name": "secondary_requesters" + }, + { + "name": "primary_requester_id", + "required": true, + "description": "The ID of the primary requester to merge other 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReply.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReply.json new file mode 100644 index 00000000..4f17172f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReply.json @@ -0,0 +1,424 @@ +{ + "name": "PostTicketReply", + "fully_qualified_name": "FreshserviceApi.PostTicketReply@1.0.0", + "description": "Add a reply to a Freshservice ticket.\n\nThis tool allows you to post a new reply to a specified ticket in Freshservice. Use it when you need to update a ticket with additional information or respond to queries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "ID of the ticket to which the reply will be added. This must be an integer representing the unique identifier of the ticket.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket for which reply has to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "reply_details", + "required": true, + "description": "JSON object containing details of the reply, including user ID, timestamps, body, and optional email information and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the reply" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the reply" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format." + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the reply belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the Reply to be posted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-reply'.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/reply", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id", + "description": "ID of ticket for which reply has to be created", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket for which reply has to be created" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "reply_details", + "description": "details of the Reply to be posted", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the reply" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the reply" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format." + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the reply belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the Reply to be posted" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"details of the Reply to be posted\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the reply\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000982343\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the reply\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400023423\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the note is created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the note is updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format.\",\n \"example\": \"

Thanks for resolving the issue

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Thanks for resolving the issue\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n },\n \"ticket_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the ticket to which the reply belongs\",\n \"format\": \"int64\",\n \"example\": 1012\n },\n \"from_email\": {\n \"type\": \"string\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"to_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the conversation must be sent\",\n \"example\": [\n \"john.doe@freshservice.com\",\n \"david@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses which must be copied on while sending the conversation\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"bcc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which a blind copy must be sent\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"david@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReplyFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReplyFreshservice.json new file mode 100644 index 00000000..8a24d7da --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/PostTicketReplyFreshservice.json @@ -0,0 +1,400 @@ +{ + "name": "PostTicketReplyFreshservice", + "fully_qualified_name": "FreshserviceApi.PostTicketReplyFreshservice@1.0.0", + "description": "Post a new reply on a Freshservice ticket.\n\nUse this tool to add a reply to a specific ticket in Freshservice. Call it when you need to respond or add information to an existing ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id_for_reply", + "required": true, + "description": "The numeric ID of the Freshservice ticket to which the reply should be posted.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket for which reply has to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "reply_details", + "required": true, + "description": "JSON object containing details of the reply, including user and ticket IDs, timestamps, email addresses, reply body, and attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the reply" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the reply" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format." + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the reply belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the Reply to be posted" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'create-ticket-reply'.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/tickets/{ticket_id}/reply", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id_for_reply", + "description": "ID of ticket for which reply has to be created", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of ticket for which reply has to be created" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "reply_details", + "description": "details of the Reply to be posted", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the reply" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the reply" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the note is updated" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format." + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + }, + "ticket_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket to which the reply belongs" + }, + "from_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "to_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the conversation must be sent" + }, + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses which must be copied on while sending the conversation" + }, + "bcc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which a blind copy must be sent" + } + }, + "inner_properties": null, + "description": "details of the Reply to be posted" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"details of the Reply to be posted\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the reply\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000982343\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the reply\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400023423\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the note is created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the note is updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format.\",\n \"example\": \"

Thanks for resolving the issue

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Thanks for resolving the issue\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"id\": 14000884384,\n \"content_type\": \"application/pdf\",\n \"size\": 1024,\n \"name\": \"doc1.pdf\",\n \"attachment_url\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n },\n \"ticket_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the ticket to which the reply belongs\",\n \"format\": \"int64\",\n \"example\": 1012\n },\n \"from_email\": {\n \"type\": \"string\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"to_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the conversation must be sent\",\n \"example\": [\n \"john.doe@freshservice.com\",\n \"david@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses which must be copied on while sending the conversation\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"bcc_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which a blind copy must be sent\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"david@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveAssetType.json new file mode 100644 index 00000000..74acbb65 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveAssetType.json @@ -0,0 +1,115 @@ +{ + "name": "RemoveAssetType", + "fully_qualified_name": "FreshserviceApi.RemoveAssetType@1.0.0", + "description": "Delete an existing asset type in Freshservice.\n\nUse this tool to delete an asset type by providing its display ID. Call this tool when you need to remove an asset from the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique integer identifier of the asset type to be deleted 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" + } + ] + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json index 283d1d00..a9d84ce1 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json @@ -1,11 +1,11 @@ { "name": "RemoveChangeTask", - "fully_qualified_name": "FreshserviceApi.RemoveChangeTask@0.1.0", + "fully_qualified_name": "FreshserviceApi.RemoveChangeTask@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json index 77dfe2bb..b1cf3609 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RemoveFreshserviceTicket@1.0.0", + "description": "Remove a ticket from Freshservice.\n\nUse this tool to delete a ticket in Freshservice by providing the ticket ID. It should be called when a ticket needs to be removed from the system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "ticket_id_to_delete", + "name": "ticket_id", "required": true, - "description": "ID of the Freshservice support ticket to delete.", + "description": "The unique ID of the Freshservice ticket to delete.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "ticket_id", - "tool_parameter_name": "ticket_id_to_delete", + "tool_parameter_name": "ticket_id", "description": "ID of the ticket to be deleted", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveProblemNote.json new file mode 100644 index 00000000..15e17b21 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveProblemNote.json @@ -0,0 +1,124 @@ +{ + "name": "RemoveProblemNote", + "fully_qualified_name": "FreshserviceApi.RemoveProblemNote@1.0.0", + "description": "Delete a note from a problem in Freshservice.\n\nUse this tool to delete a specific note associated with a problem in Freshservice by providing the problem and note IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique ID of the problem from which the note will be deleted. This ID is required to specify the 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": "Unique integer ID of the note to be deleted.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index a44fde82..302e9772 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveTicketConversation.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveTicketConversation.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RemoveTicketConversation@1.0.0", + "description": "Remove a conversation from a Freshservice ticket.\n\nUse this tool to delete a specific conversation from a Freshservice ticket. Ideal for managing ticket discussions by removing unnecessary or old conversations.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "conversation_ticket_id", + "name": "ticket_id_for_removal", "required": true, - "description": "The ID of the ticket from which the conversation should be removed.", + "description": "The ID of the Freshservice ticket from which the conversation should be removed.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "ticket_id" }, { - "name": "conversation_id_to_remove", + "name": "conversation_id", "required": true, - "description": "The ID of the specific reply or note to delete from a Freshservice ticket.", + "description": "ID of the reply or note that needs to be deleted from a Freshservice ticket.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations/{conversation_id}", @@ -87,7 +87,7 @@ "parameters": [ { "name": "ticket_id", - "tool_parameter_name": "conversation_ticket_id", + "tool_parameter_name": "ticket_id_for_removal", "description": "ID of the ticket for which conversation has to be added", "value_schema": { "val_type": "integer", @@ -105,7 +105,7 @@ }, { "name": "conversation_id", - "tool_parameter_name": "conversation_id_to_remove", + "tool_parameter_name": "conversation_id", "description": "ID of the reply or note that needs to be deleted", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json index 1d57394b..76b7dc04 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RestoreArchivedProject@1.0.0", + "description": "Restore an archived project in Freshservice.\n\nUse this tool to restore a previously archived project within the Freshservice platform. It is useful when you need to reactivate a project for continued work or review.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique integer ID of the archived project to restore in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/restore", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json index 08941e87..92b63385 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RestoreDeletedTicket@1.0.0", + "description": "Restore a deleted ticket in Freshservice.\n\nUse this tool to restore a deleted ticket in Freshservice by specifying the ticket ID. Call this when you need to recover a ticket that was previously deleted.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "ticket_id_to_restore", + "name": "ticket_id", "required": true, - "description": "The ID of the Freshservice ticket to be restored. This must be an integer.", + "description": "Provide the integer ID of the ticket you want to restore in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/restore", @@ -72,7 +72,7 @@ "parameters": [ { "name": "ticket_id", - "tool_parameter_name": "ticket_id_to_restore", + "tool_parameter_name": "ticket_id", "description": "ID of the ticket to be restored", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreFreshserviceProject.json new file mode 100644 index 00000000..28d8ca76 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreFreshserviceProject.json @@ -0,0 +1,91 @@ +{ + "name": "RestoreFreshserviceProject", + "fully_qualified_name": "FreshserviceApi.RestoreFreshserviceProject@1.0.0", + "description": "Restore an archived project in Freshservice.\n\nUse this tool to restore a project that has been archived in Freshservice. It reactivates the specified project based on its ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The unique integer identifier of the archived project to be restored 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": "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index 7e755d08..4692601d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentFields.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentFields.json @@ -1,11 +1,11 @@ { "name": "RetrieveAgentFields", - "fully_qualified_name": "FreshserviceApi.RetrieveAgentFields@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveAgentFields@0.2.0", "description": "Retrieve a list of all Agent Fields in Freshservice.\n\n", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_fields", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentGroupById.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentGroupById.json new file mode 100644 index 00000000..9716d9f1 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentGroupById.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveAgentGroupById", + "fully_qualified_name": "FreshserviceApi.RetrieveAgentGroupById@1.0.0", + "description": "Retrieve details of a specific agent group by ID.\n\nUse this tool to get information about an agent group from Freshservice using its unique ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_id", + "required": true, + "description": "The unique ID of the agent group to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_id", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json index 2714bbfc..a75cb276 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json @@ -1,11 +1,11 @@ { "name": "RetrieveAllProjects", - "fully_qualified_name": "FreshserviceApi.RetrieveAllProjects@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveAllProjects@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -96,10 +96,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -107,13 +107,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects", @@ -200,14 +200,6 @@ ], "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", @@ -215,7 +207,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAnnouncement.json new file mode 100644 index 00000000..9f74801b --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAnnouncement.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveAnnouncement", + "fully_qualified_name": "FreshserviceApi.RetrieveAnnouncement@1.0.0", + "description": "Retrieve an announcement by ID from Freshservice.\n\nUse this tool to fetch specific announcements from Freshservice by providing the announcement ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_id", + "required": true, + "description": "The unique 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetFields.json new file mode 100644 index 00000000..9cce8485 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetFields.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveAssetFields", + "fully_qualified_name": "FreshserviceApi.RetrieveAssetFields@1.0.0", + "description": "Retrieve asset fields from Freshservice by type.\n\nUse this tool to get a list of asset fields from Freshservice. It returns fields in the order they appear in the UI, including default and specific fields for a given asset type.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_type_identifier", + "required": true, + "description": "The ID of the asset type to retrieve fields for. This should be an integer representing the asset type 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetInformation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetInformation.json new file mode 100644 index 00000000..8692380a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetInformation.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveAssetInformation", + "fully_qualified_name": "FreshserviceApi.RetrieveAssetInformation@1.0.0", + "description": "Retrieve detailed information about a specific asset.\n\nUse this tool to get detailed information about a specific asset in the Freshservice system using its display ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID of the asset you want to retrieve information 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json index 3bff667e..2ddafea0 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveAssetType@1.0.0", + "description": "Retrieve details of a specific asset type from Freshservice.\n\nUse this tool to obtain information about a specific asset type identified by its asset type ID within the Freshservice system.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique ID of the asset type to retrieve. Must be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponse.json new file mode 100644 index 00000000..f7d9146d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponse.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveCannedResponse", + "fully_qualified_name": "FreshserviceApi.RetrieveCannedResponse@1.0.0", + "description": "Retrieve a specific canned response by ID from Freshservice.\n\nUse this tool to obtain the details of a specific canned response from Freshservice by providing its ID. Ideal for accessing predefined replies quickly.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_id", + "required": true, + "description": "The unique identifier for 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponses.json new file mode 100644 index 00000000..73823a0d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCannedResponses.json @@ -0,0 +1,80 @@ +{ + "name": "RetrieveCannedResponses", + "fully_qualified_name": "FreshserviceApi.RetrieveCannedResponses@1.0.0", + "description": "Retrieve a list of all Canned Responses in Freshservice.\n\n", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json index a5b18d91..956ecac8 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeNote@1.0.0", + "description": "Retrieve a note on a Change request from Freshservice.\n\nUse this tool to get details of a specific note associated with a Change request by providing the change and note IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "change_request_id", "required": true, - "description": "ID of the change request to retrieve its specific note.", + "description": "The unique identifier for the change request. Provide this to retrieve the specific note associated with it.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "change_id" }, { - "name": "note_identifier", + "name": "note_id", "required": true, - "description": "The unique identifier for the note to be retrieved from a change request in Freshservice.", + "description": "The unique identifier for the note you want to retrieve from a Change request.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}", @@ -105,7 +105,7 @@ }, { "name": "note_id", - "tool_parameter_name": "note_identifier", + "tool_parameter_name": "note_id", "description": "ID of the note", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json index 600ce6a8..3038493a 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json @@ -1,11 +1,11 @@ { "name": "RetrieveChangeNotes", - "fully_qualified_name": "FreshserviceApi.RetrieveChangeNotes@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeNotes@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json index 123b6f46..380dbb86 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeRequest@1.0.0", + "description": "Retrieve a Freshservice change request by ID.\n\nUse this tool to fetch details of a specific change request from Freshservice by providing the change ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "change_request_id", "required": true, - "description": "ID of the Change request to retrieve from Freshservice.", + "description": "ID of the Freshservice change request to retrieve.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json index 28141fda..ab895c89 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json @@ -1,11 +1,11 @@ { "name": "RetrieveChangeRequestTimeEntry", - "fully_qualified_name": "FreshserviceApi.RetrieveChangeRequestTimeEntry@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeRequestTimeEntry@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTask.json new file mode 100644 index 00000000..28393709 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTask.json @@ -0,0 +1,124 @@ +{ + "name": "RetrieveChangeTask", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeTask@1.0.0", + "description": "Retrieve task details from a specific Change request.\n\nFetches details of a task associated with a specified Change request using the change ID and task ID in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique identifier for the change request. This is required to retrieve the task associated with it.", + "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_id", + "required": true, + "description": "ID of the task to retrieve details 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 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": 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 index c5eb7a2f..7c12e38c 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTaskInfo.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTaskInfo.json @@ -1,11 +1,11 @@ { "name": "RetrieveChangeTaskInfo", - "fully_qualified_name": "FreshserviceApi.RetrieveChangeTaskInfo@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeTaskInfo@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json index 76ce50c9..29adf966 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json @@ -1,11 +1,11 @@ { "name": "RetrieveChangeTasks", - "fully_qualified_name": "FreshserviceApi.RetrieveChangeTasks@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeTasks@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTimeEntry.json new file mode 100644 index 00000000..f6f2ad03 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.RetrieveChangeTimeEntry@1.0.0", + "description": "Retrieve a time entry on a Change request by ID.\n\nUse this tool to obtain details about a specific time entry associated with a Change request in Freshservice, identified by its Change ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to retrieve the specific time entry.", + "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 unique ID of the specific 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCsatSurvey.json new file mode 100644 index 00000000..5da1d394 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveCsatSurvey.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveCsatSurvey", + "fully_qualified_name": "FreshserviceApi.RetrieveCsatSurvey@1.0.0", + "description": "Retrieve a CSAT survey by ID from Freshservice.\n\nUse this tool to fetch detailed information about a Customer Satisfaction (CSAT) survey from Freshservice by providing the survey ID. Ideal for accessing survey feedback and metrics.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "csat_survey_id", + "required": true, + "description": "ID of the CSAT survey to retrieve from Freshservice.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json index 123be180..c883a75a 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json @@ -1,11 +1,11 @@ { "name": "RetrieveDepartmentDetails", - "fully_qualified_name": "FreshserviceApi.RetrieveDepartmentDetails@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveDepartmentDetails@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json index 757348d5..fad90d81 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json @@ -1,11 +1,11 @@ { "name": "RetrieveFreshserviceAgent", - "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceAgent@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceAgent@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeRequest.json new file mode 100644 index 00000000..b83cdb1c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeRequest.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveFreshserviceChangeRequest", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceChangeRequest@1.0.0", + "description": "Retrieve a Freshservice change request by ID.\n\nUse this tool to obtain detailed information about a specific change request in Freshservice when you have the change ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeTask.json new file mode 100644 index 00000000..b19c3c45 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceChangeTask.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveFreshserviceChangeTask", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceChangeTask@1.0.0", + "description": "Retrieve a task from a Freshservice Change request by ID.\n\nUse this tool to fetch details of a specific task associated with a Change request in Freshservice, identified by its task and change IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique integer ID of the change request to retrieve the task from.", + "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_id", + "required": true, + "description": "The unique integer ID of the task 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 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json index 26c5f07f..aa5024bc 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProblem@1.0.0", + "description": "Retrieve problem details from Freshservice by ID.\n\nCall this tool to obtain detailed information about a specific problem in Freshservice using the problem ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "problem_identifier", + "name": "problem_id", "required": true, - "description": "The unique ID of the problem in Freshservice to retrieve details for.", + "description": "ID of the Problem to retrieve from Freshservice. This should be an integer value corresponding to the specific problem you wish to access.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "problem_id", - "tool_parameter_name": "problem_identifier", + "tool_parameter_name": "problem_id", "description": "ID of Problem to retrieve", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json index e20b1c5f..7e5ba9ba 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProblems@1.0.0", + "description": "Retrieve a list of all problems in Freshservice.\n\nUse this tool to get a comprehensive list of all problems recorded in Freshservice. It is useful for monitoring, reporting, and managing issues within the service desk.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "updated_since", + "name": "filter_by_last_updated_date", "required": false, - "description": "Retrieve problems updated since the specified date. Format: YYYY-MM-DD.", + "description": "Retrieve problems updated on or after the specified date (ISO 8601 format).", "value_schema": { "val_type": "string", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "problems_per_page", "required": false, - "description": "The number of problems to retrieve per page in a paginated list from Freshservice.", + "description": "The number of problems to retrieve per page for pagination.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -40,9 +40,9 @@ "http_endpoint_parameter_name": "per_page" }, { - "name": "page_number_to_retrieve", + "name": "retrieve_page_number", "required": false, - "description": "The page number of the problems list to retrieve from Freshservice.", + "description": "Specify the page number to retrieve during pagination of the problem list.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems", @@ -102,7 +102,7 @@ "parameters": [ { "name": "updated_since", - "tool_parameter_name": "updated_since", + "tool_parameter_name": "filter_by_last_updated_date", "description": "Retrieve the problems by when it was last updated", "value_schema": { "val_type": "string", @@ -138,7 +138,7 @@ }, { "name": "page", - "tool_parameter_name": "page_number_to_retrieve", + "tool_parameter_name": "retrieve_page_number", "description": "The page number to retrieve.", "value_schema": { "val_type": "integer", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json index 2e781a43..44147c9b 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json @@ -1,16 +1,16 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProject@1.0.0", + "description": "Retrieve a specific project from Freshservice by ID.\n\nUse this tool to obtain detailed information about a specific project from Freshservice using its unique ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "project_id", + "name": "project_identifier", "required": true, "description": "The unique integer ID of the project to retrieve from Freshservice.", "value_schema": { @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "project_id", - "tool_parameter_name": "project_id", + "tool_parameter_name": "project_identifier", "description": "ID of project to retrieve", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceReleaseTimeEntry.json new file mode 100644 index 00000000..72c8794d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceReleaseTimeEntry.json @@ -0,0 +1,124 @@ +{ + "name": "RetrieveFreshserviceReleaseTimeEntry", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceReleaseTimeEntry@1.0.0", + "description": "Retrieve a specific time entry from Freshservice release.\n\nUse this tool to get details about a specific time entry associated with a release in Freshservice by providing the release and time entry IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The ID of the release to retrieve the time entry from. Must be an 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": "time_entry_id", + "required": true, + "description": "The unique identifier for the time entry you want to retrieve from a specific 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 '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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceSurvey.json new file mode 100644 index 00000000..ca062d04 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceSurvey.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveFreshserviceSurvey", + "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceSurvey@1.0.0", + "description": "Retrieve CSAT Survey details from Freshservice.\n\nUse this tool to fetch the Customer Satisfaction (CSAT) Survey details from Freshservice using a specific survey ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "survey_id", + "required": true, + "description": "ID of the CSAT survey to retrieve from Freshservice.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/surveys/{survey_id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "survey_id", + "tool_parameter_name": "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveLocationDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveLocationDetails.json new file mode 100644 index 00000000..cb74b80e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveLocationDetails.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveLocationDetails", + "fully_qualified_name": "FreshserviceApi.RetrieveLocationDetails@1.0.0", + "description": "Retrieve details of a specific location by ID.\n\nThis tool retrieves detailed information about a specific location using its ID in the Freshservice platform. Use this tool to access location data when a user's inquiry pertains to location details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_id", + "required": true, + "description": "The unique identifier for the location 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": "" + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json index db37def9..a19af8e6 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json @@ -1,11 +1,11 @@ { "name": "RetrieveOnboardingRequest", - "fully_qualified_name": "FreshserviceApi.RetrieveOnboardingRequest@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveOnboardingRequest@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/{request_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemDetails.json new file mode 100644 index 00000000..f5e9bdf7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemDetails.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveProblemDetails", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemDetails@1.0.0", + "description": "Retrieve details of a specific problem by ID.\n\nUse this tool to get detailed information about a problem in Freshservice by specifying its ID. Useful for retrieving specific problem data for analysis or reporting.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "ID of the problem to retrieve 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json index 2f91e7a0..ab8ad1d5 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemNote@1.0.0", + "description": "Retrieve a note on a Freshservice problem using IDs.\n\nUse this tool to get detailed information about a specific note associated with a problem in Freshservice by providing the problem and note IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "problem_identifier", + "name": "problem_id", "required": true, - "description": "The unique ID of the problem to retrieve the note from. Must be an integer.", + "description": "The ID of the problem for which the note is being retrieved. It should be an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "note_id", "required": true, - "description": "The unique identifier for the note to be retrieved.", + "description": "The unique integer ID of the note to be retrieved on the Freshservice problem.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}", @@ -87,7 +87,7 @@ "parameters": [ { "name": "problem_id", - "tool_parameter_name": "problem_identifier", + "tool_parameter_name": "problem_id", "description": "ID of problem", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNotes.json new file mode 100644 index 00000000..6777611f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNotes.json @@ -0,0 +1,181 @@ +{ + "name": "RetrieveProblemNotes", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemNotes@1.0.0", + "description": "Retrieve notes from a specific problem in Freshservice.\n\nUse this tool to get all notes associated with a specific problem in Freshservice by providing the problem's ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The integer ID of the problem for which notes will 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 notes are to be retrieved" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "notes_per_page", + "required": false, + "description": "Specify the number of notes 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 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 page number of notes 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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 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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json index 9902ea0e..65712588 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemTask@1.0.0", + "description": "Retrieve a specific task from a problem in Freshservice.\n\nThis tool retrieves the details of a task associated with a specific problem in Freshservice, using the problem and task IDs provided.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "problem_id", "required": true, - "description": "The unique integer ID of the problem to retrieve the task from in Freshservice.", + "description": "The unique identifier for the problem used to retrieve the task details from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -27,7 +27,7 @@ { "name": "task_id", "required": true, - "description": "The unique identifier for the task to retrieve from the specified problem.", + "description": "ID of the task to be retrieved from the specified problem, expected as an integer.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTasks.json new file mode 100644 index 00000000..1c546362 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTasks.json @@ -0,0 +1,157 @@ +{ + "name": "RetrieveProblemTasks", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemTasks@1.0.0", + "description": "Retrieve tasks for a specified problem in Freshservice.\n\nThis tool fetches tasks related to a specific problem identified by its ID in the Freshservice system. Use this tool to obtain a detailed list of tasks linked to a particular problem, which can assist in problem management and resolution.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_identifier", + "required": true, + "description": "The unique identifier of the problem for which related tasks should 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": "The 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_to_retrieve", + "required": false, + "description": "The specific page number of tasks 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-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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_identifier", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntries.json new file mode 100644 index 00000000..644cc1a7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntries.json @@ -0,0 +1,181 @@ +{ + "name": "RetrieveProblemTimeEntries", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemTimeEntries@1.0.0", + "description": "Retrieve time entries for a specific problem in Freshservice.\n\nThis tool retrieves the time entries associated with a specific problem in Freshservice based on the given problem ID. It should be called when you need to obtain details about the time spent on a particular problem.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The integer ID of the problem to retrieve its time entries in Freshservice.", + "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": "Specify the number of time 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 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": "Specify 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntry.json new file mode 100644 index 00000000..add29a26 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveProblemTimeEntry", + "fully_qualified_name": "FreshserviceApi.RetrieveProblemTimeEntry@1.0.0", + "description": "Retrieve a time entry for a specific problem in Freshservice.\n\nUse this tool to get detailed information about a time entry associated with a specific problem in Freshservice when provided with the problem ID and time entry ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique identifier for the problem to retrieve the associated 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": "An integer representing the ID of the specific 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProductInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProductInfo.json new file mode 100644 index 00000000..db662321 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProductInfo.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveProductInfo", + "fully_qualified_name": "FreshserviceApi.RetrieveProductInfo@1.0.0", + "description": "Retrieve a specific product from the product catalog.\n\nUse this tool to obtain details of a particular product by providing the product ID. It's useful for finding product specifications, availability, and other catalog information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "An integer representing the unique ID of the product to retrieve from the 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 '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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectInfo.json new file mode 100644 index 00000000..e5123c8a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectInfo.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveProjectInfo", + "fully_qualified_name": "FreshserviceApi.RetrieveProjectInfo@1.0.0", + "description": "Retrieve project details using a project ID from Freshservice.\n\nUse this tool to get detailed information about a specific project from Freshservice by providing the project ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The ID of the project to be retrieved 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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectTasks.json new file mode 100644 index 00000000..664132ae --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProjectTasks.json @@ -0,0 +1,237 @@ +{ + "name": "RetrieveProjectTasks", + "fully_qualified_name": "FreshserviceApi.RetrieveProjectTasks@1.0.0", + "description": "Retrieve a list of project tasks from Freshservice.\n\nUse this tool to fetch all tasks associated with a specific project in Freshservice. Useful for tracking project progress or managing project details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The unique ID of the project for which you want to retrieve tasks. This specifies which project's tasks to list.", + "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": "Specify the number of tasks to retrieve per page in 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 in the paginated 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" + }, + { + "name": "task_filter", + "required": false, + "description": "Specifies the filter for tasks. 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": "filter_by_parent_id", + "required": false, + "description": "Filter tasks by their parent task ID. Useful for retrieving tasks associated with a specific parent task.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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_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": "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": "filter_by_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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrievePurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrievePurchaseOrder.json new file mode 100644 index 00000000..028915e9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrievePurchaseOrder.json @@ -0,0 +1,115 @@ +{ + "name": "RetrievePurchaseOrder", + "fully_qualified_name": "FreshserviceApi.RetrievePurchaseOrder@1.0.0", + "description": "Retrieve an existing purchase order by ID.\n\nFetch the details of an existing purchase order using its unique identifier. This tool should be called when purchase order information is needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "The unique identifier of the purchase order to retrieve. This must 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json index b02760f2..5896cd33 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTask@1.0.0", + "description": "Retrieve a task from a specific release in Freshservice.\n\nCall this tool to get details of a task associated with a specific release by providing the release and task IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "release_id", + "name": "release_identifier", "required": true, - "description": "The unique identifier for the release to retrieve a specific task from. This is an integer value.", + "description": "The numerical ID of the release to retrieve a specific task from.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "release_id" }, { - "name": "task_id", + "name": "task_identifier", "required": true, - "description": "The unique ID of the task you want to retrieve within a release.", + "description": "Provide the unique integer ID of the task to be retrieved.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}", @@ -87,7 +87,7 @@ "parameters": [ { "name": "release_id", - "tool_parameter_name": "release_id", + "tool_parameter_name": "release_identifier", "description": "ID of release", "value_schema": { "val_type": "integer", @@ -105,7 +105,7 @@ }, { "name": "task_id", - "tool_parameter_name": "task_id", + "tool_parameter_name": "task_identifier", "description": "ID of the task", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json index 24306624..36d3d2f7 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json @@ -1,11 +1,11 @@ { "name": "RetrieveReleaseTasks", - "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTasks@0.1.0", + "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTasks@0.2.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" + "version": "0.2.0" }, "input": { "parameters": [ @@ -76,10 +76,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -87,13 +87,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks", @@ -157,14 +157,6 @@ ], "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", @@ -172,7 +164,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTimeEntry.json new file mode 100644 index 00000000..a7aa5be4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveReleaseTimeEntry", + "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTimeEntry@1.0.0", + "description": "Retrieve a specific time entry from a release.\n\nUse this tool to obtain details about a specific time entry associated with a release in Freshservice, using the release and time entry IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique integer ID of the release for which you want to retrieve the time entry. Ensure it corresponds to an existing 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 unique ID of the time entry to be retrieved from a specific 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesterById.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesterById.json new file mode 100644 index 00000000..641c87b0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesterById.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveRequesterById", + "fully_qualified_name": "FreshserviceApi.RetrieveRequesterById@1.0.0", + "description": "Retrieve details of a requester by their ID from Freshservice.\n\nUse this tool to access detailed information about a specific requester in your Freshservice account by providing their ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "The unique identifier of the requester to retrieve from Freshservice. Must be an integer.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesters.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesters.json new file mode 100644 index 00000000..0219fdb4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveRequesters.json @@ -0,0 +1,313 @@ +{ + "name": "RetrieveRequesters", + "fully_qualified_name": "FreshserviceApi.RetrieveRequesters@1.0.0", + "description": "Retrieve a list of all Requesters in Freshservice.\n\nUse this tool to get a comprehensive list of all requesters stored in the Freshservice platform. This can be useful for managing user data or integrating with other systems.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "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 page number of requesters to retrieve in the paginated 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" + }, + { + "name": "requester_email", + "required": false, + "description": "The email address used to filter and retrieve 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": "The mobile phone number to filter requesters by. Returns requesters associated with this number.", + "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_filter", + "required": false, + "description": "Specify the work phone number to filter the requesters list based on this number.", + "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": "requester_query_filter", + "required": false, + "description": "A URL-encoded query string to filter requesters based on fields like first name, job title, created date, 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 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": "include_only_active_accounts", + "required": false, + "description": "Include only active user accounts if true. To include both active and deactivated accounts, omit or set to false.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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", + "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_filter", + "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": "include_only_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": "requester_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json index a528276d..6f44ca82 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveSoftwareApplication@1.0.0", + "description": "Retrieve details of a specific software application.\n\nThis tool retrieves information about a specified software application from Freshservice when provided with the application ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.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.", + "description": "The unique identifier of the software application to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareInfo.json new file mode 100644 index 00000000..ce2a1fd8 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareInfo.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveSoftwareInfo", + "fully_qualified_name": "FreshserviceApi.RetrieveSoftwareInfo@1.0.0", + "description": "Retrieve specific software details from Freshservice.\n\nCall this tool to get detailed information about a specific software application in Freshservice, using its application ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "application_id", + "required": true, + "description": "The unique identifier of the software application in Freshservice. Provide the ID to retrieve specific details.", + "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSolutionFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSolutionFolders.json new file mode 100644 index 00000000..a0b61f78 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSolutionFolders.json @@ -0,0 +1,181 @@ +{ + "name": "RetrieveSolutionFolders", + "fully_qualified_name": "FreshserviceApi.RetrieveSolutionFolders@1.0.0", + "description": "Retrieve all solution folders from Freshservice.\n\nUse this tool to get a list of all solution folders available in Freshservice. Useful for organizing or managing solution articles.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_category_id", + "required": false, + "description": "ID of the solution category where the folders reside. This specifies which category's folders to retrieve.", + "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": "entries_per_page", + "required": false, + "description": "The number of solution folder 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": "pagination_page_number", + "required": false, + "description": "Specify the page number to retrieve in a paginated list of solution folders.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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": "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": "pagination_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAsset.json new file mode 100644 index 00000000..a14d9218 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAsset.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveSpecificAsset", + "fully_qualified_name": "FreshserviceApi.RetrieveSpecificAsset@1.0.0", + "description": "Retrieve details of a specific asset using its display ID.\n\nUse this tool to obtain information about a particular asset identified by its display ID. Ideal for asset management and tracking.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID of the asset to retrieve information for. This ID is used to specify the particular asset in the 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" + } + ] + }, + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAssetType.json new file mode 100644 index 00000000..137b8c04 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificAssetType.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveSpecificAssetType", + "fully_qualified_name": "FreshserviceApi.RetrieveSpecificAssetType@1.0.0", + "description": "Retrieve details of a specific asset type.\n\nThis tool retrieves information about a specific asset type in Freshservice. It should be called when you need to access details about a particular asset type using its ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_type_identifier", + "required": true, + "description": "The unique identifier for the asset type to retrieve. 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": "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificSoftware.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificSoftware.json new file mode 100644 index 00000000..b96c24fd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSpecificSoftware.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveSpecificSoftware", + "fully_qualified_name": "FreshserviceApi.RetrieveSpecificSoftware@1.0.0", + "description": "Fetch details of a specific software application from Freshservice.\n\n", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "software_application_id", + "required": true, + "description": "The unique integer identifier for the software application in Freshservice that you want to retrieve.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json index 6a2f65b1..e85db629 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.RetrieveTicketTask@1.0.0", + "description": "Retrieve a specific task from a ticket request.\n\nUse this tool to get information about a task associated with a specific ticket in Freshservice by providing the ticket and task IDs.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "ticket_request_id", "required": true, - "description": "The ID of the ticket request to retrieve the specific task from Freshservice.", + "description": "The unique integer ID of the ticket request in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "ticket_id" }, { - "name": "task_identifier", + "name": "task_id", "required": true, - "description": "The unique identifier for the task to be retrieved. Provide this to get task details from a ticket.", + "description": "The unique integer ID of the task to retrieve from the ticket request.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}", @@ -105,7 +105,7 @@ }, { "name": "task_id", - "tool_parameter_name": "task_identifier", + "tool_parameter_name": "task_id", "description": "ID of the task", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTasks.json new file mode 100644 index 00000000..32fb7c39 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTasks.json @@ -0,0 +1,181 @@ +{ + "name": "RetrieveTicketTasks", + "fully_qualified_name": "FreshserviceApi.RetrieveTicketTasks@1.0.0", + "description": "Retrieve tasks for a specific ticket ID.\n\nThis tool is used to fetch the list of tasks associated with a specific ticket request from Freshservice, using the ticket ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The unique ID of the ticket request to retrieve associated tasks from Freshservice.", + "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 a paginated response.", + "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_to_retrieve", + "required": false, + "description": "The page number of tasks to retrieve from the paginated 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-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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": "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTimeEntry.json new file mode 100644 index 00000000..30f490c5 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTimeEntry.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveTicketTimeEntry", + "fully_qualified_name": "FreshserviceApi.RetrieveTicketTimeEntry@1.0.0", + "description": "Retrieve time entry details for a specific ticket.\n\nUse this tool to get details of a time entry associated with a specific ticket ID in Freshservice. Useful for tracking time spent on ticket resolutions or audits.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The unique ID of the ticket request for which the time entry details are needed. This should 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_identifier", + "required": true, + "description": "The unique integer ID of the time entry to retrieve details from.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_identifier", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorDetails.json new file mode 100644 index 00000000..e5f8a8d3 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorDetails.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveVendorDetails", + "fully_qualified_name": "FreshserviceApi.RetrieveVendorDetails@1.0.0", + "description": "Retrieve details of a specific vendor by ID.\n\nThis tool fetches detailed information about a specific vendor using their vendor ID. It should be called when you need to access vendor information stored in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_id", + "required": true, + "description": "The unique integer ID of the vendor to retrieve details for.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorInfo.json new file mode 100644 index 00000000..c4268b85 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveVendorInfo.json @@ -0,0 +1,91 @@ +{ + "name": "RetrieveVendorInfo", + "fully_qualified_name": "FreshserviceApi.RetrieveVendorInfo@1.0.0", + "description": "Retrieve details of a specific vendor using vendor ID.\n\nThis tool fetches detailed information about a specific vendor by using the vendor ID. It should be called when vendor information such as name, contact details, or associated products needs to be retrieved.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_id", + "required": true, + "description": "The unique identifier of the vendor to retrieve information for. Expected to 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": "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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/vendors/{vendor_id}", + "http_method": "GET", + "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": [], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAgentGroup.json new file mode 100644 index 00000000..24a4b9e3 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAgentGroup.json @@ -0,0 +1,374 @@ +{ + "name": "UpdateAgentGroup", + "fully_qualified_name": "FreshserviceApi.UpdateAgentGroup@1.0.0", + "description": "Update an existing Agent Group in Freshservice.\n\nThis tool updates an existing agent group in Freshservice. It should be called when modifications to group details are required.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_id", + "required": true, + "description": "The unique identifier of the agent group to update. This should be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent group to retrieve" + }, + "inferrable": true, + "http_endpoint_parameter_name": "agent_group_id" + }, + { + "name": "agent_group_update_details", + "required": true, + "description": "JSON object containing details of the agent group to update, including id, name, description, business hours, escalation settings, members, and other properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent group that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "agent_group_id", + "tool_parameter_name": "agent_group_id", + "description": "ID of agent group to retrieve", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent group to retrieve" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "agent_group_update_details", + "description": "Agent group that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent group that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent group that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 12345\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the agent group\",\n \"example\": \"Analysts\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the agent group\",\n \"example\": \"IT Analysts Agent group\"\n },\n \"business_hours_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the business hours configuration associated with the group\",\n \"format\": \"int64\",\n \"example\": 3458\n },\n \"escalate_to\": {\n \"type\": \"integer\",\n \"description\": \"The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \\u2018none\\u2019, please set the value of this parameter to \\u2018null\\u2019.\",\n \"format\": \"int64\",\n \"example\": 234123423\n },\n \"agent_ids\": {\n \"type\": \"array\",\n \"description\": \" Array of user IDs of agents who belong to the group.\",\n \"example\": [\n \"2342342\",\n \"9943044\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"members\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are members of the group.\",\n \"example\": [\n \"9284729\",\n \"9349857\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"observers\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are observers of the group.\",\n \"example\": [\n \"3457384\",\n \"9827342\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"group_leaders\": {\n \"type\": \"array\",\n \"description\": \"Array of user IDs of agents who are leaders of the group.\",\n \"example\": [\n \"4785820\",\n \"5672910\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"int64\"\n }\n },\n \"auto_ticket_assign\": {\n \"type\": \"boolean\",\n \"description\": \"Describes the automatic ticket assignment type. Will not be supported if the \\\"Round Robin\\\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise.\",\n \"example\": true\n },\n \"restricted\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether the group is a resricted group\",\n \"example\": true\n },\n \"approval_required\": {\n \"type\": \"boolean\",\n \"description\": \"Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent group was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-19T06:24:30Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAnnouncement.json new file mode 100644 index 00000000..bc968f87 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAnnouncement.json @@ -0,0 +1,406 @@ +{ + "name": "UpdateAnnouncement", + "fully_qualified_name": "FreshserviceApi.UpdateAnnouncement@1.0.0", + "description": "Update an existing announcement in Freshservice.\n\nUse this tool to modify details of an existing announcement in Freshservice by providing the announcement ID and new content.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_id_to_update", + "required": true, + "description": "The unique integer ID of the announcement that needs to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of announcement to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "announcement_id" + }, + { + "name": "announcement_update_details", + "required": true, + "description": "JSON object with the announcement details to update, including fields like `title`, `body`, `state`, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Announcement details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "announcement_id", + "tool_parameter_name": "announcement_id_to_update", + "description": "ID of announcement to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of announcement to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "announcement_update_details", + "description": "Announcement details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Announcement details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Announcement details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Announcement\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400623\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to created this Announcement\",\n \"format\": \"int64\",\n \"example\": 1407423\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"State of the Announcement active, archived, scheduled\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": \"active\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the Announcement\",\n \"example\": \"Welcome to Freshservice\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in plain text\",\n \"readOnly\": true,\n \"example\": \"Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want.\"\n },\n \"body_html\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in HTML format\",\n \"example\": \"
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
\"\n },\n \"visible_from\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement becomes active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-11T07:16:43Z\"\n },\n \"visible_till\": {\n \"type\": \"string\",\n \"description\": \"Timestamp until which Announcement is active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-18T07:16:43Z\"\n },\n \"visibility\": {\n \"type\": \"string\",\n \"description\": \"Who can see the announcement. Values - everyone, agents_only, agents_and_groups\",\n \"example\": \"everyone\"\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"Array of Department IDs that can view this Announcement\",\n \"example\": [\n 1001,\n 1003\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Array of Group IDs that can view this Announcement\",\n \"example\": [\n 2002,\n 2004\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"is_read\": {\n \"type\": \"boolean\",\n \"description\": \"True if the logged-in-user has read the announcement. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"send_email\": {\n \"type\": \"boolean\",\n \"description\": \"True if the announcement needs to be sent via email as well. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"additional_emails\": {\n \"type\": \"array\",\n \"description\": \"Additional email addresses to which the announcement needs to be sent\",\n \"example\": [\n \"john.doe@acmecorp.com\",\n \"alice@acmecorp.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json index 03f9807e..c2975591 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.UpdateAssetComponent@1.0.0", + "description": "Update a specific component within an asset.\n\nThis tool updates a specified component within an asset in Freshservice. Use it to modify details of an existing component in an asset by providing the asset's display ID and the component's ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "asset_display_id", "required": true, - "description": "The numeric identifier of the asset to be updated in Freshservice.", + "description": "The unique display ID of the asset where the component is being updated. This is required to identify the specific asset in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -25,9 +25,9 @@ "http_endpoint_parameter_name": "display_id" }, { - "name": "component_identifier", + "name": "component_id", "required": true, - "description": "The unique identifier of the component to be updated, as an integer.", + "description": "The unique identifier for the component to update within the asset. This should be an integer representing the component's ID.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -61,10 +61,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -72,13 +72,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}", @@ -105,7 +105,7 @@ }, { "name": "component_id", - "tool_parameter_name": "component_identifier", + "tool_parameter_name": "component_id", "description": "", "value_schema": { "val_type": "integer", @@ -124,14 +124,6 @@ ], "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", @@ -139,7 +131,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetInfo.json new file mode 100644 index 00000000..a52de71a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetInfo.json @@ -0,0 +1,452 @@ +{ + "name": "UpdateAssetInfo", + "fully_qualified_name": "FreshserviceApi.UpdateAssetInfo@1.0.0", + "description": "Update existing asset details in Freshservice.\n\nUse this tool to modify details of an asset in the Freshservice system. It should be called when there's a need to update the information of an already registered asset.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID 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": "asset_update_details", + "required": true, + "description": "JSON object containing details such as asset ID, display ID, name, type, impact, usage, and other attributes for updating an asset.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_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": "requestBody", + "tool_parameter_name": "asset_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetType.json new file mode 100644 index 00000000..5320a407 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetType.json @@ -0,0 +1,280 @@ +{ + "name": "UpdateAssetType", + "fully_qualified_name": "FreshserviceApi.UpdateAssetType@1.0.0", + "description": "Update an existing asset type in Freshservice.\n\nUse this tool to update information about an existing asset type within the Freshservice platform. The asset type to be updated is identified by its asset_type_id.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_type_id", + "required": true, + "description": "Unique identifier of the asset type to be updated.", + "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" + }, + { + "name": "asset_id", + "required": false, + "description": "Unique identifier of the asset type to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "asset_type_name", + "required": false, + "description": "The new name for the asset type to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "asset_type_description_html", + "required": false, + "description": "Provide a short HTML-formatted description of the asset type.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "plain_text_description", + "required": false, + "description": "Provide a short plain text description of the asset type. Avoid using HTML or special formatting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description_text" + }, + { + "name": "parent_asset_type_id", + "required": false, + "description": "Unique identifier for the parent asset type to establish hierarchy.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the parent asset type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "parent_asset_type_id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "asset_id", + "description": "Unique identifier of the asset type", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the asset type" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "asset_type_name", + "description": "Name of the asset type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the asset type" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "asset_type_description_html", + "description": "Short description of the asset type in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description_text", + "tool_parameter_name": "plain_text_description", + "description": "Short description of the asset type in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the asset type in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "parent_asset_type_id", + "tool_parameter_name": "parent_asset_type_id", + "description": "Unique identifier of the parent asset type", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the parent asset type" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the asset type\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the asset type\",\n \"example\": \"Hardware\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Short description of the asset type in HTML format\",\n \"example\": \"Computer or Laptop Hardware\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Short description of the asset type in plain text format\",\n \"readOnly\": true,\n \"example\": \"Computer or Laptop Hardware\"\n },\n \"parent_asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the parent asset type\",\n \"format\": \"int64\",\n \"example\": 14000234324\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponse.json new file mode 100644 index 00000000..2836d008 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponse.json @@ -0,0 +1,360 @@ +{ + "name": "UpdateCannedResponse", + "fully_qualified_name": "FreshserviceApi.UpdateCannedResponse@1.0.0", + "description": "Update a canned response in Freshservice.\n\nUse this tool to update an existing canned response in Freshservice. It modifies the details of a specific canned response identified by its ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_id", + "required": true, + "description": "The ID of the canned response you wish to update. This should be an integer value that uniquely identifies the response within Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of canned response to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "canned_response_id" + }, + { + "name": "canned_response_details", + "required": true, + "description": "JSON containing the updated details of the canned response, such as title, folder_id, content, attachments, and timestamps.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Canned Response details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "canned_response_id", + "tool_parameter_name": "canned_response_id", + "description": "ID of canned response to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of canned response to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "canned_response_details", + "description": "Canned Response details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Canned Response details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Canned Response details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14006643\n },\n \"title\": {\n \"type\": \"string\",\n \"example\": \"Common L2 response\"\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"example\": 14022945\n },\n \"content\": {\n \"type\": \"string\",\n \"readOnly\": true,\n \"example\": \"Raise a support ticket\"\n },\n \"content_html\": {\n \"type\": \"string\",\n \"example\": \"
Raise a support ticket
\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Auto increment value\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000884384\n },\n \"content_type\": {\n \"type\": \"string\",\n \"example\": \"application/pdf\"\n },\n \"size\": {\n \"type\": \"number\",\n \"description\": \"Size of the attached file\",\n \"readOnly\": true,\n \"example\": 1024.0\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the attachment\",\n \"example\": \"doc1.pdf\"\n },\n \"attachment_url\": {\n \"type\": \"string\",\n \"description\": \"URL of the attachment\",\n \"example\": \"https://s3.amazonaws.com/fs/doc1.pdf\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponseFolder.json new file mode 100644 index 00000000..d0fdfed8 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCannedResponseFolder.json @@ -0,0 +1,313 @@ +{ + "name": "UpdateCannedResponseFolder", + "fully_qualified_name": "FreshserviceApi.UpdateCannedResponseFolder@1.0.0", + "description": "Update an existing Canned Response Folder in Freshservice.\n\nUse this tool to modify details of a specific canned response folder in Freshservice by providing the folder ID and required updates.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "canned_response_folder_id", + "required": true, + "description": "The ID of the canned response folder to update in Freshservice. This is required to identify which folder needs modification.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of canned response Folder to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "canned_response_folder_id" + }, + { + "name": "new_folder_id", + "required": false, + "description": "The new ID to assign to the canned response folder. This should 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": "id" + }, + { + "name": "folder_name", + "required": false, + "description": "The new name for the canned response folder. This will replace the current name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "folder_type", + "required": false, + "description": "Specify the type of the canned response folder. This may relate to its category or purpose.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "type" + }, + { + "name": "folder_responses_count", + "required": false, + "description": "Specifies the number of responses in the canned response folder to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "responses_count" + }, + { + "name": "folder_creation_date", + "required": false, + "description": "The date and time the canned response folder was originally created. Expected format is ISO 8601 (e.g., '2023-10-12T10:20:30Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "last_updated_timestamp", + "required": false, + "description": "The timestamp of when the folder was last updated. Expected in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "canned_response_folder_id", + "tool_parameter_name": "canned_response_folder_id", + "description": "ID of canned response Folder to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of canned response Folder to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "new_folder_id", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "folder_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "type", + "tool_parameter_name": "folder_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "responses_count", + "tool_parameter_name": "folder_responses_count", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "folder_creation_date", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "last_updated_timestamp", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Canned Response details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"name\": {\n \"type\": \"string\",\n \"example\": \"Auto Response\"\n },\n \"type\": {\n \"type\": \"string\",\n \"readOnly\": true,\n \"example\": \"General\"\n },\n \"responses_count\": {\n \"type\": \"integer\",\n \"format\": \"int32\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"created_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeNote.json new file mode 100644 index 00000000..163a962d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeNote.json @@ -0,0 +1,379 @@ +{ + "name": "UpdateChangeNote", + "fully_qualified_name": "FreshserviceApi.UpdateChangeNote@1.0.0", + "description": "Update an existing note on a Freshservice change request.\n\nUse this tool to modify an existing note on a specific change request in Freshservice by providing the change and note IDs.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "Unique identifier for the change request to be updated.", + "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_id", + "required": true, + "description": "The ID of the existing note to be updated. Provide the unique integer identifier for the note.", + "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" + }, + { + "name": "note_unique_id", + "required": false, + "description": "The unique identifier for the specific note to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_id_of_note_creator", + "required": false, + "description": "Unique ID of the user who originally created the note. Used to identify the note's author.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "Email addresses to notify about the updated note. Provide as an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The body of the note in HTML format. Use HTML tags to style the content appropriately.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_text", + "required": false, + "description": "The content of the note in plain text format to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_time", + "required": false, + "description": "Date and time when the note was created; format should follow ISO 8601 standard.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_datetime", + "required": false, + "description": "The date and time when the note was last updated. Use ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}", + "http_method": "PUT", + "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_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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_id_of_note_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_time", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"note details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeRequest.json new file mode 100644 index 00000000..6ef44bd4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeRequest.json @@ -0,0 +1,1332 @@ +{ + "name": "UpdateChangeRequest", + "fully_qualified_name": "FreshserviceApi.UpdateChangeRequest@1.0.0", + "description": "Update an existing Change request in Freshservice.\n\nUse this tool to modify the details of an existing Change request in Freshservice. Useful for updating information or status of Change requests.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique identifier for the Change request to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of change request to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "change_id" + }, + { + "name": "update_details", + "required": true, + "description": "JSON object with updated change request details, including fields like 'id', 'subject', 'priority', 'status', etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "change details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "change_id", + "tool_parameter_name": "change_request_id", + "description": "ID of change request to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of change request to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "update_details", + "description": "change details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "change details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"change details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the change\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002342342\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the initiator of the change\",\n \"format\": \"int64\",\n \"example\": 14000234234\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400023498\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the change is assigned\",\n \"format\": \"int64\",\n \"example\": 1400097572\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 2\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the change 1-Low, 2-Medium, 3-High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"risk\": {\n \"type\": \"integer\",\n \"description\": \"Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"change_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the change 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"approval_status\": {\n \"type\": \"integer\",\n \"description\": \"Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the change\",\n \"example\": \"Replace Macbook\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in HTML format\",\n \"example\": \"

Replace damaged Macbook

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Short description of the change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Replace damaged Macbook\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"project_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated project\",\n \"format\": \"int64\",\n \"example\": 1400023894\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the change\",\n \"format\": \"int64\",\n \"example\": 14000495482\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the change\",\n \"example\": \"Hardware\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the change\",\n \"example\": \"Computer\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the change\",\n \"example\": \"Mac\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which change was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"associated_release\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [\n {\n \"id\": 14000234324,\n \"display_id\": 1453,\n \"name\": \"Hardware-Monitor\"\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_problems\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the problems associated with the change request\",\n \"readOnly\": true,\n \"example\": [\n 140002394874,\n 140003948543\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"incidents_caused_by_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the incidents caused by this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400034598,\n 1400039485\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"tickets_initiating_change\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the tickets initiating this change request\",\n \"readOnly\": true,\n \"example\": [\n 1400023984,\n 1400034984\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"associated_project\": {\n \"type\": \"integer\",\n \"description\": \"Id of the associated release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140002394874\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"change_choices\": \"First Choice\",\n \"state\": \"TX\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"maintenance_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"black_out_window\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Change Window\",\n \"format\": \"int64\",\n \"example\": 140009348572\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the Change Window\",\n \"readOnly\": true,\n \"example\": \"Router firmware upgrade\"\n },\n \"window_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is starting\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"window_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Change Window is ending\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-25T11:30:00Z\"\n }\n },\n \"example\": {\n \"id\": 140009348572,\n \"name\": \"Router firmware upgrade\",\n \"description\": \"Router firmware upgrade\",\n \"window_start_date\": \"2021-11-24T11:30:00Z\",\n \"window_end_date\": \"2021-11-25T11:30:00Z\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTask.json new file mode 100644 index 00000000..8b360498 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTask.json @@ -0,0 +1,409 @@ +{ + "name": "UpdateChangeTask", + "fully_qualified_name": "FreshserviceApi.UpdateChangeTask@1.0.0", + "description": "Update a task on a Change request in Freshservice.\n\nUse this tool to modify an existing task within a Change request in the Freshservice system. It can be called when there is a need to update specific details of a task associated with a change process, such as status, assignee, or other parameters.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to be updated. This should be an integer value representing the specific change request in Freshservice.", + "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_id", + "required": true, + "description": "The unique ID of the task to be updated within the Change request.", + "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" + }, + { + "name": "task_details_to_update", + "required": true, + "description": "JSON object containing details to update the task, like status, assignee, title, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}", + "http_method": "PUT", + "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_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details_to_update", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTaskFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTaskFreshservice.json new file mode 100644 index 00000000..2b8bcd52 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTaskFreshservice.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateChangeTaskFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateChangeTaskFreshservice@1.0.0", + "description": "Update a task on an existing Change request in Freshservice.\n\nUse this tool to update the details of an existing task associated with a Change request in Freshservice. Call it when modifications to the task are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to be updated. This is required to specify which Change request the task belongs to.", + "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_id", + "required": true, + "description": "The unique identifier of the task to be updated.", + "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" + }, + { + "name": "task_details_to_update", + "required": true, + "description": "A JSON object containing task attributes to update, e.g., status, due date, and description.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}", + "http_method": "PUT", + "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_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details_to_update", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTimeEntry.json new file mode 100644 index 00000000..04ee1772 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateChangeTimeEntry.json @@ -0,0 +1,383 @@ +{ + "name": "UpdateChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateChangeTimeEntry@1.0.0", + "description": "Update a time entry on a Freshservice change request.\n\nUse this tool to update an existing time entry on a change request in Freshservice. It should be called when modifications to time logs related to change requests are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the change request to update the time entry for.", + "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 unique integer ID of the existing time entry to be updated.", + "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" + }, + { + "name": "time_entry_details", + "required": true, + "description": "JSON containing details of the time entry to update, including fields like id, task_id, start_time, time_spent, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCsatSurvey.json new file mode 100644 index 00000000..b9c23d9c --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateCsatSurvey.json @@ -0,0 +1,594 @@ +{ + "name": "UpdateCsatSurvey", + "fully_qualified_name": "FreshserviceApi.UpdateCsatSurvey@1.0.0", + "description": "Update an existing CSAT Survey in Freshservice.\n\nUse this tool to modify and update the content or settings of an existing CSAT Survey in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "survey_id", + "required": true, + "description": "The unique ID of the CSAT Survey to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Survey to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "survey_id" + }, + { + "name": "survey_update_details", + "required": true, + "description": "JSON object containing fields to be updated for the CSAT Survey, including survey details like name, status, trigger event, question, options, thank you message, and timestamps.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Customer Satisfaction Survey" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Survey" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false." + }, + "survey_trigger_event": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Ticket Closure", + "Ticket Resolution", + "All Replies", + "Agent Specified Emails" + ], + "properties": null, + "inner_properties": null, + "description": "Field to capture when the survey should be sent." + }, + "question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Question that will be asked to the requester to capture the service experience" + }, + "order_of_options": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Good to Bad", + "Bad to Good" + ], + "properties": null, + "inner_properties": null, + "description": "Gradient order of the options displayed" + }, + "options": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "option_1": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_2": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_3": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_4": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_5": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + } + }, + "inner_properties": null, + "description": null + }, + "thank_you_message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The final \\\"Thank you\\\" message that gets displayed to the requester upon completion of the survey" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent who last modified this survey" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was last modified" + } + }, + "inner_properties": null, + "description": "Survey that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "survey_id", + "tool_parameter_name": "survey_id", + "description": "ID of Survey to be updated", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Survey to be updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "survey_update_details", + "description": "Survey that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Customer Satisfaction Survey" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Survey" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the survey. For an activated survey, active = true. For a deactivated survey, active = false." + }, + "survey_trigger_event": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Ticket Closure", + "Ticket Resolution", + "All Replies", + "Agent Specified Emails" + ], + "properties": null, + "inner_properties": null, + "description": "Field to capture when the survey should be sent." + }, + "question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Question that will be asked to the requester to capture the service experience" + }, + "order_of_options": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Good to Bad", + "Bad to Good" + ], + "properties": null, + "inner_properties": null, + "description": "Gradient order of the options displayed" + }, + "options": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "option_1": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_2": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_3": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_4": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + }, + "option_5": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful." + }, + "follow_up_question": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Follow-up question that will asked when the requester responds with the current option." + } + }, + "inner_properties": null, + "description": "Response Options of the Customer Satisfaction Survey" + } + }, + "inner_properties": null, + "description": null + }, + "thank_you_message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The final \\\"Thank you\\\" message that gets displayed to the requester upon completion of the survey" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent who last modified this survey" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the survey was last modified" + } + }, + "inner_properties": null, + "description": "Survey that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Survey that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Customer Satisfaction Survey\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Survey\",\n \"example\": \"Buyer satisfaction\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"State of the survey. For an activated survey, active = true. For a deactivated survey, active = false.\",\n \"example\": true\n },\n \"survey_trigger_event\": {\n \"type\": \"string\",\n \"description\": \"Field to capture when the survey should be sent.\",\n \"example\": \"Ticket Closure\",\n \"enum\": [\n \"Ticket Closure\",\n \"Ticket Resolution\",\n \"All Replies\",\n \"Agent Specified Emails\"\n ]\n },\n \"question\": {\n \"type\": \"string\",\n \"description\": \"Question that will be asked to the requester to capture the service experience\",\n \"example\": \"How do you rate the buying experience?\"\n },\n \"order_of_options\": {\n \"type\": \"string\",\n \"description\": \"Gradient order of the options displayed\",\n \"example\": \"Good to Bad\",\n \"enum\": [\n \"Good to Bad\",\n \"Bad to Good\"\n ]\n },\n \"options\": {\n \"type\": \"object\",\n \"properties\": {\n \"option_1\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_2\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_3\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_4\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n },\n \"option_5\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"Option text that will be displayed to the requester. E.g. Fantastic, Neutral, Awful.\",\n \"example\": \"Fantastic\"\n },\n \"follow_up_question\": {\n \"type\": \"string\",\n \"description\": \"Follow-up question that will asked when the requester responds with the current option.\",\n \"example\": \"How do you rate overall experience?\"\n }\n },\n \"description\": \"Response Options of the Customer Satisfaction Survey\",\n \"example\": {\n \"text\": \"Fantastic\",\n \"follow_up_question\": \"How do you rate overall experience?\"\n }\n }\n },\n \"example\": {\n \"option_1\": {\n \"text\": \"Fantastic\"\n },\n \"option_2\": {\n \"text\": \"Fantastic\"\n }\n }\n },\n \"thank_you_message\": {\n \"type\": \"string\",\n \"description\": \"The final \\\\\\\"Thank you\\\\\\\" message that gets displayed to the requester upon completion of the survey\",\n \"example\": \"Thanks for taking the survey\"\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent who last modified this survey\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the survey was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the survey was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateDepartment.json new file mode 100644 index 00000000..4a39c94f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateDepartment.json @@ -0,0 +1,412 @@ +{ + "name": "UpdateDepartment", + "fully_qualified_name": "FreshserviceApi.UpdateDepartment@1.0.0", + "description": "Update details of an existing department in Freshservice.\n\nUse this tool to change details of an existing department or company in Freshservice. Ideal for modifying department attributes such as name or other relevant information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "department_id", + "required": true, + "description": "ID of the department to update. Required for identifying which department's information to modify.", + "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" + }, + { + "name": "department_unique_id", + "required": false, + "description": "The unique identifier for the department to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "department_name", + "required": false, + "description": "The new name of the department to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "department_description", + "required": false, + "description": "Provide a description about the department. This is used to update the existing details of the department in Freshservice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "head_user_id", + "required": false, + "description": "Unique identifier for the agent or requester serving as the department head.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "head_user_id" + }, + { + "name": "prime_user_id", + "required": false, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "prime_user_id" + }, + { + "name": "email_domains", + "required": false, + "description": "List of email domains linked to the department, like ['example.com'].", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "inferrable": true, + "http_endpoint_parameter_name": "domains" + }, + { + "name": "custom_fields", + "required": false, + "description": "JSON object containing custom fields related to a Freshservice entity. Include key-value pairs for each field.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "inferrable": true, + "http_endpoint_parameter_name": "custom_fields" + }, + { + "name": "department_creation_timestamp", + "required": false, + "description": "The timestamp indicating when the department was originally created in Freshservice. This should be formatted as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "last_modified_timestamp", + "required": false, + "description": "Timestamp indicating when the department was last modified. Format: YYYY-MM-DDTHH:MM:SSZ.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "department_unique_id", + "description": "Unique identifier of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "department_name", + "description": "Name of the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "department_description", + "description": "Description about the department", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "head_user_id", + "tool_parameter_name": "head_user_id", + "description": "Unique identifier of the agent or requester who serves as the head of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the head of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "prime_user_id", + "tool_parameter_name": "prime_user_id", + "description": "Unique identifier of the agent or requester who serves as the prime user of the department", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent or requester who serves as the prime user of the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "domains", + "tool_parameter_name": "email_domains", + "description": "Email domains associated with the department", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email domains associated with the department" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "custom_fields", + "tool_parameter_name": "custom_fields", + "description": "Custom fields that are associated with a Freshservice entity", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "department_creation_timestamp", + "description": "Timestamp at which the department was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "last_modified_timestamp", + "description": "Timestamp at which the department was last modified", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Department that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the department\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the department\",\n \"example\": \"IT Support\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the department\",\n \"example\": \"IT Support\"\n },\n \"head_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the head of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"prime_user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent or requester who serves as the prime user of the department\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"domains\": {\n \"type\": \"array\",\n \"description\": \"Email domains associated with the department\",\n \"example\": [\n \"support.freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAgent.json new file mode 100644 index 00000000..0cc14f4e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAgent.json @@ -0,0 +1,728 @@ +{ + "name": "UpdateExistingAgent", + "fully_qualified_name": "FreshserviceApi.UpdateExistingAgent@1.0.0", + "description": "Update an existing agent in Freshservice.\n\nUse this tool to modify details of an existing agent in the Freshservice platform. It's suitable when you need to change agent information such as name, email, or role.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_identifier", + "required": true, + "description": "ID of the agent to be updated in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "agent_id" + }, + { + "name": "agent_update_details", + "required": true, + "description": "JSON object containing the updated details for the agent, including personal and role-related information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "agent_id", + "tool_parameter_name": "agent_identifier", + "description": "ID of agent to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "agent_update_details", + "description": "Agent who needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent who needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"email\",\n \"first_name\",\n \"role_ids\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the agent\",\n \"example\": \"Andrea\"\n },\n \"occasional\": {\n \"type\": \"boolean\",\n \"description\": \"True if the agent is an occasional agent, and false if full-time agent.\",\n \"example\": true\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the agent\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the agent\",\n \"example\": \"Product Manager\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"Email address of the agent\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the agent\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the agent\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the agent\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"scoreboard_level_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\\n\",\n \"format\": \"int64\",\n \"example\": 2,\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticket\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"problem\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"change\": {\n \"type\": \"string\",\n \"example\": \"Restricted Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"release\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"asset\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\"\n ]\n }\n },\n \"description\": \"Access level of the agent in various modules\",\n \"readOnly\": true,\n \"example\": {\n \"ticket\": \"Global Access\",\n \"problem\": \"Global Access\",\n \"change\": \"Global Access\",\n \"release\": \"Global Access\",\n \"asset\": \"Global Access\"\n }\n },\n \"group_ids\": {\n \"type\": \"array\",\n \"description\": \" Unique IDs of the agent groups associated with the agent\",\n \"example\": [\n 1400023424,\n 1400023423\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"member_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is a member of\",\n \"example\": [\n 140002533,\n 140009834\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"observer_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is an observer of\",\n \"example\": [\n 1300045345,\n 1300049484\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"role_ids\": {\n \"type\": \"array\",\n \"description\": \"(DEPRECATED) Unique IDs of the agent roles associated with the agent\",\n \"example\": [\n 1300034059,\n 1300094583\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"roles\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"role_id\": 14000234324\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"role_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the role assigned\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"assignment_scope\": {\n \"type\": \"string\",\n \"description\": \"The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)\",\n \"example\": \"entire_helpdesk\",\n \"enum\": [\n \"entire_helpdesk\",\n \"member_groups\",\n \"specified_groups\",\n \"assigned_items\"\n ]\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise.\",\n \"example\": [\n 1400034334,\n 3523453453\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n }\n }\n }\n },\n \"last_login_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp of the agent's last successful login\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAsset.json new file mode 100644 index 00000000..6aaf6ba7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingAsset.json @@ -0,0 +1,452 @@ +{ + "name": "UpdateExistingAsset", + "fully_qualified_name": "FreshserviceApi.UpdateExistingAsset@1.0.0", + "description": "Update the details of an existing asset in Freshservice.\n\nUse this tool to modify the information of an existing asset by its display ID in Freshservice.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "asset_display_id", + "required": true, + "description": "The unique display ID 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": "asset_update_details", + "required": true, + "description": "A JSON object containing the details of the asset to be updated, including keys like 'id', 'display_id', 'name', 'description', and others as specified in the API documentation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_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": "requestBody", + "tool_parameter_name": "asset_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingChangeTask.json new file mode 100644 index 00000000..09592296 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingChangeTask.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateExistingChangeTask", + "fully_qualified_name": "FreshserviceApi.UpdateExistingChangeTask@1.0.0", + "description": "Update a task within a Freshservice Change request.\n\nUse this tool to update an existing task on a Change request in Freshservice. It should be called when a task associated with a change needs to be modified, such as changing its status, description, or other attributes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The unique identifier for the Change request to be updated.", + "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": "The unique ID of the task to be updated in the Freshservice Change request.", + "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" + }, + { + "name": "task_update_details", + "required": true, + "description": "JSON object containing the task details to be updated, such as status, agent assignment, or due dates.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_update_details", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingLocation.json new file mode 100644 index 00000000..70d8ebf2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingLocation.json @@ -0,0 +1,310 @@ +{ + "name": "UpdateExistingLocation", + "fully_qualified_name": "FreshserviceApi.UpdateExistingLocation@1.0.0", + "description": "Updates the details of an existing location.\n\nCall this tool to update information about an existing location in Freshservice. Useful when modifications to location details are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_identifier", + "required": true, + "description": "The unique integer ID of the location 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": "location_id" + }, + { + "name": "location_update_details", + "required": true, + "description": "A JSON object containing the updated details of the location, including fields like `id`, `name`, `parent_location_id`, `primary_contact_id`, `address_line1`, `address_line2`, `address_city`, `address_state`, `address_country`, and `address_zipcode`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "location_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the location\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the location\",\n \"example\": \"Apple Campus\"\n },\n \"parent_location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent location\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the Location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblem.json new file mode 100644 index 00000000..c6bbbdd7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblem.json @@ -0,0 +1,920 @@ +{ + "name": "UpdateExistingProblem", + "fully_qualified_name": "FreshserviceApi.UpdateExistingProblem@1.0.0", + "description": "Update an existing problem in Freshservice.\n\nUtilize this tool to modify the details of an existing problem in Freshservice. This should be called when you need to update information related to a specific problem, identified by its problem ID, using Freshservice's API.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id_to_update", + "required": true, + "description": "The unique ID of the problem that needs to be updated in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "problem_update_details", + "required": true, + "description": "Details to update an existing problem in Freshservice. Must include fields such as 'id', 'agent_id', 'status', among others.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/problem/{problem_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "problem_id", + "tool_parameter_name": "problem_id_to_update", + "description": "ID of problem to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "problem_update_details", + "description": "Problem details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Problem details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": \"\"\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblemTask.json new file mode 100644 index 00000000..88c2018d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingProblemTask.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateExistingProblemTask", + "fully_qualified_name": "FreshserviceApi.UpdateExistingProblemTask@0.2.0", + "description": "Updates a task on an existing problem in Freshservice.\n\nUse this tool to modify details of a task associated with a specific problem in Freshservice. Provide the problem and task identifiers to proceed with the update.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "problem_identifier", + "required": true, + "description": "The unique identifier of the problem to which the task belongs.", + "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_identifier", + "required": true, + "description": "The unique integer ID of the task to be updated.", + "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" + }, + { + "name": "task_details_to_update", + "required": true, + "description": "JSON object containing details of the task to update (e.g., title, status, due date, etc.).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}", + "http_method": "PUT", + "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": "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details_to_update", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingVendor.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingVendor.json new file mode 100644 index 00000000..55bcb651 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateExistingVendor.json @@ -0,0 +1,286 @@ +{ + "name": "UpdateExistingVendor", + "fully_qualified_name": "FreshserviceApi.UpdateExistingVendor@1.0.0", + "description": "Update details of an existing vendor in Freshservice.\n\nUse this tool to update the information of a vendor in the Freshservice system. It should be called when changes to a vendor's details are required.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_id", + "required": true, + "description": "The unique identifier for the vendor to be updated. This should be an integer matching the vendor's ID 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": "vendor_id" + }, + { + "name": "vendor_details", + "required": true, + "description": "A JSON object containing details to update the vendor, such as 'id', 'name', 'description', 'primary_contact_id', and address fields. Required to make changes to an existing vendor.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/vendors/{vendor_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "vendor_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the vendor\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the vendor\",\n \"example\": \"Apple\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the vendor\",\n \"example\": \"Apple\"\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"Cupertino\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"Cupertino\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgent.json new file mode 100644 index 00000000..1368b906 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgent.json @@ -0,0 +1,728 @@ +{ + "name": "UpdateFreshserviceAgent", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceAgent@1.0.0", + "description": "Update an existing agent in Freshservice.\n\nUse this tool to modify the information of an existing agent in Freshservice when changes need to be made. It enables updating agent details through Freshservice's API.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "agent_id_for_update", + "required": true, + "description": "The unique ID of the agent to be updated in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "agent_id" + }, + { + "name": "agent_details_to_update", + "required": true, + "description": "JSON object containing agent details such as id, first_name, last_name, job title, email, phone numbers, and access levels to update the agent in Freshservice.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "agent_id", + "tool_parameter_name": "agent_id_for_update", + "description": "ID of agent to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "agent_details_to_update", + "description": "Agent who needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the agent" + }, + "occasional": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the agent is an occasional agent, and false if full-time agent." + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the agent" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the agent" + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email address of the agent" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the agent" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the agent" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent's reporting manager" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the agent" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the agent" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the agent" + }, + "scoreboard_level_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "properties": null, + "inner_properties": null, + "description": "Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\n" + }, + "scope": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ticket": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "problem": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "change": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "release": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access", + "Restricted Access" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "asset": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "Global Access", + "Group Access" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Access level of the agent in various modules" + }, + "group_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Unique IDs of the agent groups associated with the agent" + }, + "member_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is a member of" + }, + "observer_of": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the agent groups that the agent is an observer of" + }, + "role_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(DEPRECATED) Unique IDs of the agent roles associated with the agent" + }, + "roles": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "role_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the role assigned" + }, + "assignment_scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "entire_helpdesk", + "member_groups", + "specified_groups", + "assigned_items" + ], + "properties": null, + "inner_properties": null, + "description": "The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise." + } + }, + "description": null + }, + "last_login_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of the agent's last successful login" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent was last modified" + } + }, + "inner_properties": null, + "description": "Agent who needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Agent who needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"email\",\n \"first_name\",\n \"role_ids\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the agent\",\n \"example\": \"Andrea\"\n },\n \"occasional\": {\n \"type\": \"boolean\",\n \"description\": \"True if the agent is an occasional agent, and false if full-time agent.\",\n \"example\": true\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the agent\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the agent\",\n \"example\": \"Product Manager\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"Email address of the agent\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the agent\",\n \"example\": \"+1-567-3492\"\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the agent\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the agent\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the agent\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"scoreboard_level_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the level of the agent in the Arcade. Possible values: * 1 - Beginner * 2 - Intermediate * 3 - Professional * 4 - Expert * 5 - Master * 6 - Guru\\n\",\n \"format\": \"int64\",\n \"example\": 2,\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticket\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"problem\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"change\": {\n \"type\": \"string\",\n \"example\": \"Restricted Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"release\": {\n \"type\": \"string\",\n \"example\": \"Group Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\",\n \"Restricted Access\"\n ]\n },\n \"asset\": {\n \"type\": \"string\",\n \"example\": \"Global Access\",\n \"enum\": [\n \"Global Access\",\n \"Group Access\"\n ]\n }\n },\n \"description\": \"Access level of the agent in various modules\",\n \"readOnly\": true,\n \"example\": {\n \"ticket\": \"Global Access\",\n \"problem\": \"Global Access\",\n \"change\": \"Global Access\",\n \"release\": \"Global Access\",\n \"asset\": \"Global Access\"\n }\n },\n \"group_ids\": {\n \"type\": \"array\",\n \"description\": \" Unique IDs of the agent groups associated with the agent\",\n \"example\": [\n 1400023424,\n 1400023423\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"member_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is a member of\",\n \"example\": [\n 140002533,\n 140009834\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"observer_of\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the agent groups that the agent is an observer of\",\n \"example\": [\n 1300045345,\n 1300049484\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"role_ids\": {\n \"type\": \"array\",\n \"description\": \"(DEPRECATED) Unique IDs of the agent roles associated with the agent\",\n \"example\": [\n 1300034059,\n 1300094583\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"roles\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"role_id\": 14000234324\n }\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"role_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the role assigned\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"assignment_scope\": {\n \"type\": \"string\",\n \"description\": \"The scope in which the agent can use the permissions granted by this role. Possible values are entire_helpdesk (all plans), member_groups (Blossom, Garden, and Estate), specified_groups (Forest only), and assigned_items (all plans)\",\n \"example\": \"entire_helpdesk\",\n \"enum\": [\n \"entire_helpdesk\",\n \"member_groups\",\n \"specified_groups\",\n \"assigned_items\"\n ]\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Groups in which the permissions granted by the role applies. Returns an array of group identifiers when the assignment_scope is specified_groups, and null otherwise.\",\n \"example\": [\n 1400034334,\n 3523453453\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n }\n }\n }\n },\n \"last_login_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp of the agent's last successful login\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the agent was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgentGroup.json new file mode 100644 index 00000000..189dbc52 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAgentGroup.json @@ -0,0 +1,374 @@ +{ + "name": "UpdateFreshserviceAgentGroup", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceAgentGroup@0.2.0", + "description": "Update an existing Agent Group in Freshservice.\n\nUse this tool to modify the details of a specific agent group in Freshservice. It's useful when needing to change group configurations or membership.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "agent_group_id", + "required": true, + "description": "The unique identifier for the agent group to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent group to retrieve" + }, + "inferrable": true, + "http_endpoint_parameter_name": "agent_group_id" + }, + { + "name": "agent_group_update_details", + "required": true, + "description": "JSON object containing the updated details of the agent group, including ID, name, description, business hours, members, observers, leaders, and other configurations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent group that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "agent_group_id", + "tool_parameter_name": "agent_group_id", + "description": "ID of agent group to retrieve", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of agent group to retrieve" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "agent_group_update_details", + "description": "Agent group that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the agent group" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the agent group" + }, + "business_hours_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the business hours configuration associated with the group" + }, + "escalate_to": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Unique ID of the user to whom an escalation email is sent if a ticket in this group is unassigned. To create/update a group with an escalate_to value of \u2018none\u2019, please set the value of this parameter to \u2018null\u2019." + }, + "agent_ids": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": " Array of user IDs of agents who belong to the group." + }, + "members": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are members of the group." + }, + "observers": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are observers of the group." + }, + "group_leaders": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of user IDs of agents who are leaders of the group." + }, + "auto_ticket_assign": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes the automatic ticket assignment type. Will not be supported if the \"Round Robin\" feature is disabled for the account. Set to true if automatic ticket assignment is enabled, and false otherwise." + }, + "restricted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether the group is a resricted group" + }, + "approval_required": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Signifies whether approval is required from group leaders to add agents to the group, delete the group, disable restricted mode on the group, or disable approvals." + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the agent group was last modified" + } + }, + "inner_properties": null, + "description": "Agent group that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAnnouncement.json new file mode 100644 index 00000000..7a36ba77 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceAnnouncement.json @@ -0,0 +1,406 @@ +{ + "name": "UpdateFreshserviceAnnouncement", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceAnnouncement@1.0.0", + "description": "Update an existing Freshservice announcement.\n\nUse this tool to modify an existing announcement in Freshservice. This is useful for updating content, title, or any other property of an announcement identified by its ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "announcement_id", + "required": true, + "description": "The unique ID of the announcement to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of announcement to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "announcement_id" + }, + { + "name": "announcement_update_details", + "required": true, + "description": "JSON object with details to update the announcement (title, body, visibility, etc.).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Announcement details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "announcement_id", + "tool_parameter_name": "announcement_id", + "description": "ID of announcement to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of announcement to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "announcement_update_details", + "description": "Announcement details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Announcement" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to created this Announcement" + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State of the Announcement active, archived, scheduled" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the Announcement" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in plain text" + }, + "body_html": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Body of the Announcement in HTML format" + }, + "visible_from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement becomes active" + }, + "visible_till": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp until which Announcement is active" + }, + "visibility": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Who can see the announcement. Values - everyone, agents_only, agents_and_groups" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Department IDs that can view this Announcement" + }, + "groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Array of Group IDs that can view this Announcement" + }, + "is_read": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the logged-in-user has read the announcement. False, otherwise" + }, + "send_email": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "True if the announcement needs to be sent via email as well. False, otherwise" + }, + "additional_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional email addresses to which the announcement needs to be sent" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Announcement was last updated" + } + }, + "inner_properties": null, + "description": "Announcement details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Announcement details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Announcement\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400623\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to created this Announcement\",\n \"format\": \"int64\",\n \"example\": 1407423\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"State of the Announcement active, archived, scheduled\",\n \"format\": \"string\",\n \"readOnly\": true,\n \"example\": \"active\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the Announcement\",\n \"example\": \"Welcome to Freshservice\"\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in plain text\",\n \"readOnly\": true,\n \"example\": \"Your Freshservice account is now ready.Here are a few quick links to get you started : Getting Started with Freshservice Implementing ITIL Workflows and Best Practices Setting up your Self Service Portal If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317. Thanks, Freshservice Team. P.S.: This is a default announcement and can be removed whenever you want.\"\n },\n \"body_html\": {\n \"type\": \"string\",\n \"description\": \"Body of the Announcement in HTML format\",\n \"example\": \"
Your Freshservice account is now ready.
Here are a few quick links to get you started :
  1. Getting Started with Freshservice
  2. Implementing ITIL Workflows and Best Practices
  3. Setting up your Self Service Portal
If you have any questions, just shoot out an email to support@freshservice.com or call us at +1-(877)-485-0317.
Thanks,
Freshservice Team.
P.S.: This is a default announcement and can be removed whenever you want.
\"\n },\n \"visible_from\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement becomes active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-11T07:16:43Z\"\n },\n \"visible_till\": {\n \"type\": \"string\",\n \"description\": \"Timestamp until which Announcement is active\",\n \"format\": \"date-time\",\n \"example\": \"2019-06-18T07:16:43Z\"\n },\n \"visibility\": {\n \"type\": \"string\",\n \"description\": \"Who can see the announcement. Values - everyone, agents_only, agents_and_groups\",\n \"example\": \"everyone\"\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"Array of Department IDs that can view this Announcement\",\n \"example\": [\n 1001,\n 1003\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"groups\": {\n \"type\": \"array\",\n \"description\": \"Array of Group IDs that can view this Announcement\",\n \"example\": [\n 2002,\n 2004\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"is_read\": {\n \"type\": \"boolean\",\n \"description\": \"True if the logged-in-user has read the announcement. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"send_email\": {\n \"type\": \"boolean\",\n \"description\": \"True if the announcement needs to be sent via email as well. False, otherwise\",\n \"readOnly\": true,\n \"example\": true\n },\n \"additional_emails\": {\n \"type\": \"array\",\n \"description\": \"Additional email addresses to which the announcement needs to be sent\",\n \"example\": [\n \"john.doe@acmecorp.com\",\n \"alice@acmecorp.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Announcement was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2019-06-18T13:45:11Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeRequest.json new file mode 100644 index 00000000..0bce5dac --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeRequest.json @@ -0,0 +1,1332 @@ +{ + "name": "UpdateFreshserviceChangeRequest", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceChangeRequest@0.2.0", + "description": "Update a Change request in Freshservice.\n\nThis tool updates an existing Change request in Freshservice. Use it when modifications to a Change request are necessary, such as altering details or statuses.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "The ID of the Change request you want to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of change request to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "change_id" + }, + { + "name": "change_details_update", + "required": true, + "description": "JSON object containing details to update an existing Change request, such as status, priority, and associated assets.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "change details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "change_id", + "tool_parameter_name": "change_request_id", + "description": "ID of change request to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of change request to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "change_details_update", + "description": "change details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the change" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the initiator of the change" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the change is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the change is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the change 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the change 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the change. Open -> 1, Planning -> 2, Approval -> 3, Pending Release -> 4, Pending Review -> 5, closed -> 6" + }, + "risk": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Risk of the change 1-Low, 2-Medium, 3-High, 4-Very High" + }, + "change_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the change 1-minor, 2-standard, 3-major, 4-emergency" + }, + "approval_status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Approval status of the change 1-Requested, 2-Approved, 3-Rejected 4-Not_Requested" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the change" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short description of the change in plain text format" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change is ending" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated project" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the change" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the change" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the change" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the change" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which change was last updated" + }, + "associated_release": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the associated release" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_problems": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the problems associated with the change request" + }, + "incidents_caused_by_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the incidents caused by this change request" + }, + "tickets_initiating_change": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the tickets initiating this change request" + }, + "associated_project": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the associated release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "maintenance_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + }, + "black_out_window": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Change Window" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Change Window" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Change Window" + }, + "window_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is starting" + }, + "window_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Change Window is ending" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "change details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeTimeEntry.json new file mode 100644 index 00000000..4f18df8e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceChangeTimeEntry.json @@ -0,0 +1,407 @@ +{ + "name": "UpdateFreshserviceChangeTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceChangeTimeEntry@1.0.0", + "description": "Update a time entry on a Freshservice Change request.\n\nUse this tool to modify an existing time entry for a Change request in Freshservice, specifying the Change ID and the Time Entry ID to update.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "change_request_id", + "required": true, + "description": "ID of the change request to be updated.", + "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_identifier", + "required": true, + "description": "Provide the integer ID of the time entry to be updated.", + "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" + }, + { + "name": "time_entry_details", + "required": true, + "description": "JSON object containing time entry details to be updated, such as start_time, time_spent, and custom_fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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_identifier", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblem.json new file mode 100644 index 00000000..aa574136 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblem.json @@ -0,0 +1,944 @@ +{ + "name": "UpdateFreshserviceProblem", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceProblem@1.0.0", + "description": "Update an existing problem in Freshservice.\n\nUse this tool to update details of an existing problem in Freshservice. It is suitable when you need to modify attributes of a problem using its unique identifier.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique identifier of the problem to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "problem_details_to_update", + "required": true, + "description": "JSON object containing details of the problem to be updated. Includes fields like priority, impact, status, subject, and assets.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "problem_id", + "tool_parameter_name": "problem_id", + "description": "ID of problem to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "problem_details_to_update", + "description": "Problem details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Problem details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemNote.json new file mode 100644 index 00000000..b2c24326 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemNote.json @@ -0,0 +1,295 @@ +{ + "name": "UpdateFreshserviceProblemNote", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceProblemNote@0.2.0", + "description": "Update an existing note on a Freshservice problem.\n\nUse this tool to update an existing note on a specified problem in Freshservice. It is helpful for modifying details or correcting information in problem notes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique identifier for the problem whose note you want to update.", + "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 of the note to be updated 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" + }, + { + "name": "note_details_to_update", + "required": true, + "description": "JSON object containing note details like user ID, email addresses for notifications, note body in HTML and plain text, creation and update timestamps, and other relevant information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + } + }, + "inner_properties": null, + "description": "note details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}", + "http_method": "PUT", + "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 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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "note_details_to_update", + "description": "note details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "notify_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "body": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "body_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + } + }, + "inner_properties": null, + "description": "note details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemTimeEntry.json new file mode 100644 index 00000000..baa489d6 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceProblemTimeEntry.json @@ -0,0 +1,407 @@ +{ + "name": "UpdateFreshserviceProblemTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceProblemTimeEntry@1.0.0", + "description": "Update an existing time entry on a Freshservice problem.\n\nUse this tool to modify details of a time entry recorded on a specific problem within Freshservice. This is helpful for correcting or adjusting recorded time related to problem management.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "ID of the problem whose time entry needs to be updated.", + "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 updated.", + "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" + }, + { + "name": "time_entry_update_details", + "required": true, + "description": "JSON object with details to update, including IDs, times, and notes about the time entry.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_update_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceRelease.json new file mode 100644 index 00000000..17128fb9 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceRelease.json @@ -0,0 +1,1008 @@ +{ + "name": "UpdateFreshserviceRelease", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceRelease@1.0.0", + "description": "Update an existing Release in Freshservice.\n\nUse this tool to modify details of an existing release in Freshservice. This is useful for updating information such as release dates, descriptions, or status.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique ID of the release to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of release to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "release_id" + }, + { + "name": "release_details", + "required": true, + "description": "JSON object containing the details of the release to be updated, including fields like subject, status, planned start date, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Release details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "release_id", + "tool_parameter_name": "release_id", + "description": "ID of release to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of release to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "release_details", + "description": "Release details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Release details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Release details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 14043616\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 10184589\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"release_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the Release 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Release\",\n \"example\": \"Security Patch Deployment\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"work_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work started\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"work_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work ended\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Release\",\n \"format\": \"int64\",\n \"example\": 10143312\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Release\",\n \"example\": \"Security\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Release\",\n \"example\": \"Deployment\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Release\",\n \"example\": \"Security\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"associated_assets\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the assets associated with the Release request\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_changes\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the Changes associated with the Release\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Some Value\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceServiceRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceServiceRequest.json new file mode 100644 index 00000000..99c530c3 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceServiceRequest.json @@ -0,0 +1,342 @@ +{ + "name": "UpdateFreshserviceServiceRequest", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceServiceRequest@1.0.0", + "description": "Update an existing service request in Freshservice.\n\nThis tool updates an existing service request in Freshservice using the service request ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "service_request_id", + "required": true, + "description": "The ID of the service request to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Service Request to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "service_request_id" + }, + { + "name": "service_request_details", + "required": true, + "description": "A JSON object containing details of the service request to be updated, including requester email, subject, status, priority, description, agent ID, due date, group ID, source, tags, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "requested_for_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the subject of the ticket" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the status of the ticket" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the priority of the ticket" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the description/body of the ticket" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the agent ID to whom the ticket is assigned" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "group_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. The default value is 2." + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket." + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Service request to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-service-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests/{service_request_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "service_request_id", + "tool_parameter_name": "service_request_id", + "description": "ID of Service Request to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Service Request to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "service_request_details", + "description": "Service request to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "requested_for_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the subject of the ticket" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the status of the ticket" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the priority of the ticket" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the description/body of the ticket" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the agent ID to whom the ticket is assigned" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "group_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. The default value is 2." + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket." + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Service request to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Service request to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"requester_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"requested_for_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the user for whom this is requested.\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"the subject of the ticket\",\n \"example\": \"Request for VPN access\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"the status of the ticket\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"the priority of the ticket\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"the description/body of the ticket\",\n \"example\": \"Request for VPN access\"\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"the agent ID to whom the ticket is assigned\",\n \"format\": \"int32\",\n \"example\": 19234923\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date-time\"\n },\n \"group_id\": {\n \"type\": \"number\",\n \"description\": \"ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id.\",\n \"format\": \"int32\",\n \"example\": 12938743\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. The default value is 2.\",\n \"format\": \"int32\",\n \"example\": 2.0\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket.\",\n \"example\": [\n \"VPN\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceSolutionArticle.json new file mode 100644 index 00000000..123e16bd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceSolutionArticle.json @@ -0,0 +1,414 @@ +{ + "name": "UpdateFreshserviceSolutionArticle", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceSolutionArticle@1.0.0", + "description": "Update a solution article in Freshservice by ID.\n\nUse this tool to update an existing solution article in Freshservice by providing the article ID. It's helpful when modifications to content are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_article_id", + "required": true, + "description": "The ID of the solution article you want to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "article_id" + }, + { + "name": "article_update_details", + "required": true, + "description": "JSON object with details for updating the solution article, including title, description, category, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/solutions/articles/{article_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "article_id", + "tool_parameter_name": "solution_article_id", + "description": "ID of the solution article to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "article_update_details", + "description": "Article that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Article that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400020394823\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"description\": \"ID of the folder under which the article is listed\",\n \"format\": \"int64\",\n \"example\": 140000394234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400023423\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the solution article\",\n \"example\": \"Unable to connect VPN\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in HTML format\",\n \"example\": \"
Login with AD credentials for VPN
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in plain-text format\",\n \"example\": \"Login with AD credentials for VPN\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The rank of the solution article in the article listing\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"article_type\": {\n \"type\": \"integer\",\n \"description\": \"The type of the article. ( 1 - permanent, 2 - workaround )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the article. ( 1 - draft, 2 - published )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"thumbs_up\": {\n \"type\": \"integer\",\n \"description\": \"Number of upvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 34534\n },\n \"thumbs_down\": {\n \"type\": \"integer\",\n \"description\": \"Number of downvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 43\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who created the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who last updated the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"views\": {\n \"type\": \"integer\",\n \"description\": \"number of views for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"search_keywords\": {\n \"type\": \"array\",\n \"description\": \"Keywords for which this article should be mapped\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"The tags associated to the article\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicket.json new file mode 100644 index 00000000..68d31734 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicket.json @@ -0,0 +1,584 @@ +{ + "name": "UpdateFreshserviceTicket", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceTicket@0.2.0", + "description": "Edit an existing Freshservice support ticket.\n\nUse this tool to update the details of a specific ticket in Freshservice. It should be called when there is a need to modify an existing support ticket with new information or changes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique integer ID of the Freshservice ticket to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the ticket to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticket_id" + }, + { + "name": "ticket_update_details", + "required": true, + "description": "JSON object with details to update a ticket, including email, status, priority, and custom fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "Details of the ticket to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_id", + "description": "ID of the ticket to be updated", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the ticket to be updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "ticket_update_details", + "description": "Details of the ticket to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added in the 'cc' field of the incoming ticket email" + }, + "fwd_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while forwarding a ticket" + }, + "reply_cc_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Email addresses added while replying to a ticket" + }, + "fr_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been escalated as a result of the first response time being breached" + }, + "spam": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to 'true' if the ticket has been marked as spam" + }, + "priority": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Freshservice Ticket. Low -> 1. Medium -> 2. High -> 3. Urgent -> 4." + }, + "requester_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User ID of the requester." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. Email -> 1 Portal -> 2 Phone -> 3 Chat -> 4 Feedback widget -> 5 Yammer -> 6 AWS Cloudwatch -> 7 Pagerduty -> 8 Walkup -> 9 Slack -> 10" + }, + "status": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the Ticket. Open -> 2 Pending -> 3 Resolved -> 4 Closed -> 5" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Ticket" + }, + "id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the ticket" + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Helps categorize the ticket according to the different kinds of issues your support team deals with. [Support for only type \u2018incident\u2019 as of now]" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "fr_due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the first response is due" + }, + "is_escalated": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the ticket in plain text" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the ticket was last updated" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Auto increment value" + }, + "content_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Size of the attached file" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "attachment_url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URL of the attachment" + } + }, + "description": "Ticket attachments. The total size of these attachments cannot exceed 15MB" + } + }, + "inner_properties": null, + "description": "Details of the ticket to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicketTask.json new file mode 100644 index 00000000..701e37e0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateFreshserviceTicketTask.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateFreshserviceTicketTask", + "fully_qualified_name": "FreshserviceApi.UpdateFreshserviceTicketTask@1.0.0", + "description": "Update a task on a Freshservice ticket.\n\nUse this tool to update an existing task on a ticket in Freshservice. This is helpful for modifying task details such as status, description, or other properties associated with a ticket's task.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the ticket request to identify the specific ticket in 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_id", + "required": true, + "description": "The unique ID of the task to be updated in Freshservice.", + "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" + }, + { + "name": "task_update_details", + "required": true, + "description": "JSON object with details like status, title, agent_id, etc., to update the task.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "ticket_id", + "tool_parameter_name": "ticket_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_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_update_details", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationFreshservice.json new file mode 100644 index 00000000..f14c1d46 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationFreshservice.json @@ -0,0 +1,310 @@ +{ + "name": "UpdateLocationFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateLocationFreshservice@0.2.0", + "description": "Update an existing location in Freshservice.\n\nUse this tool to update details of an existing location within the Freshservice platform. It should be called when you need to modify location information, such as the address or name, using the location's unique ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "location_identifier", + "required": true, + "description": "The unique integer identifier for the location 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": "location_id" + }, + { + "name": "location_update_details", + "required": true, + "description": "JSON object containing details to update the location, such as id, name, address, and contact information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "location_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationInfo.json new file mode 100644 index 00000000..99dd6287 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateLocationInfo.json @@ -0,0 +1,310 @@ +{ + "name": "UpdateLocationInfo", + "fully_qualified_name": "FreshserviceApi.UpdateLocationInfo@1.0.0", + "description": "Update an existing location's information in Freshservice.\n\nUse this tool to modify the details of an existing location in Freshservice. It should be called whenever there is a need to change location information, such as address or contact details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "location_identifier", + "required": true, + "description": "The unique integer ID of the location to update 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": "location_id" + }, + { + "name": "location_update_data", + "required": true, + "description": "JSON object containing the updated location details, including ID, name, address, and contact information.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "location_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the location" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the location" + }, + "parent_location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent location" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the Location" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the location\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the location\",\n \"example\": \"Apple Campus\"\n },\n \"parent_location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent location\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email and phone number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"1 Infinite Loop\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the Location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemNote.json new file mode 100644 index 00000000..0fae6795 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemNote.json @@ -0,0 +1,379 @@ +{ + "name": "UpdateProblemNote", + "fully_qualified_name": "FreshserviceApi.UpdateProblemNote@1.0.0", + "description": "Update a note on an existing problem in Freshservice.\n\nThis tool updates an existing note on a specified problem in Freshservice. Use this when you need to modify details or correct information in a note associated with a problem.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique ID of the problem to update the note for.", + "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": "ID of the note to be updated.", + "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" + }, + { + "name": "note_unique_id", + "required": false, + "description": "The unique ID of the note to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "creator_user_id", + "required": false, + "description": "Unique ID of the user who originally created the note. This is necessary for update operations to ensure the note's authorship is correctly handled.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "List of email addresses to notify about the note update.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The body of the note in HTML format for updating an existing note.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_text", + "required": false, + "description": "The content of the note in plain text format for the problem note update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_created_datetime", + "required": false, + "description": "The datetime when the note was initially created in ISO 8601 format (e.g., '2023-03-10T10:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_update_datetime", + "required": false, + "description": "The date and time at which the note was updated, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}", + "http_method": "PUT", + "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 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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "creator_user_id", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_created_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_update_datetime", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"note details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTask.json new file mode 100644 index 00000000..1247f5eb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTask.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateProblemTask", + "fully_qualified_name": "FreshserviceApi.UpdateProblemTask@1.0.0", + "description": "Update an existing task on a Freshservice problem.\n\nThis tool updates a specific task linked to an existing problem in Freshservice. Use it to modify details of a task within a problem context.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The unique identifier for the problem to which the task is linked. 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" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "task_identifier", + "required": true, + "description": "Unique integer identifier for the specific task to update within a problem in Freshservice.", + "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" + }, + { + "name": "task_update_details", + "required": true, + "description": "A JSON object containing the details of the task to update. Include fields like 'created_by', 'agent_id', 'status', 'title', and 'due_date'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}", + "http_method": "PUT", + "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_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_update_details", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTimeEntry.json new file mode 100644 index 00000000..ecfe444b --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProblemTimeEntry.json @@ -0,0 +1,407 @@ +{ + "name": "UpdateProblemTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateProblemTimeEntry@1.0.0", + "description": "Update a time entry on an existing problem in Freshservice.\n\nUse this tool to modify the details of an existing time entry associated with a specific problem in Freshservice. Useful for adjusting logged time or correcting entries.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_identifier", + "required": true, + "description": "Provide the integer ID of the problem whose time entry you want to update.", + "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 ID of the time entry to be updated for a specific 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" + }, + { + "name": "time_entry_details", + "required": true, + "description": "JSON object containing the updated details of the time entry, such as `id`, `task_id`, `parent_id`, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductCatalogEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductCatalogEntry.json new file mode 100644 index 00000000..0fea3f47 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductCatalogEntry.json @@ -0,0 +1,294 @@ +{ + "name": "UpdateProductCatalogEntry", + "fully_qualified_name": "FreshserviceApi.UpdateProductCatalogEntry@0.2.0", + "description": "Update an existing product in the catalog.\n\nUse this tool to update details of a product in the Freshservice Product Catalog when changes are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "0.2.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "The unique identifier of the product to be updated in the Freshservice Product 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" + }, + { + "name": "product_update_details", + "required": true, + "description": "JSON object containing product details to update. Includes fields like `id`, `name`, `asset_type_id`, `manufacturer`, `status_id`, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "manufacturer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "status_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "mode_of_procurement_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "depreciation_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "product_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "manufacturer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "status_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "mode_of_procurement_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "depreciation_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductInCatalog.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductInCatalog.json new file mode 100644 index 00000000..988bbff4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProductInCatalog.json @@ -0,0 +1,395 @@ +{ + "name": "UpdateProductInCatalog", + "fully_qualified_name": "FreshserviceApi.UpdateProductInCatalog@1.0.0", + "description": "Update an existing product in the catalog.\n\nUse this tool to modify details of a product in the product catalog. Call this when a product's information needs to be updated.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "product_unique_id", + "required": true, + "description": "The unique integer identifier for the product to be updated in the 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" + }, + { + "name": "product_id_number", + "required": false, + "description": "Unique ID of the product to be updated in the catalog.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "product_name", + "required": false, + "description": "The name of the product to be updated in the catalog.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "asset_type_id", + "required": false, + "description": "The unique identifier for the asset type of the product. It should be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "inferrable": true, + "http_endpoint_parameter_name": "asset_type_id" + }, + { + "name": "product_manufacturer_name", + "required": false, + "description": "The name of the product's manufacturer. Provide as free text.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "inferrable": true, + "http_endpoint_parameter_name": "manufacturer" + }, + { + "name": "product_status", + "required": false, + "description": "Specify the status of the product: `1` for In Production, `2` for In Pipeline, `3` for Retired.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status_id" + }, + { + "name": "procurement_mode", + "required": false, + "description": "Specifies the mode of procurement: 1 for Buy, 2 for Lease, 3 for Both.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "mode_of_procurement_id" + }, + { + "name": "depreciation_type_identifier", + "required": false, + "description": "Unique identifier for the type of depreciation used for the product.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "depreciation_type_id" + }, + { + "name": "depreciation_type_description", + "required": false, + "description": "A description of the depreciation type used for the product. Accepts textual information detailing the depreciation category or specifics.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "product_id", + "tool_parameter_name": "product_unique_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": "id", + "tool_parameter_name": "product_id_number", + "description": "Unique ID of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "product_name", + "description": "Name of the Product", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "asset_type_id", + "tool_parameter_name": "asset_type_id", + "description": "Asset Type id of the Product", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset Type id of the Product" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "manufacturer", + "tool_parameter_name": "product_manufacturer_name", + "description": "Manufacturer Name - Free Text", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manufacturer Name - Free Text" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "status_id", + "tool_parameter_name": "product_status", + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "status can be\n `1` - In Production\n `2` - In Pipeline\n `3` - Retired\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "mode_of_procurement_id", + "tool_parameter_name": "procurement_mode", + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "mode of procurement can be\n `1` - Buy\n `2` - Lease\n `3` - Both\n" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "depreciation_type_id", + "tool_parameter_name": "depreciation_type_identifier", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "depreciation_type_description", + "description": "Unique identifier for the depreciation type used", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the depreciation type used" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the Product\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the Product\",\n \"example\": \"Apple MacBook Air 13\"\n },\n \"asset_type_id\": {\n \"type\": \"integer\",\n \"description\": \"Asset Type id of the Product\",\n \"format\": \"int64\",\n \"example\": 14000234243\n },\n \"manufacturer\": {\n \"type\": \"string\",\n \"description\": \"Manufacturer Name - Free Text\",\n \"example\": \"Apple\"\n },\n \"status_id\": {\n \"type\": \"integer\",\n \"description\": \"status can be\\n `1` - In Production\\n `2` - In Pipeline\\n `3` - Retired\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"mode_of_procurement_id\": {\n \"type\": \"integer\",\n \"description\": \"mode of procurement can be\\n `1` - Buy\\n `2` - Lease\\n `3` - Both\\n\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"depreciation_type_id\": {\n \"type\": \"integer\",\n \"format\": \"int64\",\n \"example\": 140009854\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the depreciation type used\",\n \"example\": \"Apple\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProject.json new file mode 100644 index 00000000..a443f3f2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProject.json @@ -0,0 +1,342 @@ +{ + "name": "UpdateProject", + "fully_qualified_name": "FreshserviceApi.UpdateProject@1.0.0", + "description": "Update an existing project in Freshservice.\n\nUse this tool to modify details of an existing project in Freshservice. Ideal for changes or updates to project information.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_id", + "required": true, + "description": "The unique identifier of the project to update. 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": "project_id" + }, + { + "name": "project_update_details", + "required": true, + "description": "JSON object containing the details of the project that needs updating, including fields like id, title, description, status, priority, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "project_update_details", + "description": "project that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"project that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 13298\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the project\",\n \"example\": \"Solution Articles for Ticket\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in HTML format\",\n \"example\": \"
Publish solution articles for Ticket
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in text format\",\n \"readOnly\": true,\n \"example\": \"Publish solution articles for Ticket\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the project\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the project\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the project\",\n \"format\": \"int64\",\n \"example\": 43423\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"User who created the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 123123\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-04-01T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-30T07:16:45Z\"\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Project archived status\",\n \"readOnly\": true,\n \"example\": true\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the project\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-11T07:16:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectStatus.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectStatus.json new file mode 100644 index 00000000..aa223d02 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectStatus.json @@ -0,0 +1,318 @@ +{ + "name": "UpdateProjectStatus", + "fully_qualified_name": "FreshserviceApi.UpdateProjectStatus@1.0.0", + "description": "Update an existing project's details in Freshservice.\n\nUse this tool to update information for an existing project within Freshservice. It should be called when changes to project data are needed, such as altering project status or details.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_identifier", + "required": true, + "description": "The unique identifier of the project to update in Freshservice. This is required to specify which project you want to modify.", + "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" + }, + { + "name": "project_update_details", + "required": true, + "description": "JSON object containing the details to update an existing project, including fields such as project ID, title, description, status, priority, owner, start and end dates, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/projects/{project_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "project_id", + "tool_parameter_name": "project_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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "project_update_details", + "description": "project that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the project" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the project in text format" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the project" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the project" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the project" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User who created the project" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the project" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the project" + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Project archived status" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the project" + } + }, + "inner_properties": null, + "description": "project that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"project that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 13298\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the project\",\n \"example\": \"Solution Articles for Ticket\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in HTML format\",\n \"example\": \"
Publish solution articles for Ticket
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Description about the project in text format\",\n \"readOnly\": true,\n \"example\": \"Publish solution articles for Ticket\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the project\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the project\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the project\",\n \"format\": \"int64\",\n \"example\": 43423\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"User who created the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 123123\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-04-01T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the project\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-30T07:16:45Z\"\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Project archived status\",\n \"readOnly\": true,\n \"example\": true\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the project\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-11T07:16:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectTask.json new file mode 100644 index 00000000..511242f7 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateProjectTask.json @@ -0,0 +1,489 @@ +{ + "name": "UpdateProjectTask", + "fully_qualified_name": "FreshserviceApi.UpdateProjectTask@1.0.0", + "description": "Update an existing project task in Freshservice.\n\nThis tool updates an existing project task in Freshservice. It should be called when modifications to task details are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "project_identifier", + "required": true, + "description": "The unique ID of the project containing the task to be updated.", + "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", + "required": true, + "description": "The ID of the task to be updated 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 updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "project_task_details", + "required": false, + "description": "A JSON object with details for the project task update, including task ID, project ID, title, description, status, owner, user, dates, and notification settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the task" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the task" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the task" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent who created the task" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the task" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the task" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the task" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Immediate parent of the task" + }, + "root_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Root parent of the task" + }, + "has_subtasks": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "States if the task has subtasks" + }, + "notification_needed": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify if needed to be notified" + }, + "notify": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BEFORE_START_DATE", + "BEFORE_END_DATE" + ], + "properties": null, + "inner_properties": null, + "description": "Specify whether notification should be sent before start or before end date" + }, + "value": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time period of notification" + }, + "time_unit": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "minutes", + "hours", + "days", + "weeks" + ], + "properties": null, + "inner_properties": null, + "description": "Time unit" + } + }, + "inner_properties": null, + "description": "Task notification details. Allowed range - 15 minutes to 4 weeks" + } + }, + "inner_properties": null, + "description": "project task that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}", + "http_method": "PUT", + "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", + "description": "ID of the task to be updated", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the task to be updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "project_task_details", + "description": "project task that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the task" + }, + "project_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the project" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description about the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the task" + }, + "owner_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Owner of the task" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent who created the task" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closed time of the task" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date of the task" + }, + "end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date of the task" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Immediate parent of the task" + }, + "root_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Root parent of the task" + }, + "has_subtasks": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "States if the task has subtasks" + }, + "notification_needed": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify if needed to be notified" + }, + "notify": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BEFORE_START_DATE", + "BEFORE_END_DATE" + ], + "properties": null, + "inner_properties": null, + "description": "Specify whether notification should be sent before start or before end date" + }, + "value": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time period of notification" + }, + "time_unit": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "minutes", + "hours", + "days", + "weeks" + ], + "properties": null, + "inner_properties": null, + "description": "Time unit" + } + }, + "inner_properties": null, + "description": "Task notification details. Allowed range - 15 minutes to 4 weeks" + } + }, + "inner_properties": null, + "description": "project task that needs to be created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"project task that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"project_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the project\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Name of the task\",\n \"example\": \"Clear backlog\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description about the task\",\n \"example\": \"Clear backlog\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"owner_id\": {\n \"type\": \"integer\",\n \"description\": \"Owner of the task\",\n \"format\": \"int64\",\n \"example\": 984793\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Agent who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 23423423\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Closed time of the task\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-14T07:16:45Z\"\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Start date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-14T07:16:45Z\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"description\": \"End date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-06-11T07:16:45Z\"\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Immediate parent of the task\",\n \"format\": \"int64\",\n \"example\": 34534\n },\n \"root_id\": {\n \"type\": \"integer\",\n \"description\": \"Root parent of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 12312\n },\n \"has_subtasks\": {\n \"type\": \"boolean\",\n \"description\": \"States if the task has subtasks\",\n \"readOnly\": true,\n \"example\": true\n },\n \"notification_needed\": {\n \"type\": \"boolean\",\n \"description\": \"Specify if needed to be notified\",\n \"example\": true\n },\n \"notify\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Specify whether notification should be sent before start or before end date\",\n \"example\": \"BEFORE_START_DATE\",\n \"enum\": [\n \"BEFORE_START_DATE\",\n \"BEFORE_END_DATE\"\n ]\n },\n \"value\": {\n \"type\": \"integer\",\n \"description\": \"Time period of notification\",\n \"example\": 2\n },\n \"time_unit\": {\n \"type\": \"string\",\n \"description\": \"Time unit\",\n \"example\": \"hours\",\n \"enum\": [\n \"minutes\",\n \"hours\",\n \"days\",\n \"weeks\"\n ]\n }\n },\n \"description\": \"Task notification details. Allowed range - 15 minutes to 4 weeks\",\n \"example\": {\n \"type\": \"BEFORE_START_DATE\",\n \"value\": 2,\n \"time_unit\": \"hours\"\n }\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdatePurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdatePurchaseOrder.json new file mode 100644 index 00000000..7a7463ab --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdatePurchaseOrder.json @@ -0,0 +1,148 @@ +{ + "name": "UpdatePurchaseOrder", + "fully_qualified_name": "FreshserviceApi.UpdatePurchaseOrder@1.0.0", + "description": "Update details of an existing purchase order.\n\nThis tool updates an existing purchase order with new information. Call this tool when you need to modify purchase order details in the Freshservice system.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "The ID of the purchase order to update. It identifies which purchase order will be modified.", + "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" + }, + { + "name": "purchase_order_details", + "required": true, + "description": "A JSON object containing the updated purchase order details. This includes fields like item descriptions, quantities, prices, or other relevant information necessary for the update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "purchase_order_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"allOf\": [\n {\n \"title\": \"PurchaseOrder\",\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the purchase order\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"vendor_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the vendor with whom the order is placed\",\n \"format\": \"int64\",\n \"example\": 100001633\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Title of the purchase order\",\n \"example\": \"Procure Adobe License\"\n },\n \"po_number\": {\n \"type\": \"string\",\n \"description\": \"Purchase order number\",\n \"example\": \"PO-10\"\n },\n \"vendor_details\": {\n \"type\": \"string\",\n \"description\": \"Details of the vendor with whom the order is placed\",\n \"example\": \"1 Infinite Loop Cupertino California United States 95014\"\n },\n \"expected_delivery_date\": {\n \"type\": \"string\",\n \"description\": \"Expected delivery date of the purchase order\",\n \"format\": \"date-time\",\n \"example\": \"2020-01-01T05:00:01Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Created date and time of the purchase order\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-30T04:22:14Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Updated date and time of the purchase order\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-30T04:22:14Z\"\n },\n \"created_by\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"ID of the agent who created purchase order\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001001256\n },\n \"status\": {\n \"type\": \"number\",\n \"description\": \"Status of the purchase order\",\n \"example\": 20.0\n },\n \"shipping_address\": {\n \"type\": \"string\",\n \"description\": \"Address to which the order should be shipped\",\n \"example\": \"1 Infinite Loop Cupertino California\"\n },\n \"billing_same_as_shipping\": {\n \"type\": \"boolean\",\n \"description\": \"True if Billing address is same as Shipping address\",\n \"example\": true\n },\n \"billing_address\": {\n \"type\": \"string\",\n \"description\": \"Address to which the order should be billed\",\n \"example\": \"1 Infinite Loop Cupertino California\"\n },\n \"currency_code\": {\n \"type\": \"string\",\n \"description\": \"Currency unit used in the transaction\",\n \"example\": \"USD\",\n \"enum\": [\n \"AUD\",\n \"THB\",\n \"CAD\",\n \"CNY\",\n \"DKK\",\n \"AED\",\n \"USD\",\n \"EGP\",\n \"EUR\",\n \"HUF\",\n \"CHF\",\n \"HKD\",\n \"IDR\",\n \"ILS\",\n \"CZK\",\n \"ISK\",\n \"TRL\",\n \"MYR\",\n \"MXN\",\n \"NOK\",\n \"OMR\",\n \"PHP\",\n \"PLN\",\n \"GBP\",\n \"BWP\",\n \"QAR\",\n \"ZAR\",\n \"BRL\",\n \"RUB\",\n \"INR\",\n \"SAR\",\n \"SGD\",\n \"SEK\",\n \"TWD\",\n \"VND\",\n \"KRW\",\n \"JPY\",\n \"NZD\",\n \"JOD\"\n ]\n },\n \"conversion_rate\": {\n \"type\": \"number\",\n \"description\": \"Conversion rate to convert selected currency unit to helpdesk currency\",\n \"format\": \"float\",\n \"example\": 1.0\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department\",\n \"format\": \"int64\",\n \"example\": 10123\n },\n \"discount_percentage\": {\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of discount on the order\",\n \"format\": \"float\",\n \"example\": 2.0\n },\n \"tax_percentage\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of tax on the order\",\n \"format\": \"float\",\n \"example\": 5.0\n },\n \"shipping_cost\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Total cost of shipping the order\",\n \"format\": \"float\",\n \"example\": 10.0\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"properties\": {},\n \"example\": {\n \"manager\": \"andrea@freshservice.com\",\n \"department\": \"IT\"\n }\n }\n },\n \"x-tags\": [\n \"Purchase Orders\"\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"purcahse_items\": {\n \"type\": \"array\",\n \"example\": [\n {\n \"item_type\": 2,\n \"item_name\": \"Macbook Air\",\n \"description\": \"Macbook Air\",\n \"cost\": 2,\n \"quantity\": 1,\n \"tax_percentage\": 5\n }\n ],\n \"items\": {\n \"title\": \"PurchaseItem\",\n \"type\": \"object\",\n \"properties\": {\n \"item_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of item to be ordered\",\n \"format\": \"int64\",\n \"example\": 2,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"item_name\": {\n \"type\": \"string\",\n \"description\": \"Name of the items to be ordered\",\n \"example\": \"Macbook Air\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Item description\",\n \"example\": \"Macbook Air\"\n },\n \"cost\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Cost of the item\",\n \"example\": 2.0\n },\n \"quantity\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Quantity of item to be ordered\",\n \"example\": 1\n },\n \"tax_percentage\": {\n \"minimum\": 0,\n \"type\": \"number\",\n \"description\": \"Percentage of tax on item cost\",\n \"example\": 5.0\n }\n },\n \"x-tags\": [\n \"Purchase Orders\"\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRelease.json new file mode 100644 index 00000000..e48e12b2 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRelease.json @@ -0,0 +1,1008 @@ +{ + "name": "UpdateRelease", + "fully_qualified_name": "FreshserviceApi.UpdateRelease@1.0.0", + "description": "Update an existing release in Freshservice.\n\nUse this tool to update details of an existing release in Freshservice by specifying the release ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The ID of the release to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of release to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "release_id" + }, + { + "name": "release_update_details", + "required": true, + "description": "JSON object containing details of the release to be updated, including IDs, timestamps, and status.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Release details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "release_id", + "tool_parameter_name": "release_id", + "description": "ID of release to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of release to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "release_update_details", + "description": "Release details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Release" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Release is assigned" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Release is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5" + }, + "release_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the Release 1-minor, 2-standard, 3-major, 4-emergency" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Release" + }, + "planned_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is starting" + }, + "planned_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release is ending" + }, + "work_start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work started" + }, + "work_end_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which release work ended" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Release" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Release" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Release" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Release" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Release was last updated" + }, + "associated_assets": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the assets associated with the Release request" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "associated_changes": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the Changes associated with the Release" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "planning_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "reason_for_change": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Reason for change in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "rollout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Rollout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + }, + "backout_plan": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout Plan" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Backout plan in plain text format" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Release details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Release details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Release\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 10\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 14043616\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Release is assigned\",\n \"format\": \"int64\",\n \"example\": 10184589\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Release 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Release. Open -> 1, On hold -> 2, In Progress -> 3, Incomplete -> 4, Completed -> 5\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"release_type\": {\n \"type\": \"integer\",\n \"description\": \"Type of the Release 1-minor, 2-standard, 3-major, 4-emergency\",\n \"format\": \"string\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Release\",\n \"example\": \"Security Patch Deployment\"\n },\n \"planned_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is starting\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"planned_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release is ending\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"work_start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work started\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-01T18:30:00Z\"\n },\n \"work_end_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which release work ended\",\n \"format\": \"date-time\",\n \"example\": \"2021-08-08T18:45:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Release\",\n \"format\": \"int64\",\n \"example\": 10143312\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Release\",\n \"example\": \"Security\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Release\",\n \"example\": \"Deployment\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Release\",\n \"example\": \"Security\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Release was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-08-12T10:10:20Z\"\n },\n \"associated_assets\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the assets associated with the Release request\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"associated_changes\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the Changes associated with the Release\",\n \"readOnly\": true,\n \"example\": [\n 1001,\n 1002\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Some Value\"\n }\n },\n \"planning_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason_for_change\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Reason for change\",\n \"example\": \"

Reason for change

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Reason for change in plain text format\",\n \"readOnly\": true,\n \"example\": \"Reason for Change\"\n }\n },\n \"example\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n }\n },\n \"impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact\",\n \"example\": \"

Impact

\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Impact in plain text format\",\n \"readOnly\": true,\n \"example\": \"Impact\"\n }\n },\n \"example\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n }\n },\n \"rollout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Rollout Plan\",\n \"example\": \"
Rollout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Rollout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Rollout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n }\n },\n \"backout_plan\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Backout Plan\",\n \"example\": \"
Backout plan
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Backout plan in plain text format\",\n \"readOnly\": true,\n \"example\": \"Backout Plan\"\n }\n },\n \"example\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n },\n \"example\": {\n \"reason_for_change\": {\n \"description\": \"
Reason for change
\",\n \"description_text\": \"Reason for change\"\n },\n \"impact\": {\n \"description\": \"
Impact
\",\n \"description_text\": \"Impact\"\n },\n \"rollout_plan\": {\n \"description\": \"
Rollout plan
\",\n \"description_text\": \"Rollout Plan\"\n },\n \"backout_plan\": {\n \"description\": \"
Backout plan
\",\n \"description_text\": \"Backout Plan\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNote.json new file mode 100644 index 00000000..be7770b4 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNote.json @@ -0,0 +1,379 @@ +{ + "name": "UpdateReleaseNote", + "fully_qualified_name": "FreshserviceApi.UpdateReleaseNote@1.0.0", + "description": "Update an existing release note in Freshservice.\n\nThis tool updates an existing note on a specified release in Freshservice. Call this when you need to modify the content of a release note within the platform.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_identifier", + "required": true, + "description": "The unique integer ID of the release to be updated.", + "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 of the note to be updated.", + "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" + }, + { + "name": "note_unique_id", + "required": false, + "description": "The unique ID of the note to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_id_of_note_creator", + "required": false, + "description": "Unique ID of the user who created the note.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "An array of email addresses to notify about the updated release note.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_html_body", + "required": false, + "description": "The HTML content of the note to be updated. Use valid HTML format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The content of the release note in plain text format, without any HTML tags.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_created_datetime", + "required": false, + "description": "The date and time when the note was initially created, in ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SSZ).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_at", + "required": false, + "description": "Date and time when the note was updated, in ISO 8601 format (e.g., '2023-03-27T14:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "release_id", + "tool_parameter_name": "release_identifier", + "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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_id_of_note_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_html_body", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_created_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_at", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"note details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNoteFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNoteFreshservice.json new file mode 100644 index 00000000..02054bbc --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseNoteFreshservice.json @@ -0,0 +1,355 @@ +{ + "name": "UpdateReleaseNoteFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateReleaseNoteFreshservice@1.0.0", + "description": "Update a note on a release in Freshservice.\n\nUse this tool to update an existing note on a specific release in Freshservice. It is useful when changes or corrections need to be made to release notes.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The unique identifier for the release associated with the note to be updated.", + "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_identifier", + "required": true, + "description": "The unique ID of the note to be updated 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" + }, + { + "name": "note_unique_id", + "required": false, + "description": "Unique ID of the note to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_id_creator", + "required": false, + "description": "Unique ID of the user who created the note to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "notification_email_addresses", + "required": false, + "description": "List of email addresses to notify about the note update.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "inferrable": true, + "http_endpoint_parameter_name": "notify_emails" + }, + { + "name": "note_body_html", + "required": false, + "description": "The body of the note in HTML format, containing the content to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body" + }, + { + "name": "note_body_plain_text", + "required": false, + "description": "The body content of the note in plain text format, without HTML.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "inferrable": true, + "http_endpoint_parameter_name": "body_text" + }, + { + "name": "note_creation_datetime", + "required": false, + "description": "The exact date and time when the note was originally created, in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "created_at" + }, + { + "name": "note_updated_at", + "required": false, + "description": "The date and time when the note was last updated in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "updated_at" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}", + "http_method": "PUT", + "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_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": [] + }, + { + "name": "id", + "tool_parameter_name": "note_unique_id", + "description": "Unique ID of the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "user_id_creator", + "description": "Unique ID of the user who created the note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the note" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "notify_emails", + "tool_parameter_name": "notification_email_addresses", + "description": "Addresses to which the note must be notified to", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Addresses to which the note must be notified to" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body", + "tool_parameter_name": "note_body_html", + "description": "The body of the note in HTML format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in HTML format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "body_text", + "tool_parameter_name": "note_body_plain_text", + "description": "The body of the note in plain text format", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The body of the note in plain text format" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "created_at", + "tool_parameter_name": "note_creation_datetime", + "description": "Date time at which the note was created", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was created" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "updated_at", + "tool_parameter_name": "note_updated_at", + "description": "Date time at which the note was updated", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the note was updated" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"note details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000345353\n },\n \"user_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the note\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004534\n },\n \"notify_emails\": {\n \"type\": \"array\",\n \"description\": \"Addresses to which the note must be notified to\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"body\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in HTML format\",\n \"example\": \"

Assigned to IT team

\"\n },\n \"body_text\": {\n \"type\": \"string\",\n \"description\": \"The body of the note in plain text format\",\n \"example\": \"Assigned to IT team\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was created\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the note was updated\",\n \"format\": \"date_time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTask.json new file mode 100644 index 00000000..eebcc78a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTask.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateReleaseTask", + "fully_qualified_name": "FreshserviceApi.UpdateReleaseTask@1.0.0", + "description": "Update a specific task within a release in Freshservice.\n\nUse this tool to modify details of a specific task associated with an existing release in Freshservice. This is useful when changes are needed in task descriptions, assignments, dates, or statuses within a release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "The numeric ID of the release containing the task to update. This ID is mandatory to locate the specific release.", + "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 numeric ID of the task to be updated in the 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" + }, + { + "name": "task_update_details", + "required": true, + "description": "Details of the task to be updated, including title, description, status, assigned agent, and dates.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_update_details", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTimeEntry.json new file mode 100644 index 00000000..45da133f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateReleaseTimeEntry.json @@ -0,0 +1,407 @@ +{ + "name": "UpdateReleaseTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateReleaseTimeEntry@1.0.0", + "description": "Update a time entry on a release in Freshservice.\n\nUse this tool to update an existing time entry associated with a specific release in Freshservice. It should be called when you need to modify details of a time entry for an already existing release.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "release_id", + "required": true, + "description": "ID of the release to be updated. Must be an 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": "time_entry_id", + "required": true, + "description": "ID of the time entry to be updated.", + "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" + }, + { + "name": "time_entry_details", + "required": true, + "description": "Details of the time entry to be updated. This includes ID, task ID, parent ID, parent type, start time, time spent, timer status, billable status, agent ID, note, and timestamps. Also includes custom fields as key-value pairs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterFreshservice.json new file mode 100644 index 00000000..d1a371b6 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterFreshservice.json @@ -0,0 +1,462 @@ +{ + "name": "UpdateRequesterFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateRequesterFreshservice@1.0.0", + "description": "Update an existing requester in Freshservice.\n\nUse this tool to update details of an existing requester in Freshservice by specifying the requester ID and the new data.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "The unique integer ID of the requester to update in Freshservice.", + "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" + }, + { + "name": "requester_data_to_update", + "required": true, + "description": "JSON object containing the updated details of the requester, such as name, email, phone number, department IDs, time zone, language, etc. Include fields like 'first_name', 'last_name', 'primary_email', and any other necessary details for the update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/requesters/{requester_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "requester_id", + "tool_parameter_name": "requester_id", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "requester_data_to_update", + "description": "Requester who needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"Requester who needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the requester\",\n \"example\": \"Andrea\"\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the requester\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the requester\",\n \"example\": \"Product Manager\"\n },\n \"primary_email\": {\n \"type\": \"string\",\n \"description\": \"Primary email address of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"secondary_emails\": {\n \"type\": \"array\",\n \"description\": \"Secondary email addresses of the requester\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"department_ids\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the departments associated with the requester\",\n \"example\": [\n 1400043345,\n 1400046983\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"can_see_all_tickets_from_associated_departments\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise\",\n \"example\": true\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"2968 D Street, Bloomfield, Michigan\"\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the requester\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the requester\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the requester\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"background_information\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"Done\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": \"\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInFreshservice.json new file mode 100644 index 00000000..c23363cb --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInFreshservice.json @@ -0,0 +1,486 @@ +{ + "name": "UpdateRequesterInFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateRequesterInFreshservice@1.0.0", + "description": "Update an existing requester in Freshservice.\n\nUse this tool to modify details of an existing requester in Freshservice by specifying their unique ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id_to_update", + "required": true, + "description": "The unique integer ID of the requester to update in Freshservice.", + "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" + }, + { + "name": "requester_update_data", + "required": true, + "description": "JSON object containing fields to update for the requester, such as 'first_name', 'last_name', 'job_title', etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "requester_id", + "tool_parameter_name": "requester_id_to_update", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "requester_update_data", + "description": "Requester who needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Requester who needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the requester\",\n \"example\": \"Andrea\"\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the requester\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the requester\",\n \"example\": \"Product Manager\"\n },\n \"primary_email\": {\n \"type\": \"string\",\n \"description\": \"Primary email address of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"secondary_emails\": {\n \"type\": \"array\",\n \"description\": \"Secondary email addresses of the requester\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"department_ids\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the departments associated with the requester\",\n \"example\": [\n 1400043345,\n 1400046983\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"can_see_all_tickets_from_associated_departments\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise\",\n \"example\": true\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"2968 D Street, Bloomfield, Michigan\"\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the requester\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the requester\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the requester\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"background_information\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"Done\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInfo.json new file mode 100644 index 00000000..16b0257a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateRequesterInfo.json @@ -0,0 +1,486 @@ +{ + "name": "UpdateRequesterInfo", + "fully_qualified_name": "FreshserviceApi.UpdateRequesterInfo@1.0.0", + "description": "Updates an existing requester's information in Freshservice.\n\nUse this tool to update details of an existing requester in Freshservice. It should be called when modifications to a requester's profile or details are required.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "requester_id", + "required": true, + "description": "The unique integer ID of the requester whose information needs to be updated.", + "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" + }, + { + "name": "requester_update_data", + "required": true, + "description": "JSON object containing the requester's updated information such as name, email, phone number, department IDs, and more. It includes fields like `id`, `first_name`, `last_name`, and other relevant details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "requester_id", + "tool_parameter_name": "requester_id", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "requester_update_data", + "description": "Requester who needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester" + }, + "first_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "First Name of the requester" + }, + "last_name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last Name of the requester" + }, + "job_title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Job Title of the requester" + }, + "primary_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Primary email address of the requester" + }, + "secondary_emails": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Secondary email addresses of the requester" + }, + "work_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Work phone number of the requester" + }, + "mobile_phone_number": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mobile phone number of the requester" + }, + "department_ids": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique IDs of the departments associated with the requester" + }, + "can_see_all_tickets_from_associated_departments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise" + }, + "reporting_manager_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the requester's reporting manager" + }, + "address": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "time_zone": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time zone of the requester" + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Language used by the requester" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the location associated with the requester" + }, + "background_information": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address of the requester" + }, + "active": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user is active, and false if the user account has been deactivated." + }, + "has_logged_in": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the user has logged in to Freshservice at least once, and false otherwise." + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was created" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the requester was last modified" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Requester who needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Requester who needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"first_name\": {\n \"type\": \"string\",\n \"description\": \"First Name of the requester\",\n \"example\": \"Andrea\"\n },\n \"last_name\": {\n \"type\": \"string\",\n \"description\": \"Last Name of the requester\",\n \"example\": \"Smith\"\n },\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"Job Title of the requester\",\n \"example\": \"Product Manager\"\n },\n \"primary_email\": {\n \"type\": \"string\",\n \"description\": \"Primary email address of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"secondary_emails\": {\n \"type\": \"array\",\n \"description\": \"Secondary email addresses of the requester\",\n \"example\": [\n \"andrea@freshservice.com\",\n \"john.doe@freshservice.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"work_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Work phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"mobile_phone_number\": {\n \"type\": \"string\",\n \"description\": \"Mobile phone number of the requester\",\n \"example\": \"+1-567-3492\"\n },\n \"department_ids\": {\n \"type\": \"array\",\n \"description\": \"Unique IDs of the departments associated with the requester\",\n \"example\": [\n 1400043345,\n 1400046983\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"can_see_all_tickets_from_associated_departments\": {\n \"type\": \"boolean\",\n \"description\": \"Set to true if the requester must be allowed to view tickets filed by other members of the department, and false otherwise\",\n \"example\": true\n },\n \"reporting_manager_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the requester's reporting manager\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"2968 D Street, Bloomfield, Michigan\"\n },\n \"time_zone\": {\n \"type\": \"string\",\n \"description\": \"Time zone of the requester\",\n \"example\": \"Eastern Time (US & Canada)\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language used by the requester\",\n \"example\": \"en\"\n },\n \"location_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the location associated with the requester\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"background_information\": {\n \"type\": \"string\",\n \"description\": \"Address of the requester\",\n \"example\": \"Done\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user is active, and false if the user account has been deactivated.\",\n \"example\": true\n },\n \"has_logged_in\": {\n \"type\": \"boolean\",\n \"description\": \"true if the user has logged in to Freshservice at least once, and false otherwise.\",\n \"example\": true\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the requester was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceProblem.json new file mode 100644 index 00000000..4c11dda0 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceProblem.json @@ -0,0 +1,944 @@ +{ + "name": "UpdateServiceProblem", + "fully_qualified_name": "FreshserviceApi.UpdateServiceProblem@1.0.0", + "description": "Update details of an existing problem in Freshservice.\n\nUse this tool to update information for a specific problem within the Freshservice platform by providing the necessary problem ID and details to modify.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "problem_id", + "required": true, + "description": "The integer ID of the problem to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "problem_id" + }, + { + "name": "problem_details_to_update", + "required": true, + "description": "JSON object specifying the details of the problem to update, including identifiers, status, priority, and any associated assets or attachments.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "problem_id", + "tool_parameter_name": "problem_id", + "description": "ID of problem to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of problem to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "problem_details_to_update", + "description": "Problem details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the Problem" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent to whom the Problem is assigned" + }, + "requester_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the user who raised the Problem" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the agent group to which the Problem is assigned" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent" + }, + "impact": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem 1-Low, 2-Medium, 3-High" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3" + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Subject of the Problem" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem's resolution is due" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the department initiating the Problem" + }, + "category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Category of the Problem" + }, + "sub_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Sub-category of the Problem" + }, + "item_category": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Item of the Problem" + }, + "known_error": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if the Problem is a known error, false otherwise" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which Problem was last updated" + }, + "assets": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "id of the asset" + }, + "display_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "display id of the asset that is used for all operations" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Display Name of the Asset" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the asset" + }, + "asset_type_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset type." + }, + "impact": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "low", + "medium", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "Impact of the asset (accepted values 'high' 'medium' 'low')" + }, + "author_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset created by source" + }, + "usage_type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "permanent", + "loaner" + ], + "properties": null, + "inner_properties": null, + "description": "Usage type of the asset (accepted values are 'permanent' & 'loaner')" + }, + "asset_tag": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asset tag of the asset" + }, + "user_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used by of the asset" + }, + "department_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Department of the asset" + }, + "location_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Location of the asset" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by of the asset" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Managed by group of the asset" + }, + "assigned_on": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date and time when the asset was assigned" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the asset was last modified" + }, + "type_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fields specific to every asset type (Every asset will have default base fields and type specific fields)" + } + }, + "description": "Assets associated with the Ticket" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached to the Problem request" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + }, + "analysis_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "problem_cause": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Cause of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Cause" + } + }, + "inner_properties": null, + "description": null + }, + "problem_symptoms": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Symptoms of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Symptom" + } + }, + "inner_properties": null, + "description": null + }, + "problem_impact": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Impact of the Problem" + }, + "attachments": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "URLs of attachments attached for Problem Impact" + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Problem details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Problem details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the Problem\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1001\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent to whom the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 34523423\n },\n \"requester_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the user who raised the Problem\",\n \"format\": \"int64\",\n \"example\": 193845793\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the agent group to which the Problem is assigned\",\n \"format\": \"int64\",\n \"example\": 12943209\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"Priority of the Problem 1-Low, 2-Medium, 3-High, 4-Urgent\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"impact\": {\n \"type\": \"integer\",\n \"description\": \"Impact of the Problem 1-Low, 2-Medium, 3-High\",\n \"format\": \"int64\",\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3\n ]\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status identifier of the Problem. Open -> 1, Change Requested -> 2, Closed -> 3\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Subject of the Problem\",\n \"example\": \"Unable to reach email server\"\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem's resolution is due\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-06-25T07:16:00Z\"\n },\n \"department_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the department initiating the Problem\",\n \"format\": \"int64\",\n \"example\": 14002384\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"Category of the Problem\",\n \"example\": \"Customer Support\"\n },\n \"sub_category\": {\n \"type\": \"string\",\n \"description\": \"Sub-category of the Problem\",\n \"example\": \"Multi-DRM and Rights Management\"\n },\n \"item_category\": {\n \"type\": \"string\",\n \"description\": \"Item of the Problem\",\n \"example\": \"Media Manager\"\n },\n \"known_error\": {\n \"type\": \"boolean\",\n \"description\": \"true if the Problem is a known error, false otherwise\",\n \"example\": true\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which Problem was last updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-12T15:01:27Z\"\n },\n \"assets\": {\n \"type\": \"array\",\n \"description\": \"Assets associated with the Ticket\",\n \"example\": [],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"id of the asset\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"display_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"display id of the asset that is used for all operations\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1453\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display Name of the Asset\",\n \"example\": \"Hardware-Monitor\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the asset\",\n \"example\": \"28-inch Hardware-Monitor\"\n },\n \"asset_type_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Id of the asset type.\",\n \"format\": \"int64\",\n \"example\": 14000284324\n },\n \"impact\": {\n \"type\": \"string\",\n \"description\": \"Impact of the asset (accepted values 'high' 'medium' 'low')\",\n \"example\": \"low\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\"\n ]\n },\n \"author_type\": {\n \"type\": \"string\",\n \"description\": \"Asset created by source\",\n \"readOnly\": true,\n \"example\": \"User\"\n },\n \"usage_type\": {\n \"type\": \"string\",\n \"description\": \"Usage type of the asset (accepted values are 'permanent' & 'loaner')\",\n \"example\": \"loaner\",\n \"enum\": [\n \"permanent\",\n \"loaner\"\n ]\n },\n \"asset_tag\": {\n \"type\": \"string\",\n \"description\": \"Asset tag of the asset\",\n \"example\": \"wxyzabcdefghij\"\n },\n \"user_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Used by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"department_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Department of the asset\",\n \"format\": \"int64\",\n \"example\": 14000232343\n },\n \"location_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Location of the asset\",\n \"format\": \"int64\",\n \"example\": 140006394857\n },\n \"agent_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"group_id\": {\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Managed by group of the asset\",\n \"format\": \"int64\",\n \"example\": 14000234939\n },\n \"assigned_on\": {\n \"type\": \"string\",\n \"description\": \"Date and time when the asset was assigned\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the asset was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"type_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Fields specific to every asset type (Every asset will have default base fields and type specific fields)\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached to the Problem request\",\n \"readOnly\": true,\n \"example\": [\n \"https://s3.amazonaws.com/fs/image1.jpg\",\n \"https://s3.amazonaws.com/fs/image2.jpg\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Sample value\"\n }\n },\n \"analysis_fields\": {\n \"type\": \"object\",\n \"properties\": {\n \"problem_cause\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Cause of the Problem\",\n \"example\": \"Router malfunction\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Cause\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Router malfunction\"\n }\n },\n \"problem_symptoms\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Symptoms of the Problem\",\n \"example\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Symptom\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n }\n },\n \"problem_impact\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Impact of the Problem\",\n \"example\": \"Affects Wi-fi connectivity in Block A\"\n },\n \"attachments\": {\n \"type\": \"array\",\n \"description\": \"URLs of attachments attached for Problem Impact\",\n \"example\": [\n \"https://s3.amazonaws.com/fs/doc1.pdf\",\n \"https://s3.amazonaws.com/fs/doc2.pdf\"\n ],\n \"items\": {\n \"type\": \"string\",\n \"format\": \"URL\"\n }\n }\n },\n \"example\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n },\n \"example\": {\n \"problem_cause\": {\n \"description\": \"Router malfunction\"\n },\n \"problem_symptoms\": {\n \"description\": \"Cannot connect mobile devices to Wi-fi\"\n },\n \"problem_impact\": {\n \"description\": \"Affects Wi-fi connectivity in Block A\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceRequest.json new file mode 100644 index 00000000..9cf12d5a --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateServiceRequest.json @@ -0,0 +1,342 @@ +{ + "name": "UpdateServiceRequest", + "fully_qualified_name": "FreshserviceApi.UpdateServiceRequest@1.0.0", + "description": "Update an existing service request in Freshservice.\n\nUse this tool to update details of an existing service request in Freshservice when changes are needed.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "service_request_id", + "required": true, + "description": "The unique integer ID of the service request that needs to be updated in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Service Request to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "service_request_id" + }, + { + "name": "service_request_details", + "required": true, + "description": "JSON object containing details of the service request to be updated, including fields such as requester email, subject, status, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "requested_for_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the subject of the ticket" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the status of the ticket" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the priority of the ticket" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the description/body of the ticket" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the agent ID to whom the ticket is assigned" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "group_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. The default value is 2." + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket." + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Service request to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-service-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_requests/{service_request_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "service_request_id", + "tool_parameter_name": "service_request_id", + "description": "ID of Service Request to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of Service Request to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "service_request_details", + "description": "Service request to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the requester" + }, + "requested_for_email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the email id of the user for whom this is requested." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the subject of the ticket" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the status of the ticket" + }, + "priority": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the priority of the ticket" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the description/body of the ticket" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "the agent ID to whom the ticket is assigned" + }, + "due_by": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp that denotes when the ticket is due to be resolved" + }, + "group_id": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id." + }, + "source": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The channel through which the ticket was created. The default value is 2." + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Tags that have been associated with the ticket." + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom fields that are associated with a Freshservice entity" + } + }, + "inner_properties": null, + "description": "Service request to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Service request to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"requester_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the requester\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"requested_for_email\": {\n \"type\": \"string\",\n \"description\": \"the email id of the user for whom this is requested.\",\n \"example\": \"andrea@freshservice.com\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"the subject of the ticket\",\n \"example\": \"Request for VPN access\"\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"the status of the ticket\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"priority\": {\n \"type\": \"integer\",\n \"description\": \"the priority of the ticket\",\n \"format\": \"int32\",\n \"example\": 2\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"the description/body of the ticket\",\n \"example\": \"Request for VPN access\"\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"the agent ID to whom the ticket is assigned\",\n \"format\": \"int32\",\n \"example\": 19234923\n },\n \"due_by\": {\n \"type\": \"string\",\n \"description\": \"Timestamp that denotes when the ticket is due to be resolved\",\n \"format\": \"date-time\"\n },\n \"group_id\": {\n \"type\": \"number\",\n \"description\": \"ID of the group to which the ticket has been assigned. The default value is the ID of the group that is associated with the given email_config_id.\",\n \"format\": \"int32\",\n \"example\": 12938743\n },\n \"source\": {\n \"type\": \"number\",\n \"description\": \"The channel through which the ticket was created. The default value is 2.\",\n \"format\": \"int32\",\n \"example\": 2.0\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"Tags that have been associated with the ticket.\",\n \"example\": [\n \"VPN\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"description\": \"Custom fields that are associated with a Freshservice entity\",\n \"example\": {\n \"field1\": \"Value 1\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticle.json new file mode 100644 index 00000000..e9ddd4dd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticle.json @@ -0,0 +1,438 @@ +{ + "name": "UpdateSolutionArticle", + "fully_qualified_name": "FreshserviceApi.UpdateSolutionArticle@1.0.0", + "description": "Update a Freshservice solution article by ID.\n\nThis tool updates a solution article in Freshservice using the provided article ID. It should be called when you need to modify the details of an existing solution article.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_article_id", + "required": true, + "description": "The ID of the Freshservice solution article to update.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "article_id" + }, + { + "name": "article_update_data", + "required": true, + "description": "JSON object containing solution article details like title, description, category ID, etc. Expected fields include 'id', 'folder_id', 'category_id', 'title', 'description', 'status', among others. Use this to specify updates to the article.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "article_id", + "tool_parameter_name": "solution_article_id", + "description": "ID of the solution article to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "article_update_data", + "description": "Article that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Article that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400020394823\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"description\": \"ID of the folder under which the article is listed\",\n \"format\": \"int64\",\n \"example\": 140000394234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400023423\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the solution article\",\n \"example\": \"Unable to connect VPN\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in HTML format\",\n \"example\": \"
Login with AD credentials for VPN
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in plain-text format\",\n \"example\": \"Login with AD credentials for VPN\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The rank of the solution article in the article listing\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"article_type\": {\n \"type\": \"integer\",\n \"description\": \"The type of the article. ( 1 - permanent, 2 - workaround )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the article. ( 1 - draft, 2 - published )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"thumbs_up\": {\n \"type\": \"integer\",\n \"description\": \"Number of upvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 34534\n },\n \"thumbs_down\": {\n \"type\": \"integer\",\n \"description\": \"Number of downvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 43\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who created the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who last updated the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"views\": {\n \"type\": \"integer\",\n \"description\": \"number of views for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"search_keywords\": {\n \"type\": \"array\",\n \"description\": \"Keywords for which this article should be mapped\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"The tags associated to the article\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticleFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticleFreshservice.json new file mode 100644 index 00000000..04149a7e --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionArticleFreshservice.json @@ -0,0 +1,438 @@ +{ + "name": "UpdateSolutionArticleFreshservice", + "fully_qualified_name": "FreshserviceApi.UpdateSolutionArticleFreshservice@1.0.0", + "description": "Update a solution article in Freshservice.\n\nThis tool updates a solution article in Freshservice using the article's ID. It should be called when you need to modify or update the content of an existing solution article.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_article_id", + "required": true, + "description": "The ID of the solution article to update in Freshservice.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "inferrable": true, + "http_endpoint_parameter_name": "article_id" + }, + { + "name": "article_update_details", + "required": true, + "description": "JSON containing updated fields for the solution article, such as title, description, category, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "article_id", + "tool_parameter_name": "solution_article_id", + "description": "ID of the solution article to update", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the solution article to update" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "article_update_details", + "description": "Article that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution article" + }, + "folder_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the folder under which the article is listed" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the solution article" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in HTML format" + }, + "description_text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Content of the solution article in plain-text format" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The rank of the solution article in the article listing" + }, + "article_type": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of the article. ( 1 - permanent, 2 - workaround )" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the article. ( 1 - draft, 2 - published )" + }, + "thumbs_up": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of upvotes for the article" + }, + "thumbs_down": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of downvotes for the article" + }, + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who created the article" + }, + "created_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was created" + }, + "updated_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the user who last updated the article" + }, + "updated_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the department was last modified" + }, + "views": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "number of views for the article" + }, + "search_keywords": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Keywords for which this article should be mapped" + }, + "tags": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tags associated to the article" + } + }, + "inner_properties": null, + "description": "Article that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Article that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1400020394823\n },\n \"folder_id\": {\n \"type\": \"integer\",\n \"description\": \"ID of the folder under which the article is listed\",\n \"format\": \"int64\",\n \"example\": 140000394234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400023423\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the solution article\",\n \"example\": \"Unable to connect VPN\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in HTML format\",\n \"example\": \"
Login with AD credentials for VPN
\"\n },\n \"description_text\": {\n \"type\": \"string\",\n \"description\": \"Content of the solution article in plain-text format\",\n \"example\": \"Login with AD credentials for VPN\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The rank of the solution article in the article listing\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"article_type\": {\n \"type\": \"integer\",\n \"description\": \"The type of the article. ( 1 - permanent, 2 - workaround )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the article. ( 1 - draft, 2 - published )\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"thumbs_up\": {\n \"type\": \"integer\",\n \"description\": \"Number of upvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 34534\n },\n \"thumbs_down\": {\n \"type\": \"integer\",\n \"description\": \"Number of downvotes for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 43\n },\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who created the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"created_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"updated_by\": {\n \"type\": \"integer\",\n \"description\": \"ID of the user who last updated the article\",\n \"format\": \"int64\",\n \"example\": 140004343\n },\n \"updated_time\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the department was last modified\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"views\": {\n \"type\": \"integer\",\n \"description\": \"number of views for the article\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 140004343\n },\n \"search_keywords\": {\n \"type\": \"array\",\n \"description\": \"Keywords for which this article should be mapped\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"tags\": {\n \"type\": \"array\",\n \"description\": \"The tags associated to the article\",\n \"example\": [\n \"VPN\",\n \"WiFi\",\n \"Network\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionCategory.json new file mode 100644 index 00000000..3e19e1fd --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionCategory.json @@ -0,0 +1,280 @@ +{ + "name": "UpdateSolutionCategory", + "fully_qualified_name": "FreshserviceApi.UpdateSolutionCategory@1.0.0", + "description": "Update a solution category in Freshservice by ID.\n\nUse this tool to update a specific solution category in Freshservice by providing the category ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_category_id", + "required": true, + "description": "The ID of the solution category to be updated in 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 updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "category_id" + }, + { + "name": "category_unique_id", + "required": false, + "description": "Unique identifier of the solution category to update. It must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "solution_category_name", + "required": false, + "description": "The new name for the solution category to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "solution_category_description", + "required": false, + "description": "Provide a description for the solution category being updated. This should be a brief textual summary.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "solution_category_position", + "required": false, + "description": "The position of the solution category in the category listing. Determines the order when there are multiple categories.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position." + }, + "inferrable": true, + "http_endpoint_parameter_name": "position" + }, + { + "name": "is_default_category", + "required": false, + "description": "Indicates if the solution category is a default one, which restricts modifications like adding folders, deletion, or renaming.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category" + }, + "inferrable": true, + "http_endpoint_parameter_name": "default_category" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "category_id", + "tool_parameter_name": "solution_category_id", + "description": "ID of the solution category which has to be updated", + "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 updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "category_unique_id", + "description": "Unique identifier of the solution category", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "solution_category_name", + "description": "Name of the solution category", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "solution_category_description", + "description": "Description of the solution category", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "position", + "tool_parameter_name": "solution_category_position", + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "default_category", + "tool_parameter_name": "is_default_category", + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Category that needs to be updated\",\n \"content\": {\n \"*/*\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 1400092834723\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the solution category\",\n \"example\": \"FAQ\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the solution category\",\n \"example\": \"Employee FAQ\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The position of the solution category in the category listing. When there are more than 1 categories, then this will determine the position.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"default_category\": {\n \"type\": \"boolean\",\n \"description\": \"If this is a default category shipped with the product. You cannot add folders to the default category. You cannot delete or rename this category\",\n \"example\": true\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionFolder.json new file mode 100644 index 00000000..3894fd9f --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateSolutionFolder.json @@ -0,0 +1,392 @@ +{ + "name": "UpdateSolutionFolder", + "fully_qualified_name": "FreshserviceApi.UpdateSolutionFolder@1.0.0", + "description": "Update a solution folder in Freshservice by ID.\n\nUse this tool to update a specific solution folder in Freshservice by providing the folder ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "solution_folder_id", + "required": true, + "description": "ID of the solution folder to update in 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 updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "folder_id" + }, + { + "name": "solution_folder_data", + "required": true, + "description": "JSON object detailing the solution folder update, including id, category_id, name, description, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution folder" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution folder" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution folder" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position." + }, + "managed_by_group": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group ID who can edit the articles in the folder" + }, + "managed_by_agent": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The agent ID who can edit the articles in the folder" + }, + "visibility": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Requester group IDs that have access to view this folder" + }, + "agent_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group IDs that have access to view this folder" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The department IDs whose members will be able to view the folder" + }, + "all_agents": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all agents can view this folder" + }, + "everyone": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all users can view this folder" + }, + "logged_in_users": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all logged in users can view this folder" + } + }, + "inner_properties": null, + "description": "Users who can view this folder" + }, + "default_folder": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default folder shipped with the product. You can create or rename a default folder." + } + }, + "inner_properties": null, + "description": "Folder that needs to be created" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "folder_id", + "tool_parameter_name": "solution_folder_id", + "description": "ID of the solution folder that has to be updated", + "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 updated" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "solution_folder_data", + "description": "Folder that needs to be created", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution folder" + }, + "category_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier of the solution category" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the solution folder" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the solution folder" + }, + "position": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position." + }, + "managed_by_group": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group ID who can edit the articles in the folder" + }, + "managed_by_agent": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The agent ID who can edit the articles in the folder" + }, + "visibility": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "requester_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Requester group IDs that have access to view this folder" + }, + "agent_groups": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Agent group IDs that have access to view this folder" + }, + "departments": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The department IDs whose members will be able to view the folder" + }, + "all_agents": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all agents can view this folder" + }, + "everyone": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all users can view this folder" + }, + "logged_in_users": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Is True if all logged in users can view this folder" + } + }, + "inner_properties": null, + "description": "Users who can view this folder" + }, + "default_folder": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If this is a default folder shipped with the product. You can create or rename a default folder." + } + }, + "inner_properties": null, + "description": "Folder that needs to be created" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Folder that needs to be created\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution folder\",\n \"format\": \"int64\",\n \"example\": 14000234234\n },\n \"category_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique identifier of the solution category\",\n \"format\": \"int64\",\n \"example\": 140009808\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the solution folder\",\n \"example\": \"Network FAQ\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the solution folder\",\n \"example\": \"Solution Articles for Network related queries\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"description\": \"The position of the solution folder in the folder listing. When there are more than 1 folders in a category, then this will determine the position.\",\n \"format\": \"int32\",\n \"example\": 1\n },\n \"managed_by_group\": {\n \"type\": \"integer\",\n \"description\": \"Agent group ID who can edit the articles in the folder\",\n \"format\": \"int32\",\n \"example\": 938453\n },\n \"managed_by_agent\": {\n \"type\": \"integer\",\n \"description\": \"The agent ID who can edit the articles in the folder\",\n \"format\": \"int32\",\n \"example\": 349583\n },\n \"visibility\": {\n \"type\": \"object\",\n \"properties\": {\n \"requester_groups\": {\n \"type\": \"array\",\n \"description\": \"Requester group IDs that have access to view this folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"agent_groups\": {\n \"type\": \"array\",\n \"description\": \"Agent group IDs that have access to view this folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"departments\": {\n \"type\": \"array\",\n \"description\": \"The department IDs whose members will be able to view the folder\",\n \"example\": [\n 234234,\n 543444\n ],\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"all_agents\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all agents can view this folder\",\n \"example\": true\n },\n \"everyone\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all users can view this folder\",\n \"example\": true\n },\n \"logged_in_users\": {\n \"type\": \"boolean\",\n \"description\": \"Is True if all logged in users can view this folder\",\n \"example\": true\n }\n },\n \"description\": \"Users who can view this folder\",\n \"example\": {\n \"requester_groups\": [\n 234234,\n 543444\n ],\n \"agent_groups\": [\n 498034,\n 349534\n ],\n \"departments\": [\n 485792,\n 298732\n ],\n \"all_agents\": false,\n \"everyone\": false,\n \"logged_in_users\": false\n }\n },\n \"default_folder\": {\n \"type\": \"boolean\",\n \"description\": \"If this is a default folder shipped with the product. You can create or rename a default folder.\",\n \"example\": true\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTaskInTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTaskInTicket.json new file mode 100644 index 00000000..a13dc89b --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTaskInTicket.json @@ -0,0 +1,433 @@ +{ + "name": "UpdateTaskInTicket", + "fully_qualified_name": "FreshserviceApi.UpdateTaskInTicket@1.0.0", + "description": "Update a specific task in a Freshservice ticket.\n\nThis tool updates an existing task within a specified ticket in Freshservice. It should be called when you need to modify the details of a task associated with a ticket.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The unique identifier for the ticket request whose task needs updating.", + "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 ID of the task to be updated in the specific 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" + }, + { + "name": "task_update_details", + "required": true, + "description": "JSON object containing the task details to be updated, such as title, status, due date, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_update_details", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTask.json new file mode 100644 index 00000000..6a908a03 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTask.json @@ -0,0 +1,409 @@ +{ + "name": "UpdateTicketTask", + "fully_qualified_name": "FreshserviceApi.UpdateTicketTask@1.0.0", + "description": "Update a task in a Freshservice ticket.\n\nThis tool updates an existing task associated with a specific ticket in Freshservice. It should be called when you need to modify details of a task within a ticket request. The response will indicate whether the update was successful or not.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The ID of the ticket request to which the task belongs. This is required to identify and update the correct task.", + "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 integer ID of the task to be updated.", + "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" + }, + { + "name": "task_details_to_update", + "required": true, + "description": "JSON object with details of the task to be updated, including fields like `created_by`, `agent_id`, `status`, `due_date`, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_details_to_update", + "description": "tassk details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "created_by": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the task" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the agent to whom the task is assigned" + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task" + }, + "status": { + "val_type": "integer", + "inner_val_type": null, + "enum": [ + "1", + "2", + "3", + "4" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the task, 1-Open, 2-In Progress, 3-Completed" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the task belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "due_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Due date of the task" + }, + "notify_before": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time in seconds before which notification is sent prior to due date" + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Title of the task" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the task" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was updated" + }, + "closed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task was closed" + }, + "group_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the group to which the task is assigned" + }, + "start_date": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the task is started" + } + }, + "inner_properties": null, + "description": "tassk details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [], + "request_body_spec": "{\n \"description\": \"tassk details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"created_by\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000048691\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Id of the agent to whom the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000043616\n },\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 48\n },\n \"status\": {\n \"type\": \"integer\",\n \"description\": \"Status of the task, 1-Open, 2-In Progress, 3-Completed\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 1,\n \"enum\": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the task belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 589\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"description\": \"Due date of the task\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-24T11:30:00Z\"\n },\n \"notify_before\": {\n \"type\": \"integer\",\n \"description\": \"Time in seconds before which notification is sent prior to due date\",\n \"format\": \"int64\",\n \"example\": 3600\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title of the task\",\n \"example\": \"Renew license\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the task\",\n \"example\": \"Renew Software license\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"closed_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task was closed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-11-22T16:58:45Z\"\n },\n \"group_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the group to which the task is assigned\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000184589\n },\n \"start_date\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the task is started\",\n \"format\": \"date-time\",\n \"example\": \"2021-11-22T16:58:45Z\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTimeEntry.json new file mode 100644 index 00000000..75dfe701 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateTicketTimeEntry.json @@ -0,0 +1,407 @@ +{ + "name": "UpdateTicketTimeEntry", + "fully_qualified_name": "FreshserviceApi.UpdateTicketTimeEntry@1.0.0", + "description": "Update time entry for a ticket in Freshservice.\n\nUse this tool to update an existing time entry on a ticket in Freshservice. It's suitable for modifying the details of time tracked on support tickets to ensure accurate record-keeping.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_id", + "required": true, + "description": "The unique integer ID of the ticket request to update the time entry for.", + "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": "The unique integer ID of the time entry to be updated.", + "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" + }, + { + "name": "time_entry_details", + "required": true, + "description": "JSON object with the details of the time entry to be updated, such as time spent, start time, and associated task ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "time_entry_details", + "description": "time entry details that needs to be updated", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the time entry" + }, + "task_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the task associated with the time entry" + }, + "parent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the parent entity to which the time entry belongs" + }, + "parent_type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Type of the parent entity - [Ticket, Problem, Change, Release, Project]" + }, + "start_time": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time at which the timer started" + }, + "time_spent": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Duration of time spent in seconds" + }, + "timer_running": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if timer is running, false otherwise" + }, + "billable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "true if billable, false otherwise" + }, + "agent_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the user who created the time entry" + }, + "note": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description note of the time entry" + }, + "created_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp at which the time entry is created" + }, + "updated_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time stamp at which the time entry is updated" + }, + "executed_at": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Date time at which the time entry is executed" + }, + "custom_fields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs containing the names and values of custom fields" + } + }, + "inner_properties": null, + "description": "time entry details that needs to be updated" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"time entry details that needs to be updated\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the time entry\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14702899\n },\n \"task_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the task associated with the time entry\",\n \"format\": \"int64\",\n \"example\": 45\n },\n \"parent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the parent entity to which the time entry belongs\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 500\n },\n \"parent_type\": {\n \"type\": \"string\",\n \"description\": \"Type of the parent entity - [Ticket, Problem, Change, Release, Project]\",\n \"example\": \"Ticket\"\n },\n \"start_time\": {\n \"type\": \"string\",\n \"description\": \"Time at which the timer started\",\n \"format\": \"date-time\",\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"time_spent\": {\n \"type\": \"string\",\n \"description\": \"Duration of time spent in seconds\",\n \"example\": \"10:15\"\n },\n \"timer_running\": {\n \"type\": \"boolean\",\n \"description\": \"true if timer is running, false otherwise\",\n \"example\": true\n },\n \"billable\": {\n \"type\": \"boolean\",\n \"description\": \"true if billable, false otherwise\",\n \"example\": true\n },\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the user who created the time entry\",\n \"format\": \"int64\",\n \"example\": 14007423\n },\n \"note\": {\n \"type\": \"string\",\n \"description\": \"Description note of the time entry\",\n \"format\": \"text\",\n \"example\": \"Spent time on task\"\n },\n \"created_at\": {\n \"type\": \"string\",\n \"description\": \"Timestamp at which the time entry is created\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"description\": \"Time stamp at which the time entry is updated\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:42Z\"\n },\n \"executed_at\": {\n \"type\": \"string\",\n \"description\": \"Date time at which the time entry is executed\",\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"example\": \"2021-10-15T12:31:00Z\"\n },\n \"custom_fields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs containing the names and values of custom fields\",\n \"example\": {\n \"field1\": \"Value 1\",\n \"field2\": \"Value 2\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateVendorInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateVendorInfo.json new file mode 100644 index 00000000..6ade5732 --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateVendorInfo.json @@ -0,0 +1,310 @@ +{ + "name": "UpdateVendorInfo", + "fully_qualified_name": "FreshserviceApi.UpdateVendorInfo@1.0.0", + "description": "Update details of an existing vendor.\n\nUse this tool to update information for an existing vendor in the Freshservice system, using the vendor ID.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "vendor_identifier", + "required": true, + "description": "The unique identifier for the vendor to be updated. 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": "vendor_id" + }, + { + "name": "vendor_information_json", + "required": true, + "description": "A JSON object containing vendor details such as ID, name, description, primary contact ID, address, city, state, country, and zipcode.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'update-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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}", + "http_method": "PUT", + "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": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "vendor_information_json", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the vendor" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vendor" + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the vendor" + }, + "primary_contact_id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)" + }, + "address_line1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 1" + }, + "address_line2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Address Line 2" + }, + "address_city": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "City" + }, + "address_state": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "State" + }, + "address_country": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Country" + }, + "address_zipcode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Zip Code of the location" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "FRESHSERVICE_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the vendor\",\n \"format\": \"int64\",\n \"readOnly\": true,\n \"example\": 14000234324\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the vendor\",\n \"example\": \"Apple\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the vendor\",\n \"example\": \"Apple\"\n },\n \"primary_contact_id\": {\n \"type\": \"integer\",\n \"description\": \"Unique ID of the primary contact (Primary contact is a requester. The primary contact name, email phone and mobile number will be referenced from the requester details)\",\n \"format\": \"int64\",\n \"example\": 14000234324\n },\n \"address_line1\": {\n \"type\": \"string\",\n \"description\": \"Address Line 1\",\n \"example\": \"Cupertino\"\n },\n \"address_line2\": {\n \"type\": \"string\",\n \"description\": \"Address Line 2\",\n \"example\": \"Cupertino\"\n },\n \"address_city\": {\n \"type\": \"string\",\n \"description\": \"City\",\n \"example\": \"Cupertino\"\n },\n \"address_state\": {\n \"type\": \"string\",\n \"description\": \"State\",\n \"example\": \"California\"\n },\n \"address_country\": {\n \"type\": \"string\",\n \"description\": \"Country\",\n \"example\": \"US\"\n },\n \"address_zipcode\": {\n \"type\": \"string\",\n \"description\": \"Zip Code of the location\",\n \"example\": \"95014\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewProjectTaskDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewProjectTaskDetails.json new file mode 100644 index 00000000..44c2c01d --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewProjectTaskDetails.json @@ -0,0 +1,148 @@ +{ + "name": "ViewProjectTaskDetails", + "fully_qualified_name": "FreshserviceApi.ViewProjectTaskDetails@1.0.0", + "description": "Retrieve details of a specific project task.\n\nUse this tool to view detailed information about a task within a specified project on Freshservice. Ideal for retrieving task status, assignees, or due dates.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "task_id", + "required": true, + "description": "The unique identifier for the task you want to retrieve details for.", + "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_for_task", + "required": true, + "description": "The unique identifier of 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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_for_task", + "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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json index c32bf1eb..2516cd7e 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ViewServiceItem@1.0.0", + "description": "View a service item's details using its ID.\n\nUse this tool to retrieve and view details of a specific service item by providing its ID. Call this tool when you need information about a service item from Freshservice.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { - "name": "service_item_id", + "name": "service_item_identifier", "required": true, - "description": "The ID of the service item you want to retrieve.", + "description": "The ID of the service item you want to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_items/{service_item_id}", @@ -72,7 +72,7 @@ "parameters": [ { "name": "service_item_id", - "tool_parameter_name": "service_item_id", + "tool_parameter_name": "service_item_identifier", "description": "ID of service item to retrieve", "value_schema": { "val_type": "integer", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItemFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItemFields.json new file mode 100644 index 00000000..bc97c7df --- /dev/null +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItemFields.json @@ -0,0 +1,115 @@ +{ + "name": "ViewServiceItemFields", + "fully_qualified_name": "FreshserviceApi.ViewServiceItemFields@1.0.0", + "description": "Retrieve all fields for a specific service item in Freshservice.\n\nUse this tool to get a detailed list of all fields associated with a service item from Freshservice. It helps in understanding the structure and data points available for a service item.", + "toolkit": { + "name": "ArcadeFreshserviceApi", + "description": null, + "version": "1.0.0" + }, + "input": { + "parameters": [ + { + "name": "service_item_id", + "required": true, + "description": "The ID of the service item in Freshservice for which you want to retrieve all fields.", + "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_SUBDOMAIN" + }, + { + "key": "FRESHSERVICE_API_KEY" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the Freshservice API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.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_SUBDOMAIN", + "parameter_name": "freshservice_subdomain", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json index b52c7422..7075fd7d 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ViewSolutionArticle@1.0.0", + "description": "Retrieve details of a solution article by ID in Freshservice.\n\nUse this tool to view detailed information of a specific solution article in Freshservice. Provide the article ID to retrieve the content and metadata of the article.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_article_id", "required": true, - "description": "The unique integer ID of the solution article to retrieve.", + "description": "The unique ID of the solution article to retrieve from Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json index da6d55dd..23fc6d82 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ViewSolutionCategory@1.0.0", + "description": "Retrieve details of a specific solution category.\n\nUse this tool to view and retrieve details about a specific solution category using its ID.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_category_id", "required": true, - "description": "ID of the solution category to retrieve details for.", + "description": "The unique ID of the solution category to retrieve details for.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json index 28906c6d..b980e162 100644 --- a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json +++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json @@ -1,18 +1,18 @@ { "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.", + "fully_qualified_name": "FreshserviceApi.ViewSolutionFolder@1.0.0", + "description": "Retrieve details of a specific solution folder in Freshservice.\n\nUse this tool to obtain information about a specific solution folder within Freshservice by providing the folder ID. It returns detailed data about the folder, which can be useful for managing and organizing IT solutions.", "toolkit": { "name": "ArcadeFreshserviceApi", "description": null, - "version": "0.1.0" + "version": "1.0.0" }, "input": { "parameters": [ { "name": "solution_folder_id", "required": true, - "description": "The unique ID of the solution folder to retrieve details.", + "description": "Provide the integer ID of the solution folder you wish to view in Freshservice.", "value_schema": { "val_type": "integer", "inner_val_type": null, @@ -46,10 +46,10 @@ "authorization": null, "secrets": [ { - "key": "FRESHSERVICE_API_KEY" + "key": "FRESHSERVICE_SUBDOMAIN" }, { - "key": "FRESHSERVICE_SUBDOMAIN" + "key": "FRESHSERVICE_API_KEY" } ], "metadata": null @@ -57,13 +57,13 @@ "deprecation_message": null, "metadata": { "object_type": "api_wrapper_tool", - "version": "1.0.0", + "version": "1.1.0", "description": "Tools that enable LLMs to interact directly with the Freshservice API." }, "http_endpoint": { "metadata": { "object_type": "http_endpoint", - "version": "1.1.0", + "version": "1.2.0", "description": "" }, "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}", @@ -91,14 +91,6 @@ ], "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", @@ -106,7 +98,18 @@ "formatted_value": null, "description": "", "is_auth_token": false + }, + { + "arcade_key": "FRESHSERVICE_API_KEY", + "parameter_name": "username", + "accepted_as": "basic_auth_username", + "formatted_value": null, + "description": "", + "is_auth_token": false } - ] + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false } } diff --git a/toolkits/freshservice_api/pyproject.toml b/toolkits/freshservice_api/pyproject.toml index 5beb506c..e9fea9a4 100644 --- a/toolkits/freshservice_api/pyproject.toml +++ b/toolkits/freshservice_api/pyproject.toml @@ -4,12 +4,13 @@ build-backend = "hatchling.build" [project] name = "arcade_freshservice_api" -version = "0.1.1" +version = "1.0.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", + "jsonschema>=4.0.0,<5.0.0", ] [[project.authors]] email = "support@arcade.dev"