{
  "service": "float",
  "displayName": "Float",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "FLOAT_API_TOKEN",
      "description": "Float bearer token used with the Authorization header. Create or view tokens in Float Account Settings Integrations: https://app.float.com/#/integrations/api"
    }
  ],
  "homepageUrl": "https://www.float.com/",
  "actions": [
    {
      "id": "float.list_accounts",
      "service": "float",
      "name": "list_accounts",
      "description": "List Float accounts that can access the team.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the page of results to return."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The number of items per page. Float supports up to 200."
          },
          "expand": {
            "type": "string",
            "enum": [
              "people_id"
            ],
            "description": "Use people_id to include the linked Float person ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Float accounts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current page number when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items per page when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned from Float response headers."
          },
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "accountId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float account ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The account name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The account email address."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "accountType": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The high-level Float account permission type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "access": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The granular Float account access value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "active": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the account is active, using Float's 1 or 0 value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "peopleId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The linked Float person ID when expanded and present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw account object returned by Float."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Float account."
            },
            "description": "The accounts returned by Float."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Float accounts."
      }
    },
    {
      "id": "float.list_allocations",
      "service": "float",
      "name": "list_allocations",
      "description": "List Float allocations as tasks with optional schedule filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the page of results to return."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The number of items per page. Float supports up to 200."
          },
          "clientId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float client ID to filter allocations by."
          },
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float project ID to filter allocations by."
          },
          "phaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float phase ID to filter allocations by."
          },
          "projectTaskId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float project task ID to filter allocations by."
          },
          "peopleId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float person ID to filter allocations by."
          },
          "startDate": {
            "type": "string",
            "minLength": 1,
            "description": "The schedule start date in YYYY-MM-DD format.",
            "pattern": "\\S"
          },
          "endDate": {
            "type": "string",
            "minLength": 1,
            "description": "The schedule end date in YYYY-MM-DD format.",
            "pattern": "\\S"
          },
          "billable": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "description": "Filter active entities with 1 for active or 0 for archived."
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "description": "The Float allocation status value to filter by."
          },
          "tagName": {
            "type": "string",
            "minLength": 1,
            "description": "An exact Float tag name to filter allocations by.",
            "pattern": "\\S"
          },
          "modifiedSince": {
            "type": "string",
            "minLength": 1,
            "description": "A Float modified timestamp or Unix timestamp filter.",
            "pattern": "\\S"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Float field name to include in the response.",
              "pattern": "\\S"
            },
            "description": "The Float fields to include in the response.",
            "minItems": 1
          },
          "expand": {
            "type": "string",
            "enum": [
              "task_days"
            ],
            "description": "Use task_days to include calculated allocation dates."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Float allocations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current page number when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items per page when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned from Float response headers."
          },
          "allocations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "taskId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float allocation task ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "projectId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The project ID for this allocation."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "peopleId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The person ID for this allocation when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "startDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The allocation start date."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "endDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The allocation end date."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "hours": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The number of hours per day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float allocation status value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "billable": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the allocation is billable, using Float's 1 or 0 value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The allocation name or note when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw allocation object returned by Float."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Float allocation returned as a task."
            },
            "description": "The allocations returned by Float."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Float allocations."
      }
    },
    {
      "id": "float.list_clients",
      "service": "float",
      "name": "list_clients",
      "description": "List Float clients.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the page of results to return."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The number of items per page. Float supports up to 200."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Float clients."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current page number when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items per page when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned from Float response headers."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "clientId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float client ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The client name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw client object returned by Float."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Float client."
            },
            "description": "The clients returned by Float."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Float clients."
      }
    },
    {
      "id": "float.list_people",
      "service": "float",
      "name": "list_people",
      "description": "List Float people on the schedule with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the page of results to return."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The number of items per page. Float supports up to 200."
          },
          "active": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "description": "Filter active entities with 1 for active or 0 for archived."
          },
          "departmentId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float department ID to filter people by."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "description": "An email address to filter people by exact match.",
            "pattern": "\\S"
          },
          "peopleTypeId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float people type ID to filter by."
          },
          "employeeType": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "description": "Filter active entities with 1 for active or 0 for archived."
          },
          "tagName": {
            "type": "string",
            "minLength": 1,
            "description": "An exact Float tag name to filter people by.",
            "pattern": "\\S"
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "A Float people field to sort by, prefix with - for descending.",
            "pattern": "\\S"
          },
          "modifiedSince": {
            "type": "string",
            "minLength": 1,
            "description": "A Float modified timestamp or Unix timestamp filter.",
            "pattern": "\\S"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Float field name to include in the response.",
              "pattern": "\\S"
            },
            "description": "The Float fields to include in the response.",
            "minItems": 1
          },
          "expand": {
            "type": "string",
            "enum": [
              "accounts"
            ],
            "description": "Use accounts to include linked account data."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Float people."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current page number when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items per page when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned from Float response headers."
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "peopleId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float person ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The person's full name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The person's email address."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobTitle": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The person's job title."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "departmentName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The current department name when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "active": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the person is active, using Float's 1 or 0 value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "startDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The date the person started when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "endDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The date the person finished when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw person object returned by Float."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Float person."
            },
            "description": "The people returned by Float."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Float people."
      }
    },
    {
      "id": "float.list_projects",
      "service": "float",
      "name": "list_projects",
      "description": "List Float projects with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the page of results to return."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The number of items per page. Float supports up to 200."
          },
          "active": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "description": "Filter active entities with 1 for active or 0 for archived."
          },
          "clientId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Float client ID to filter projects by."
          },
          "tagName": {
            "type": "string",
            "minLength": 1,
            "description": "An exact Float tag name to filter projects by.",
            "pattern": "\\S"
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "A Float projects field to sort by, prefix with - for descending.",
            "pattern": "\\S"
          },
          "modifiedSince": {
            "type": "string",
            "minLength": 1,
            "description": "A Float modified timestamp or Unix timestamp filter.",
            "pattern": "\\S"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Float field name to include in the response.",
              "pattern": "\\S"
            },
            "description": "The Float fields to include in the response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Float projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current page number when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items per page when Float returned it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned from Float response headers."
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float project ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The project name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "projectCode": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The optional third-party project identifier."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "clientId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The ID of the project's client."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Float project status value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "active": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the project is active, using Float's 1 or 0 value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "startDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The project start date when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "endDate": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The project end date when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw project object returned by Float."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Float project."
            },
            "description": "The projects returned by Float."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Float projects."
      }
    }
  ]
}
