{
  "service": "lattice",
  "displayName": "Lattice",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "lattice_api_key",
      "description": "Lattice API key sent as a Bearer token. View and manage API keys in the Lattice admin dashboard: https://developers.lattice.com/docs/authentication-1.",
      "extraFields": [
        {
          "key": "dataResidency",
          "label": "Data Residency",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "us",
          "description": "The Lattice data residency region used to select the API base URL. Enter us for https://api.latticehq.com or emea for https://api.emea.latticehq.com."
        }
      ]
    }
  ],
  "homepageUrl": "https://lattice.com",
  "actions": [
    {
      "id": "lattice.get_current_user",
      "service": "lattice",
      "name": "get_current_user",
      "description": "Get the Lattice user associated with the configured API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for the Lattice current user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "additionalProperties": true,
            "description": "A Lattice user object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The current Lattice user response."
      }
    },
    {
      "id": "lattice.get_department",
      "service": "lattice",
      "name": "get_department",
      "description": "Get a Lattice department by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "departmentId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lattice department ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting one Lattice department."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "department": {
            "type": "object",
            "additionalProperties": true,
            "description": "A Lattice department object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice department response."
      }
    },
    {
      "id": "lattice.get_goal",
      "service": "lattice",
      "name": "get_goal",
      "description": "Get a Lattice goal by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "goalId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lattice goal ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting one Lattice goal."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "goal": {
            "type": "object",
            "additionalProperties": true,
            "description": "A Lattice goal object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice goal response."
      }
    },
    {
      "id": "lattice.get_user",
      "service": "lattice",
      "name": "get_user",
      "description": "Get a Lattice user by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lattice user ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting one Lattice user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "additionalProperties": true,
            "description": "A Lattice user object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice user response."
      }
    },
    {
      "id": "lattice.list_departments",
      "service": "lattice",
      "name": "list_departments",
      "description": "List Lattice departments with optional cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of Lattice objects to return. Lattice supports 1 to 100."
          },
          "startingAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Lattice cursor to continue after."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lattice departments."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "departments": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A Lattice department object."
            },
            "description": "The Lattice departments returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "hasMore": {
                "type": "boolean",
                "description": "Whether more objects are available after this page."
              },
              "endingCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Cursor pagination metadata returned by Lattice."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice department list response."
      }
    },
    {
      "id": "lattice.list_goals",
      "service": "lattice",
      "name": "list_goals",
      "description": "List Lattice goals with optional cursor pagination and state filtering.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of Lattice objects to return. Lattice supports 1 to 100."
          },
          "startingAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Lattice cursor to continue after."
          },
          "state": {
            "type": "string",
            "enum": [
              "active",
              "ended"
            ],
            "description": "The Lattice goal state filter."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lattice goals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "goals": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A Lattice goal object."
            },
            "description": "The Lattice goals returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "hasMore": {
                "type": "boolean",
                "description": "Whether more objects are available after this page."
              },
              "endingCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Cursor pagination metadata returned by Lattice."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice goal list response."
      }
    },
    {
      "id": "lattice.list_tags",
      "service": "lattice",
      "name": "list_tags",
      "description": "List Lattice tags with optional cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of Lattice objects to return. Lattice supports 1 to 100."
          },
          "startingAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Lattice cursor to continue after."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lattice tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A Lattice tag object."
            },
            "description": "The Lattice tags returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "hasMore": {
                "type": "boolean",
                "description": "Whether more objects are available after this page."
              },
              "endingCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Cursor pagination metadata returned by Lattice."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice tag list response."
      }
    },
    {
      "id": "lattice.list_users",
      "service": "lattice",
      "name": "list_users",
      "description": "List Lattice users with optional cursor pagination and status filtering.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of Lattice objects to return. Lattice supports 1 to 100."
          },
          "startingAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Lattice cursor to continue after."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "created",
              "invited",
              "null_string"
            ],
            "description": "The Lattice user status filter. Use null_string to request all users."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lattice users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A Lattice user object."
            },
            "description": "The Lattice users returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "hasMore": {
                "type": "boolean",
                "description": "Whether more objects are available after this page."
              },
              "endingCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Cursor pagination metadata returned by Lattice."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw Lattice API response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lattice user list response."
      }
    }
  ]
}
