{
  "service": "teamcamp",
  "displayName": "Teamcamp",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "TEAMCAMP_API_KEY",
      "description": "Teamcamp API key sent with the apiKey header. Create or view it in Teamcamp Account Settings: https://dash.teamcamp.app/settings/apikey."
    }
  ],
  "homepageUrl": "https://www.teamcamp.app",
  "actions": [
    {
      "id": "teamcamp.get_project",
      "service": "teamcamp",
      "name": "get_project",
      "description": "Get detailed information about one Teamcamp project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The Teamcamp project ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Teamcamp project detail object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamcamp project detail object."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.get_task",
      "service": "teamcamp",
      "name": "get_task",
      "description": "Get detailed information about one Teamcamp task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The Teamcamp task ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Teamcamp task detail object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamcamp task detail object."
          }
        },
        "additionalProperties": false,
        "required": [
          "task",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.list_company_users",
      "service": "teamcamp",
      "name": "list_company_users",
      "description": "List users in the Teamcamp workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The user ID."
                },
                "name": {
                  "type": "string",
                  "description": "The user name."
                },
                "email": {
                  "type": "string",
                  "description": "The email address."
                },
                "phone": {
                  "type": "string",
                  "description": "The phone number."
                },
                "profile_photo": {
                  "type": "string",
                  "description": "The profile photo URL."
                },
                "isOwner": {
                  "type": "boolean",
                  "description": "Whether the user owns the workspace."
                },
                "isAdmin": {
                  "type": "boolean",
                  "description": "Whether the user is an admin."
                }
              },
              "additionalProperties": true,
              "description": "A Teamcamp workspace user."
            },
            "description": "Users returned by Teamcamp."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw user object."
            },
            "description": "Raw user objects returned by Teamcamp."
          }
        },
        "additionalProperties": false,
        "required": [
          "users",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.list_customers",
      "service": "teamcamp",
      "name": "list_customers",
      "description": "List customers in the Teamcamp workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "customerId": {
                  "type": "string",
                  "description": "The customer ID."
                },
                "address": {
                  "type": "string",
                  "description": "The customer address."
                },
                "firstName": {
                  "type": "string",
                  "description": "The customer first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The customer last name."
                },
                "email": {
                  "type": "string",
                  "description": "The customer email."
                },
                "companyName": {
                  "type": "string",
                  "description": "The customer company name."
                },
                "phone": {
                  "type": "string",
                  "description": "The customer phone."
                },
                "clients": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "clientId": {
                        "type": "string",
                        "description": "The client contact ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "The client contact name."
                      },
                      "email": {
                        "type": "string",
                        "description": "The client contact email."
                      }
                    },
                    "additionalProperties": true,
                    "description": "A Teamcamp customer client contact."
                  },
                  "description": "Client contacts associated with the customer."
                }
              },
              "additionalProperties": true,
              "description": "A Teamcamp workspace customer."
            },
            "description": "Customers returned by Teamcamp."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw customer object."
            },
            "description": "Raw customer objects returned by Teamcamp."
          }
        },
        "additionalProperties": false,
        "required": [
          "customers",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.list_projects",
      "service": "teamcamp",
      "name": "list_projects",
      "description": "List all projects in the Teamcamp workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string",
                  "description": "The ID of the project."
                },
                "projectName": {
                  "type": "string",
                  "description": "The name of the project."
                }
              },
              "additionalProperties": true,
              "description": "A Teamcamp project returned by the API."
            },
            "description": "Projects returned by Teamcamp."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw project object."
            },
            "description": "Raw project objects returned by Teamcamp."
          }
        },
        "additionalProperties": false,
        "required": [
          "projects",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.list_tasks",
      "service": "teamcamp",
      "name": "list_tasks",
      "description": "List tasks in a Teamcamp project, optionally filtered by completion status.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The Teamcamp project ID."
          },
          "complete": {
            "type": "boolean",
            "description": "Filter tasks by completion status."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The task ID alias."
                },
                "taskId": {
                  "type": "string",
                  "description": "The ID of the task."
                },
                "taskName": {
                  "type": "string",
                  "description": "The name of the task."
                },
                "status": {
                  "type": "boolean",
                  "description": "Whether the task is complete."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The task creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The task update timestamp."
                }
              },
              "additionalProperties": true,
              "description": "A Teamcamp task returned by the API."
            },
            "description": "Tasks returned by Teamcamp."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw task object."
            },
            "description": "Raw task objects returned by Teamcamp."
          }
        },
        "additionalProperties": false,
        "required": [
          "tasks",
          "raw"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "teamcamp.post_task_comment",
      "service": "teamcamp",
      "name": "post_task_comment",
      "description": "Post a comment to a Teamcamp task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The Teamcamp task ID."
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The comment content to post to the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "content"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "object",
            "properties": {
              "commentId": {
                "type": "string",
                "description": "The comment ID."
              },
              "content": {
                "type": "string",
                "description": "The comment content."
              }
            },
            "additionalProperties": true,
            "description": "A Teamcamp task comment."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamcamp comment response."
          }
        },
        "additionalProperties": false,
        "required": [
          "comment",
          "raw"
        ],
        "description": "Action output."
      }
    }
  ]
}
