{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flowra-dev/json-schema/flowra-dev-tool-dto-paginated-response-schema.json",
  "title": "ToolDtoPaginatedResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flowra-dev-tools-api-openapi.yml#/components/schemas/ToolDtoPaginatedResponse",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Success status"
    },
    "message": {
      "type": "string",
      "description": "Response message"
    },
    "data": {
      "description": "Array of items",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Tool id identifier"
          },
          "slug": {
            "type": "string",
            "description": "Tool slug identifier"
          },
          "name": {
            "type": "string",
            "description": "Tool display name"
          },
          "description": {
            "type": "string",
            "description": "Tool description"
          },
          "type": {
            "enum": [
              "action",
              "poll",
              "webhook"
            ],
            "type": "string",
            "description": "Tool type: action (callable tool) or poll/webhook (trigger)"
          },
          "toolkit": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "description": "Toolkit slug"
              },
              "name": {
                "type": "string",
                "description": "Toolkit name"
              },
              "logo": {
                "type": "string",
                "description": "Toolkit logo URL"
              }
            },
            "required": [
              "slug",
              "name",
              "logo"
            ]
          },
          "inputParameters": {
            "type": "object",
            "description": "Tool input parameters schema",
            "additionalProperties": true
          },
          "outputParameters": {
            "type": "object",
            "description": "Tool output parameters schema",
            "additionalProperties": true
          },
          "noAuth": {
            "type": "boolean",
            "description": "Whether the tool requires no authentication"
          },
          "meta": {
            "type": "object",
            "properties": {
              "createdAt": {
                "type": "string",
                "description": "Creation timestamp"
              },
              "updatedAt": {
                "type": "string",
                "description": "Last update timestamp"
              },
              "version": {
                "type": "string",
                "description": "Current tool version"
              },
              "availableVersions": {
                "description": "Available versions for the tool",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "scopes": {
                "description": "Required scopes for the tool",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "tags": {
                "description": "Tool tags",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "isImportant": {
                "type": "boolean",
                "description": "Whether the tool is featured/important"
              }
            },
            "required": [
              "createdAt",
              "updatedAt",
              "version",
              "availableVersions",
              "scopes",
              "tags",
              "isImportant"
            ]
          },
          "provider": {
            "enum": [
              "COMPOSIO",
              "LOCAL"
            ],
            "type": "string",
            "description": "Tool provider"
          },
          "toolkitSlug": {
            "type": "string",
            "description": "Toolkit slug"
          },
          "owner": {
            "type": "boolean",
            "description": "Whether the current user is the owner of this tool"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "description",
          "type",
          "toolkit",
          "inputParameters",
          "outputParameters",
          "noAuth",
          "meta",
          "provider",
          "toolkitSlug",
          "owner"
        ]
      }
    },
    "total": {
      "type": "number",
      "description": "Total number of items across all pages"
    },
    "totalTools": {
      "type": "number",
      "description": "Optional secondary total (e.g. nested tools across all matching toolkits)"
    },
    "page": {
      "type": "number",
      "description": "Current page number (1-based)"
    },
    "limit": {
      "type": "number",
      "description": "Number of items per page"
    },
    "totalPages": {
      "type": "number",
      "description": "Total number of pages"
    },
    "hasNextPage": {
      "type": "boolean",
      "description": "Whether there is a next page"
    },
    "hasPreviousPage": {
      "type": "boolean",
      "description": "Whether there is a previous page"
    }
  },
  "required": [
    "success",
    "message",
    "data",
    "total"
  ]
}