{
  "service": "rocketlane",
  "displayName": "Rocketlane",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "ROCKETLANE_API_KEY",
      "description": "Rocketlane API key sent with the api-key header. Generate it in Rocketlane under Profile > Settings > API.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.rocketlane.com",
  "actions": [
    {
      "id": "rocketlane.get_project",
      "service": "rocketlane",
      "name": "get_project",
      "description": "Get one Rocketlane project by numeric project ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Rocketlane project ID to fetch."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "annualizedRecurringRevenue",
                "projectFee",
                "allocatedHours",
                "allocatedMinutes",
                "budgetedHours",
                "percentageBudgetedHoursConsumed",
                "percentageBudgetConsumed",
                "billableHours",
                "billableMinutes",
                "nonBillableHours",
                "nonBillableMinutes",
                "trackedHours",
                "trackedMinutes",
                "progressPercentage",
                "startDateActual",
                "dueDateActual",
                "currentPhase",
                "autoAllocation",
                "sources",
                "inferredProgress",
                "plannedDuration",
                "projectAgeInDays",
                "customersInvited",
                "customersJoined",
                "externalReferenceId",
                "metrics",
                "remainingMinutes",
                "remainingHours"
              ],
              "description": "One Rocketlane project field to include in the response."
            },
            "description": "The Rocketlane project fields to include in the response.",
            "minItems": 1
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available project fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "The input payload for getting one Rocketlane project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Rocketlane project."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for one Rocketlane project."
      }
    },
    {
      "id": "rocketlane.get_task",
      "service": "rocketlane",
      "name": "get_task",
      "description": "Get one Rocketlane task by numeric task ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Rocketlane task ID to fetch."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "startDateActual",
                "dueDateActual",
                "type",
                "phase",
                "assignees",
                "followers",
                "dependencies",
                "billable",
                "csatEnabled",
                "priority",
                "timeEntryCategory",
                "financialsBudget",
                "taskPrivateNote",
                "parent",
                "externalReferenceId"
              ],
              "description": "One Rocketlane task field to include in the response."
            },
            "description": "The Rocketlane task fields to include in the response.",
            "minItems": 1
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available task fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId"
        ],
        "description": "The input payload for getting one Rocketlane task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Rocketlane task."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for one Rocketlane task."
      }
    },
    {
      "id": "rocketlane.get_user",
      "service": "rocketlane",
      "name": "get_user",
      "description": "Get one Rocketlane user by numeric user ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Rocketlane user ID to fetch."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "role",
                "company",
                "permission",
                "holidayCalendar",
                "capacityInMinutes",
                "profilePictureUrl"
              ],
              "description": "One Rocketlane user field to include in the response."
            },
            "description": "The Rocketlane user fields to include in the response.",
            "minItems": 1
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available user fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "userId"
        ],
        "description": "The input payload for getting one Rocketlane user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Rocketlane user."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for one Rocketlane user."
      }
    },
    {
      "id": "rocketlane.list_projects",
      "service": "rocketlane",
      "name": "list_projects",
      "description": "List Rocketlane projects with pagination, sorting, and first-pass project filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return per page."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination token returned by the previous Rocketlane list response."
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available fields."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort order for the Rocketlane list response."
          },
          "match": {
            "type": "string",
            "enum": [
              "all",
              "any"
            ],
            "description": "Whether Rocketlane should match all filters or any filter."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "annualizedRecurringRevenue",
                "projectFee",
                "allocatedHours",
                "allocatedMinutes",
                "budgetedHours",
                "percentageBudgetedHoursConsumed",
                "percentageBudgetConsumed",
                "billableHours",
                "billableMinutes",
                "nonBillableHours",
                "nonBillableMinutes",
                "trackedHours",
                "trackedMinutes",
                "progressPercentage",
                "startDateActual",
                "dueDateActual",
                "currentPhase",
                "autoAllocation",
                "sources",
                "inferredProgress",
                "plannedDuration",
                "projectAgeInDays",
                "customersInvited",
                "customersJoined",
                "externalReferenceId",
                "metrics",
                "remainingMinutes",
                "remainingHours"
              ],
              "description": "One Rocketlane project field to include in the response."
            },
            "description": "The Rocketlane project fields to include in the response.",
            "minItems": 1
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "projectName",
              "startDate",
              "dueDate",
              "startDateActual",
              "dueDateActual",
              "annualizedRecurringRevenue",
              "projectFee"
            ],
            "description": "The Rocketlane project field used for sorting."
          },
          "projectNameEq": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane projects with this exact project name."
          },
          "projectNameContains": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane projects whose project name contains this value."
          },
          "statusEq": {
            "type": "string",
            "minLength": 1,
            "description": "The Rocketlane status or external identifier."
          },
          "statusOneOf": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Rocketlane status or external identifier."
            },
            "description": "Return Rocketlane projects whose status matches one of these identifiers.",
            "minItems": 1
          },
          "startDateGt": {
            "type": "string",
            "description": "A Rocketlane date in YYYY-MM-DD format.",
            "format": "date"
          },
          "startDateGe": {
            "type": "string",
            "description": "A Rocketlane date in YYYY-MM-DD format.",
            "format": "date"
          },
          "dueDateLt": {
            "type": "string",
            "description": "A Rocketlane date in YYYY-MM-DD format.",
            "format": "date"
          },
          "customerIdEq": {
            "type": "integer",
            "minimum": 1,
            "description": "Return only Rocketlane projects for this customer company ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Rocketlane projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Rocketlane project."
            },
            "description": "The Rocketlane projects returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by Rocketlane list endpoints."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Rocketlane projects."
      }
    },
    {
      "id": "rocketlane.list_tasks",
      "service": "rocketlane",
      "name": "list_tasks",
      "description": "List Rocketlane tasks with pagination, sorting, and first-pass task filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return per page."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination token returned by the previous Rocketlane list response."
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available fields."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort order for the Rocketlane list response."
          },
          "match": {
            "type": "string",
            "enum": [
              "all",
              "any"
            ],
            "description": "Whether Rocketlane should match all filters or any filter."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "startDateActual",
                "dueDateActual",
                "type",
                "phase",
                "assignees",
                "followers",
                "dependencies",
                "billable",
                "csatEnabled",
                "priority",
                "timeEntryCategory",
                "financialsBudget",
                "taskPrivateNote",
                "parent",
                "externalReferenceId"
              ],
              "description": "One Rocketlane task field to include in the response."
            },
            "description": "The Rocketlane task fields to include in the response.",
            "minItems": 1
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "taskName",
              "startDate",
              "dueDate",
              "startDateActual",
              "dueDateActual"
            ],
            "description": "The Rocketlane task field used for sorting."
          },
          "taskNameEq": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane tasks with this exact task name."
          },
          "taskNameContains": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane tasks whose task name contains this value."
          },
          "taskStatusEq": {
            "type": "string",
            "minLength": 1,
            "description": "The Rocketlane status or external identifier."
          },
          "taskStatusOneOf": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Rocketlane status or external identifier."
            },
            "description": "Return Rocketlane tasks whose status matches one of these identifiers.",
            "minItems": 1
          },
          "projectIdEq": {
            "type": "integer",
            "minimum": 1,
            "description": "Return only Rocketlane tasks for this project ID."
          },
          "startDateGt": {
            "type": "string",
            "description": "A Rocketlane date in YYYY-MM-DD format.",
            "format": "date"
          },
          "dueDateLt": {
            "type": "string",
            "description": "A Rocketlane date in YYYY-MM-DD format.",
            "format": "date"
          },
          "atRiskEq": {
            "type": "boolean",
            "description": "Return only Rocketlane tasks that match this at-risk flag."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Rocketlane tasks."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Rocketlane task."
            },
            "description": "The Rocketlane tasks returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by Rocketlane list endpoints."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Rocketlane tasks."
      }
    },
    {
      "id": "rocketlane.list_users",
      "service": "rocketlane",
      "name": "list_users",
      "description": "List Rocketlane users with pagination, sorting, and first-pass user filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return per page."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination token returned by the previous Rocketlane list response."
          },
          "includeAllFields": {
            "type": "boolean",
            "description": "Whether Rocketlane should return all available fields."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort order for the Rocketlane list response."
          },
          "match": {
            "type": "string",
            "enum": [
              "all",
              "any"
            ],
            "description": "Whether Rocketlane should match all filters or any filter."
          },
          "includeFields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "role",
                "company",
                "permission",
                "holidayCalendar",
                "capacityInMinutes",
                "profilePictureUrl"
              ],
              "description": "One Rocketlane user field to include in the response."
            },
            "description": "The Rocketlane user fields to include in the response.",
            "minItems": 1
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "email",
              "firstName",
              "lastName",
              "type",
              "status",
              "capacityInMinutes"
            ],
            "description": "The Rocketlane user field used for sorting."
          },
          "firstNameEq": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane users with this exact first name."
          },
          "firstNameContains": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane users whose first name contains this value."
          },
          "emailEq": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane users with this exact email address."
          },
          "emailContains": {
            "type": "string",
            "minLength": 1,
            "description": "Return only Rocketlane users whose email address contains this value."
          },
          "statusEq": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "INACTIVE",
                "INVITED",
                "ACTIVE",
                "PASSIVE"
              ],
              "description": "One Rocketlane user status value."
            },
            "description": "Return only Rocketlane users with this exact status.",
            "minItems": 1,
            "maxItems": 1
          },
          "statusOneOf": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "INACTIVE",
                "INVITED",
                "ACTIVE",
                "PASSIVE"
              ],
              "description": "One Rocketlane user status value."
            },
            "description": "Return Rocketlane users whose status matches any of these values.",
            "minItems": 1,
            "maxItems": 3
          },
          "typeEq": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "TEAM_MEMBER",
                "PARTNER",
                "CUSTOMER",
                "EXTERNAL_PARTNER"
              ],
              "description": "One Rocketlane user type value."
            },
            "description": "Return only Rocketlane users with this exact user type.",
            "minItems": 1,
            "maxItems": 1
          },
          "permissionIdEq": {
            "type": "integer",
            "minimum": 1,
            "description": "Return only Rocketlane users with this permission ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Rocketlane users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Rocketlane user."
            },
            "description": "The Rocketlane users returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by Rocketlane list endpoints."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Rocketlane users."
      }
    }
  ]
}
