swagger: "2.0"
info:
  description: "This API allows 3rd party integration of your Float data."
  version: "3.0.0"
  title: "API Reference"
host: "api.float.com"
basePath: "/v3"
tags:

- name: "Accounts"
  description: "The /accounts endpoint"
- name: "Departments"
  description: "The /departments endpoint"
- name: "People"
  description: "The /people endpoint"
- name: "Roles"
  description: "The /roles endpoint"
- name: "Statuses"
  description: "The /status endpoint"
- name: "Time Off"
  description: "The /timeoffs endpoint"
- name: "Time Off Types"
  description: "The /timeoff-types endpoint"
- name: "Public Holidays"
  description: "The /public-holidays endpoint"
- name: "Team Holidays"
  description: "The /holidays endpoint"
- name: "Clients"
  description: "The /clients endpoint"
- name: "Projects"
  description: "The /projects endpoint"
- name: "Project Stages"
  description: "The /project-stages endpoint"
- name: "Project Expenses"
  description: "The /project-expenses endpoint"
- name: "Templating Projects"
  description: "The /project-templates and /projects/from-template endpoints"
- name: "Currencies"
  description: "The /currencies endpoint"
- name: "Rate Cards"
  description: "The /rate-cards endpoint"
- name: "Phases"
  description: "The /phases endpoint"
- name: "Project Tasks"
  description: "The /project-tasks endpoint"
- name: "Milestones"
  description: "The /milestones endpoint"
- name: "Allocations"
  description: "The /tasks endpoint describes allocations"
- name: "Logged Time"
  description: "The /logged-time endpoint"
- name: "Delete Log"
  description: "The /deleted endpoints"
- name: "Reports"
  description: "The /reports endpoint"


schemes:
- "https"
consumes:
- "application/json"
- "application/xml"
produces:
- "application/json"
- "application/xml"

parameters:
  page:
    name: "page"
    in: "query"
    description: "The page number of the page of results to return, default `1`"
    required: false
    type: "integer"
    default: 1
    minimum: 1
  per-page:
    name: "per-page"
    in: "query"
    description: "The number of items per page, max is `200`"
    minimum: 1
    maximum: 200
    default: 50
    required: false
    type: "integer"
  fields:
    name: "fields"
    in: "query"
    description: "Comma-delimited set of fields to include in the response"
    required: false
    type: "array"
    collectionFormat: csv
    items:
        type: string
  sort:
    name: "sort"
    in: "query"
    description: "A field to sort the list values in the response, ascending (default), pre-fix `-` to apply descending. (Limited fields, varies per endpoint)"
    required: false
    type: "string"
  client_id:
    name: "client_id"
    in: "query"
    description: "A client ID associated with projects to filter the response on"
    required: false
    type: "integer"
  project_id:
    name: "project_id"
    in: "query"
    description: "A project ID to filter the response on"
    required: false
    type: "integer"
  phase_id:
    name: "phase_id"
    in: "query"
    description: "A phase ID associated with a project to filter the response on"
    required: false
    type: "integer"
  task_meta_id:
    name: task_meta_id
    in: "query"
    description: A project task ID to filter the response on
    required: false
    type: integer
  department_id:
    name: "department_id"
    in: "query"
    description: "A department ID to filter the response on"
    required: false
    type: "integer"
  people_id:
    name: "people_id"
    in: "query"
    description: "A people ID to filter the response on"
    required: false
    type: "integer"
  start_date:
    name: start_date
    in: "query"
    description: "Start of date range in format YYYY-MM-DD. Must be used together with `end_date`"
    required: false
    type: "string"
    format: "Date:YYYY-MM-DD"
  end_date:
    name: end_date
    in: "query"
    description: "End of date range in format YYYY-MM-DD. Must be used together with `start_date`"
    required: false
    type: "string"
    format: "Date:YYYY-MM-DD"
  active:
    name: active
    in: "query"
    description: "Filter only on `0` = non-active or `1` = active entities in the response"
    required: false
    type: "integer"
  tag_name:
    name: tag_name
    in: "query"
    description: "Case-insensitive, URL encoded, exact text match of tag names to filter the response on. Comma-delimited values will return all matching records."
    required: false
    type: "string"
  modified_since:
    name: modified_since
    in: "query"
    description: "Datetime in either `YYYY-MM-DD hh:mm:ss` or as a Unix timestamp in seconds to filter on all records with an equal or later `modified` timestamp"
    required: false
    type: "string"
  cursor:
    name: cursor
    in: "query"
    description: "Cursor for cursor-based pagination; use the value from `X-Pagination-Next-Cursor` to fetch the next page"
    required: false
    type: "string"
  limit:
    name: limit
    in: "query"
    description: "Number of items to return per page for cursor-based pagination, max `500`"
    required: false
    type: "integer"
    default: 200
    minimum: 1
    maximum: 500


paths:
  /departments:
    $ref: "paths/departments.yaml#/departments"
  /departments/{department_id}:
    $ref: "paths/departments.yaml#/departments-id"
  /reports/people:
    $ref: "paths/reports.yaml#/reports-people"
  /reports/projects:
    $ref: "paths/reports.yaml#/reports-projects"
  /projects:
    $ref: "paths/projects.yaml#/projects"
  /projects/{project_id}:
    $ref: "paths/projects.yaml#/projects-id"
  /currencies:
    $ref: "paths/currencies.yaml#/currencies"
  /currencies/{currency_id}:
    $ref: "paths/currencies.yaml#/currencies-id"
  /rate-cards:
    $ref: "paths/rate-cards.yaml#/rate-cards"
  /rate-cards/{rate_card_id}:
    $ref: "paths/rate-cards.yaml#/rate-cards-id"
  /project-templates:
    $ref: "paths/project-templates.yaml#/project-templates"
  /project-templates/{project_template_id}:
    $ref: "paths/project-templates.yaml#/project-templates-id"
  /projects/from-template/{project_template_id}:
    $ref: "paths/project-templates.yaml#/projects-from-template"
  /project-stages:
    $ref: "paths/project-stages.yaml#/project-stages"
  /project-stages/{id}:
    $ref: "paths/project-stages.yaml#/project-stages-id"
  /phases:
    $ref: "paths/phases.yaml#/phases"
  /phases/{phase_id}:
    $ref: "paths/phases.yaml#/phases-id"
  /project-tasks:
    $ref: "paths/project-tasks.yaml#/project-tasks"
  /project-tasks/{project_task_id}:
    $ref: "paths/project-tasks.yaml#/project-task-id"
  /project-tasks/merge:
    $ref: "paths/project-tasks.yaml#/project-tasks-merge"
  /people:
    $ref: "paths/people.yaml#/people"
  /people/{people_id}:
    $ref: "paths/people.yaml#/people-id"
  /roles:
    $ref: "paths/roles.yaml#/roles"
  /roles/{role_id}:
    $ref: "paths/roles.yaml#/role-id"
  /tasks:
    $ref: "paths/tasks.yaml#/tasks"
  /tasks/{task_id}:
    $ref: "paths/tasks.yaml#/tasks-id"
  /clients:
    $ref: "paths/clients.yaml#/clients"
  /clients/{client_id}:
    $ref: "paths/clients.yaml#/clients-id"
  /accounts:
    $ref: "paths/accounts.yaml#/accounts"
  /accounts/{account_id}:
    $ref: "paths/accounts.yaml#/account-id"
  /public-holidays:
    $ref: "paths/publicholidays.yaml#/public-holidays"
  /public-holidays/{public_holiday_id}:
    $ref: "paths/publicholidays.yaml#/public-holidays-id"
  /holidays:
    $ref: "paths/holidays.yaml#/holidays"
  /holidays/{holiday_id}:
    $ref: "paths/holidays.yaml#/holidays-id"
  /logged-time:
    $ref: "paths/loggedtime.yaml#/logged-time"
  /logged-time/{logged_time_id}:
    $ref: "paths/loggedtime.yaml#/logged-time-id"
  /milestones:
    $ref: "paths/milestones.yaml#/milestones"
  /milestones/{milestone_id}:
    $ref: "paths/milestones.yaml#/milestones-id"
  /timeoffs:
    $ref: "paths/timeoffs.yaml#/timeoffs"
  /timeoffs/{timeoff_id}:
    $ref: "paths/timeoffs.yaml#/timeoffs-id"
  /deleted/tasks:
    $ref: "paths/deleted.yaml#/deleted-tasks"
  /deleted/timeoffs:
    $ref: "paths/deleted.yaml#/deleted-timeoffs"
  /deleted/logged-time:
    $ref: "paths/deleted.yaml#/deleted-logged-time"
  /timeoff-types:
    $ref: "paths/timeofftypes.yaml#/timeoff-types"
  /timeoff-types/{timeoff_type_id}:
    $ref: "paths/timeofftypes.yaml#/timeoff-types-id"
  /status:
    $ref: "paths/statuses.yaml#/statuses"
  /status/{status_id}:
    $ref: "paths/statuses.yaml#/statuses-id"
  /project-expenses:
    $ref: "paths/project-expenses.yaml#/project-expenses"
  /project-expenses/{project_expense_id}:
    $ref: "paths/project-expenses.yaml#/project-expenses-id"
