{"openapi":"3.0.0","paths":{"/v1/scopes":{"get":{"operationId":"list_scopes_v1","parameters":[],"responses":{"200":{"description":"Available Scopes for the Fieldguide API","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScopeRead"}}}}}}},"429":{"description":"Too many requests"}},"security":[{}],"summary":"List available Scopes for the Fieldguide API","tags":["api"]}},"/v1/token":{"get":{"operationId":"get_current_token_v1","parameters":[],"responses":{"200":{"description":"Metadata about the current authentication token","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"discriminator":{"propertyName":"type","mapping":{"api":"#/components/schemas/ApiTokenRead","jwt":"#/components/schemas/JwtTokenRead"}},"oneOf":[{"$ref":"#/components/schemas/ApiTokenRead"},{"$ref":"#/components/schemas/JwtTokenRead"}]}}}}}},"401":{"description":"Unauthorized"}},"summary":"Get metadata about the current authentication token","tags":["api"]}},"/v1/companies":{"get":{"operationId":"list_companies_v1","parameters":[{"name":"type","required":false,"in":"query","description":"Filter to show companies of a specific type","schema":{"$ref":"#/components/schemas/CompanyType"}},{"name":"uuids","required":false,"in":"query","description":"Filter Companies by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Companies accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CompanyRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `companies:read`)"},"429":{"description":"Too many requests"}},"summary":"List available Companies","tags":["companies"],"x-required-scopes":["companies:read"]},"post":{"operationId":"create_company_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyCreate"}}}},"responses":{"201":{"description":"The newly created Company","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['insert', 'companies']`)\n\nForbidden (requires scopes `companies:write`)"},"429":{"description":"Too many requests"}},"summary":"Create a new Company","tags":["companies"],"x-required-scopes":["companies:write"]}},"/v1/companies/{uuid}":{"get":{"operationId":"get_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Company data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `companies:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the specified Company","tags":["companies"],"x-required-scopes":["companies:read"]},"patch":{"operationId":"update_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyUpdate"}}}},"responses":{"200":{"description":"The updated Company","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['update', 'companies']`)\n\nForbidden (requires scopes `companies:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Update the specified Company","tags":["companies"],"x-required-scopes":["companies:write"]}},"/v1/companies/{uuid}/engagements":{"get":{"operationId":"list_engagements_by_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve engagements from","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Engagements for the specified Company","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"429":{"description":"Too many requests"}},"summary":"Get engagements for a given company","tags":["companies","engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements":{"get":{"operationId":"list_engagements_v1","parameters":[{"name":"templates","required":false,"in":"query","description":"Filter to include, exclude, or only show template engagements","schema":{"$ref":"#/components/schemas/TemplatesQuery"}},{"name":"uuids","required":false,"in":"query","description":"Filter Engagements by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"engagement_lead_user_uuid","required":false,"in":"query","description":"Filter Engagements by the UUID of their Engagement Lead User.","schema":{"format":"uuid","type":"string"}},{"name":"client_owner_user_uuid","required":false,"in":"query","description":"Filter Engagements by the UUID of their Client Owner User.","schema":{"format":"uuid","type":"string"}},{"name":"statuses","required":false,"in":"query","description":"Filter Engagements by status. Repeat the query parameter for multiple statuses.","schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementsQueryStatusLabel"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Engagements accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"429":{"description":"Too many requests"}},"summary":"List available Engagements","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/{uuid}":{"get":{"operationId":"get_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement details","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the specified Engagement","tags":["engagements"],"x-required-scopes":["engagements:read"]},"patch":{"operationId":"update_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementUpdate"}}}},"responses":{"200":{"description":"The updated Engagement data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Update the specified Engagement","tags":["engagements"],"x-required-scopes":["engagements:write"]}},"/v1/engagements/from-template":{"post":{"description":"Creates a new Engagement based on an existing template Engagement. The request is accepted for asynchronous processing; the response returns the new Engagement's UUID and the Job UUID used to poll its provisioning status.","operationId":"create_engagement_from_template_v1","parameters":[],"requestBody":{"required":true,"description":"Engagement creation from template options","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementCreateFromTemplate"}}}},"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the provisioning Job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":true},"Retry-After":{"description":"A date-time estimate of when the provisioning Job will complete","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":true}},"description":"The Engagement creation has been accepted for processing","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementUuidRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['insert', 'engagements']`)\n\nForbidden (requires scopes `engagements:write`)"},"429":{"description":"Too many requests"}},"summary":"Create a new Engagement from a template","tags":["engagements"],"x-required-scopes":["engagements:write"]}},"/v1/engagements/{uuid}/export":{"post":{"description":"Begins a long-running process that will generate an Engagement binder as a zip file.\n\nUse the Job ID that this endpoint returns with the appropriate [jobs endpoint](#/jobs/get_job_v1) to check its status and get its result.","operationId":"export_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to export","schema":{"format":"uuid","type":"string"}}],"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"}},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"The Job UUID for the Engagement binder export","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobSubmittedRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Export an Engagement binder","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/exports/{uuid}":{"get":{"description":"Returns the download URL and metadata for a completed Engagement binder export. Call this once the export Job returned by the export endpoint has finished.","operationId":"get_engagement_export_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Job","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The exported Engagement binder file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementExportRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch a generated Engagement binder report","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/{uuid}/users":{"get":{"operationId":"list_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve Users for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The users on the Engagement Team for the specified Engagement","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`, `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List the Engagement Team on an Engagement","tags":["engagements","users"],"x-required-scopes":["engagements:read","users:read"]},"patch":{"operationId":"add_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to add Users to","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserCreate"}}}}},"responses":{"204":{"description":"No content. The Users were added to the Engagement Team successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Add Users to an Engagement Team","tags":["engagements","users"],"x-required-scopes":["engagements:write"]},"delete":{"operationId":"remove_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to delete Users from","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserDelete"}}}}},"responses":{"204":{"description":"No content. The Users were removed from the Engagement Team successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Remove Users from an Engagement Team","tags":["engagements","users"],"x-required-scopes":["engagements:write"]}},"/v1/jobs/{uuid}":{"get":{"operationId":"get_job_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"UUID of the Job","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"headers":{"Location":{"description":"The URI to check the status of the job (if the job is still running)","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":false},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"Returns the status of a job if it is still running or has failed","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobRead"}}},"examples":{"running":{"summary":"Job Running","value":{"data":{"status":"Running"}}},"failed":{"summary":"Job Failed","value":{"data":{"status":"Failed","reason":"Failed to process data due to invalid format"}}}}}}},"302":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/insights/teams/time-tracking/exports/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":true}},"description":"Returns the status of a job if it has finished and redirects to the appropriate endpoint to get the result resource","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobRead"}}},"examples":{"finished":{"summary":"Job Finished","value":{"data":{"status":"Finished"}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"}},"summary":"Return the status of an asynchronous Job","tags":["jobs"]}},"/v1/users":{"get":{"operationId":"list_users_v1","parameters":[{"name":"uuids","required":false,"in":"query","description":"Filter Users by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Users accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `users:read`)"},"429":{"description":"Too many requests"}},"summary":"List available Users","tags":["users"],"x-required-scopes":["users:read"]}},"/v1/users/me":{"get":{"operationId":"get_current_user_v1","parameters":[],"responses":{"200":{"description":"Identifying information about the current user","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/UserRead"}}}}}},"401":{"description":"Unauthorized"},"429":{"description":"Too many requests"}},"summary":"Fetch the authenticated User","tags":["users"]}},"/v1/users/{uuid}":{"get":{"operationId":"get_user_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the user to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Identifying information about the requested user","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/UserRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the specified User","tags":["users"],"x-required-scopes":["users:read"]}},"/v1/companies/{uuid}/users":{"get":{"operationId":"list_company_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve Users for","schema":{"format":"uuid","type":"string"}},{"name":"email","required":false,"in":"query","description":"Filter Users by email address (case-insensitive, partial match)","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"Users for the specified Company","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Users that belong to the specified Company","tags":["users","companies"],"x-required-scopes":["users:read"]}},"/v1/requests/{uuid}/controls":{"get":{"operationId":"list_controls_by_request_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the request to retrieve controls for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Controls for the Request","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ControlRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `controls:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Controls that belong to the specified Request","tags":["controls","requests"],"x-required-scopes":["controls:read"]}},"/v1/engagements/{uuid}/requests":{"get":{"operationId":"list_requests_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the engagement to retrieve requests for","schema":{"format":"uuid","type":"string"}},{"name":"statuses","required":false,"in":"query","description":"Filter Requests by status. Repeat the query parameter for multiple statuses.","schema":{"type":"array","items":{"$ref":"#/components/schemas/RequestStatus"}}},{"name":"client_owner_user_uuids","required":false,"in":"query","description":"Filter Requests by the UUID of their Client Owner Users. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"due_date_before","required":false,"in":"query","description":"Filter Requests to those with a due date before this date. Uses strict before semantics and excludes Requests with no due date.","schema":{"format":"date","example":"2024-05-01","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Requests for the Engagement","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RequestRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Requests that belong to the specified Engagement","tags":["requests","engagements"],"x-required-scopes":["requests:read"]}},"/v1/sheet-rows/{uuid}/requests":{"get":{"operationId":"list_requests_by_sheet_row_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet Row to retrieve requests for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Requests for the Sheet Row","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RequestRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Requests that belong to the specified Sheet Row","tags":["sheet-rows","requests"],"x-required-scopes":["requests:read"]}},"/v1/requests/{uuid}":{"get":{"operationId":"get_request_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Request to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Request data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RequestRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the specified Request","tags":["requests"],"x-required-scopes":["requests:read"]},"patch":{"operationId":"update_request_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the request to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestUpdate"}}}},"responses":{"200":{"description":"The updated Request data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RequestRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Update the specified Request","tags":["requests"],"x-required-scopes":["requests:write"]}},"/v1/engagements/{uuid}/sheets":{"get":{"operationId":"list_sheets_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Sheets","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Sheets to which the Engagement is linked","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`, `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Sheets that belong to the specified Engagement","tags":["sheets","engagements"],"x-required-scopes":["engagements:read","sheets:read"]}},"/v1/sheets/{uuid}/export":{"post":{"operationId":"export_sheet_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet to export","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The exported Sheet file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ExportedFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Export a Sheet","tags":["sheets"],"x-required-scopes":["sheets:read"]}},"/v1/sheets/{uuid}/columns":{"get":{"operationId":"list_sheet_columns_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet for which to get Sheet Columns","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Columns contained within the specified Sheet","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetColumnRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Sheet Columns that belong to the specified Sheet","tags":["sheet-columns"],"x-required-scopes":["sheets:read"]}},"/v1/requests/{uuid}/sheet-rows":{"get":{"operationId":"list_sheet_rows_by_request_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Request for which to get Sheet Rows","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Sheet Rows to which the Request is linked","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Sheet Rows that belong to the specified Request","tags":["requests","sheet-rows"],"x-required-scopes":["sheets:read"]}},"/v1/sheets/{uuid}/sheet-rows":{"get":{"operationId":"list_sheet_rows_by_sheet_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet for which to get Sheet Rows","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Sheet Rows to which the Sheet is linked","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Sheet Rows that belong to the specified Sheet","tags":["sheets","sheet-rows"],"x-required-scopes":["sheets:read"]}},"/v1/sheet-rows/{uuid}/cells":{"get":{"operationId":"list_sheet_row_cells_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet Row for which to get cell values","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The cells of the Sheet Row","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowCellRead"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity (the Sheet Row contains more than 1000 columns)"},"429":{"description":"Too many requests"}},"summary":"Get the cells of a Sheet Row","tags":["sheet-rows"],"x-required-scopes":["sheets:read"]},"patch":{"operationId":"update_sheet_row_cells_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet Row for which to update cell values","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowCellUpdate"}}}}},"responses":{"204":{"description":"No content. The updates were made successfully."},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests"}},"summary":"Updates the cells of a Sheet Row","tags":["sheet-rows"],"x-required-scopes":["sheets:write"]}},"/v1/files/{uuid}":{"delete":{"operationId":"delete_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the file to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The file was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests.files:write` for request files, `engagements.files:write` for engagement files)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Delete the specified File","tags":["files"]},"get":{"operationId":"get_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the File to get details for","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The File details","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Get details for a specific File","tags":["files"],"x-required-scopes":["files:read"]}},"/v1/files/{uuid}/context":{"get":{"operationId":"get_file_context_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the File","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The File context","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FileContextRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Get context for a specific File","tags":["files"],"x-required-scopes":["files:read"]}},"/v1/engagements/{uuid}/folders":{"get":{"operationId":"list_engagement_folders_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Folders","schema":{"format":"uuid","type":"string"}},{"name":"parent_folder_uuid","required":false,"in":"query","description":"An optional UUID of the parent folder","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The list of Engagement Folders","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFolderRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Folders that belong to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]}},"/v1/engagements/{engagement_uuid}/folders/{folder_uuid}":{"get":{"operationId":"get_engagement_folder_v1","parameters":[{"name":"engagement_uuid","required":true,"in":"path","description":"The UUID of the Engagement from which to get a Folder","schema":{"format":"uuid","type":"string"}},{"name":"folder_uuid","required":true,"in":"path","description":"The UUID of the folder to fetch","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement Folder with the specified UUID","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFolderRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch a Folder by Engagement and Folder UUIDs","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]}},"/v1/engagements/{engagement_uuid}/files/{file_uuid}":{"get":{"operationId":"get_engagement_file_v1","parameters":[{"name":"engagement_uuid","required":true,"in":"path","description":"The UUID of the Engagement from which to get a File","schema":{"format":"uuid","type":"string"}},{"name":"file_uuid","required":true,"in":"path","description":"The UUID of the File to fetch","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement File with the specified UUID","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch a File by Engagement and File UUIDs","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]}},"/v1/engagements/{uuid}/files":{"get":{"operationId":"list_engagement_files_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Files","schema":{"format":"uuid","type":"string"}},{"name":"folder_uuid","required":false,"in":"query","description":"An optional UUID of the Folder to filter Files by","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The list of Engagement Files","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFileRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Files that belong to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]},"post":{"operationId":"upload_engagement_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to upload the File to","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"The File to upload","content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/EngagementFileCreate"}}}},"responses":{"200":{"description":"The UUID of the File that was attached to the Engagement","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Upload a File to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:write"]}},"/v1/requests/{uuid}/files":{"get":{"operationId":"list_request_files_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Request to list Files for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Files for the specified Request","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FileRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `requests.files:read`)"},"404":{"description":"Resource not found"}},"summary":"Fetch the Files for the specified Request","tags":["requests","files"],"x-required-scopes":["requests.files:read"]},"post":{"operationId":"upload_request_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the request to upload the file to","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"File to upload to the Request","content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/FileCreate"}}}},"responses":{"200":{"description":"The UUID of the file that was attached to the Request","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FileUploadRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests.files:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Upload a File to the specified Request","tags":["requests","files"],"x-required-scopes":["requests.files:write"]}},"/v1/forms/{uuid}":{"get":{"operationId":"get_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible active Form attached to an Engagement or Engagement Template","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFormRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Get the specified Engagement Form","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates/{uuid}":{"get":{"operationId":"get_form_template_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Form Template to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible active settings-level Form Template","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FormTemplateRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Get the specified Form Template","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates/{uuid}/fields":{"get":{"description":"Lists active Fields for a visible settings-level Form Template. This operation is available only to firm user credentials. Results default to deterministic creation order; `sort_by=sequence` uses Fieldguide display order.","operationId":"list_fields_by_form_template_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Form Template whose Fields to retrieve","schema":{"format":"uuid","type":"string"}},{"name":"types","required":false,"in":"query","description":"Filter Fields by type. Repeat the query parameter for multiple types.","schema":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldType"}}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Fields. Results are sorted by creation time unless `sequence` is requested. Sequence order matches Fieldguide, with null sequences first in ascending order and last in descending order.","schema":{"$ref":"#/components/schemas/FormFieldSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The active Fields for the visible Form Template","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Fields for the specified Form Template","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates":{"get":{"description":"Lists settings-level Form Templates. This operation is available only to firm user credentials.","operationId":"list_form_templates_v1","parameters":[{"name":"uuids","required":false,"in":"query","description":"Filter Form Templates by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The active settings-level Form Templates visible to the firm","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"429":{"description":"Too many requests"}},"summary":"List visible Form Templates","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/forms/{uuid}/values":{"patch":{"description":"Atomically sets or clears a partial batch of standard Form Values. Omitted Fields remain unchanged. Formatted-text input is canonicalized. By default, unresolved tracked changes reject the batch; callers can explicitly discard them with tracked_changes_policy DISCARD.","operationId":"update_values_by_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form whose Values to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormValuesUpdate"}}}},"responses":{"200":{"description":"The canonical committed Values in request order","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormValueUpdateRead"}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:write`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:write`)"},"404":{"description":"Resource not found"},"409":{"description":"A targeted formatted-text Value has unresolved track-change suggestions"},"413":{"description":"The request body exceeds 10 MiB after content-encoding decompression"},"429":{"description":"Too many requests"}},"summary":"Update Values for the specified Form","tags":["forms"],"x-required-scopes":["forms:write"]}},"/v1/forms/{uuid}/fields":{"get":{"description":"Returns every active Field with its current stored Value. Unanswered and cleared Fields have a null Value; formatted-text HTML is returned unchanged.","operationId":"list_fields_by_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form whose Fields to retrieve","schema":{"format":"uuid","type":"string"}},{"name":"types","required":false,"in":"query","description":"Filter Fields by type. Repeat the query parameter for multiple types.","schema":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldType"}}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Fields. Results are sorted by creation time unless `sequence` is requested. Sequence order matches Fieldguide, with null sequences first in ascending order and last in descending order.","schema":{"$ref":"#/components/schemas/FormFieldSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The active Fields and current Values visible for the Form","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFormFieldRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Fields and current Values for the specified Form","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/engagements/{uuid}/forms":{"get":{"operationId":"list_forms_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement or Engagement Template to retrieve Forms for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The visible active Forms attached to the Engagement or Engagement Template","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFormRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Forms attached to the specified Engagement or Engagement Template","tags":["forms","engagements"],"x-required-scopes":["forms:read"]}},"/v1/insights/teams/time-tracking/exports/{uuid}":{"get":{"operationId":"get_time_tracking_export_v1","parameters":[{"name":"uuid","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The exported Time Tracking Insights file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TimeTrackingFileRead"}}}}}},"204":{"description":"No Time Tracking Insights available\n\nNo Content (the requested timeframe did not generate any results)"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `insights:read`)"},"429":{"description":"Too many requests"}},"summary":"Fetch a generated Insights Time Tracking report","tags":["insights"],"x-required-scopes":["insights:read"]}},"/v1/insights/teams/time-tracking/export":{"post":{"description":"Begins a long-running process that will generate an Insights Time Tracking report in CSV format.\n\nUse the Job ID that this endpoint returns with the appropriate [jobs endpoint](#/jobs/get_job_v1) to check its status and get its result.","operationId":"export_time_tracking_report_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeTrackingFileCreate"}}}},"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"}},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"The Job UUID for the time tracking export","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobSubmittedRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `insights:read`)"},"429":{"description":"Too many requests"}},"summary":"Export an Insights Time Tracking report","tags":["insights"],"x-required-scopes":["insights:read"]}},"/v1/milestones":{"get":{"operationId":"list_milestones_v1","parameters":[{"name":"associated_engagement_status","required":false,"in":"query","description":"Filter by the optional Engagement lifecycle phase associated with each Milestone. This is not the Engagement's current status and does not determine Milestone completion.","schema":{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}},{"name":"client_can_view","required":false,"in":"query","description":"Filter Milestones by client visibility.","schema":{"type":"boolean"}},{"name":"is_completed","required":false,"in":"query","description":"Filter by completion state. A completed Milestone has a non-null `completed_at` value.","schema":{"type":"boolean"}},{"name":"is_overdue","required":false,"in":"query","description":"Filter by overdue state using today's UTC date. `true` requires a due date before today; `false` includes due dates today or later and Milestones without a due date.","schema":{"type":"boolean"}},{"name":"engagement_uuids","required":false,"in":"query","description":"Filter Milestones by Engagement UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The visible Milestones","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:read`)"},"429":{"description":"Too many requests"}},"summary":"List visible Milestones","tags":["milestones"],"x-required-scopes":["milestones:read"]}},"/v1/milestones/{uuid}":{"get":{"operationId":"get_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:read"]},"patch":{"operationId":"update_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MilestoneUpdate"}],"minProperties":1}}}},"responses":{"200":{"description":"The updated Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests"}},"summary":"Update the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:write"]},"delete":{"operationId":"delete_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The Milestone was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests"}},"summary":"Delete the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:write"]}},"/v1/engagements/{uuid}/milestones":{"post":{"operationId":"create_engagement_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to create a Milestone for","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MilestoneCreate"}}}},"responses":{"201":{"description":"The newly created Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests"}},"summary":"Create a Milestone for the specified Engagement","tags":["milestones","engagements"],"x-required-scopes":["milestones:write"]},"get":{"operationId":"list_milestones_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve Milestones for","schema":{"format":"uuid","type":"string"}},{"name":"associated_engagement_status","required":false,"in":"query","description":"Filter by the optional Engagement lifecycle phase associated with each Milestone. This is not the Engagement's current status and does not determine Milestone completion.","schema":{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}},{"name":"client_can_view","required":false,"in":"query","description":"Filter Milestones by client visibility.","schema":{"type":"boolean"}},{"name":"is_completed","required":false,"in":"query","description":"Filter by completion state. A completed Milestone has a non-null `completed_at` value.","schema":{"type":"boolean"}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Milestones. Results are sorted by creation time unless `sequence` is requested.","schema":{"$ref":"#/components/schemas/MilestoneSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The visible Milestones for the Engagement","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"List Milestones that belong to the specified Engagement","tags":["milestones","engagements"],"x-required-scopes":["milestones:read"]}},"/v1/requests/{uuid}/comments":{"get":{"operationId":"list_comments_by_request_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the request to get comments for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Request comments","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CommentRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the Comments for the specified Request","tags":["comments","requests"],"x-required-scopes":["comments:read"]},"post":{"operationId":"create_request_comment_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the request to post the comment","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentCreate"}}}},"responses":{"201":{"description":"The newly created Comment","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommentRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:write`)"},"429":{"description":"Too many requests"}},"summary":"Post a Comment on a Request","tags":["comments","requests"],"x-required-scopes":["comments:write"]}},"/v1/comments/{uuid}":{"get":{"operationId":"get_comment_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Comment","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Comment","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommentRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the Comment","tags":["comments"],"x-required-scopes":["comments:read"]}},"/v1/requests/comments":{"post":{"operationId":"create_request_comments_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestCommentBulkCreate"}}}},"responses":{"201":{"description":"The newly created Comments","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CommentRead"}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:write`)"},"429":{"description":"Too many requests"}},"summary":"Post Comments on multiple Requests","tags":["comments","requests"],"x-required-scopes":["comments:write"]}},"/v1/comments/{uuid}/context":{"get":{"operationId":"get_comment_context_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Comment","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Comment context","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommentContextRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Fetch the Comment context","tags":["comments"],"x-required-scopes":["comments:read"]}},"/v1/webhooks":{"get":{"operationId":"list_webhooks_v1","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"minimum":1,"maximum":200}},{"name":"sort_order","required":false,"in":"query","description":"Sort order for paginated results. Use `desc` to reverse the default ascending order.","schema":{"type":"string","default":"asc","enum":["asc","desc"]}}],"responses":{"200":{"description":"The Webhooks accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookRead"}}}},{"type":"object","required":["_links"],"properties":{"_links":{"type":"object","required":["self","first","last"],"properties":{"self":{"type":"object","description":"The URL for the current page being fetched","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=2&per_page=50"}}},"first":{"type":"object","description":"The URL for the first page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"last":{"type":"object","description":"The URL for the last page of the set","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=10&per_page=50"}}},"previous":{"type":"object","description":"The URL for the previous page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=1&per_page=50"}}},"next":{"type":"object","description":"The URL for the next page in the set, if there is one","properties":{"href":{"type":"string","example":"https://api.fieldguide.io/v1/example?page=3&per_page=50"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:read`)"},"429":{"description":"Too many requests"}},"summary":"List available Fieldguide Webhook subscriptions for the current User","tags":["webhooks"],"x-required-scopes":["webhooks:read"]},"post":{"callbacks":{"onObjectAction":{"{$request.body#/url}":{"post":{"parameters":[{"name":"X-FG-Signature","in":"header","description":"HMAC-SHA256 hex-encoded signature hash of the request body with the webhook {$response.body#/secret}. Your server implementation should hash + encode the request body and compare the resulting signature with this header value to verify the webhook was sent from Fieldguide. See [webhooks.fyi](https://webhooks.fyi/security/hmac) for additional context.","required":true,"schema":{"type":"string"}},{"name":"X-FG-Attempt","in":"header","description":"Denotes if this is the original notification (`1`) or a retry (`2+`)","required":true,"schema":{"type":"number"}}],"requestBody":{"required":true,"description":"Webhook event payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPayload"}}}},"security":[],"responses":{"200":{"description":"Your server implementation should return a 2xx status code if the webhook was received successfully"}}}}}},"description":"Note: Webhooks on a development domain (mockable.io, ngrok-free.app, ngrok-free.dev, on.aws, onrender.com, run.app, webhook.site) are automatically deleted when delivery returns a 404, 410, or 501 response. They are also deleted after retries are exhausted on a persistent connection error (timeout, DNS failure, connection refused, or a recognized persistent TLS certificate failure).","operationId":"create_webhook_v1","parameters":[],"requestBody":{"required":true,"description":"Input for Webhook to be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}},"responses":{"201":{"description":"The newly created Webhook","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebhookReadWithSecret"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"429":{"description":"Too many requests"}},"summary":"Create a new Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]}},"/v1/webhooks/{uuid}":{"delete":{"operationId":"delete_webhook_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Webhook to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The Webhook was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Delete the specified Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]},"patch":{"operationId":"update_webhook_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Webhook to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"Input for Webhook to be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}}},"responses":{"200":{"description":"The updated Webhook","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebhookRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests"}},"summary":"Update the specified Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]}}},"info":{"title":"Fieldguide API","description":"An API for interacting with the [Fieldguide](https://fieldguide.com) platform","version":"v1","contact":{}},"tags":[{"name":"api","description":"Endpoints used to interact with the Fieldguide API platform"},{"name":"comments","description":"Endpoints used to interact with Fieldguide Comments"},{"name":"companies","description":"Endpoints used to interact with Fieldguide Companies"},{"name":"controls","description":"Endpoints used to interact with Fieldguide Controls"},{"name":"engagements","description":"Endpoints used to interact with Fieldguide Engagements"},{"name":"files","description":"Endpoints used to interact with Fieldguide Files"},{"name":"forms","description":"Endpoints used to interact with Fieldguide Forms"},{"name":"insights","description":"Endpoints used to interact with Fieldguide Insights"},{"name":"jobs","description":"Endpoints used to interact with long-running processes (Jobs) in the Fieldguide API"},{"name":"milestones","description":"Endpoints used to interact with Fieldguide Milestones"},{"name":"requests","description":"Endpoints used to interact with Fieldguide Requests"},{"name":"sheet-columns","description":"Endpoints used to interact with Fieldguide Sheet Columns"},{"name":"sheet-rows","description":"Endpoints used to interact with Fieldguide Sheet Rows"},{"name":"sheets","description":"Endpoints used to interact with Fieldguide Sheets"},{"name":"users","description":"Endpoints used to interact with Fieldguide Users"},{"name":"webhooks","description":"Endpoints used to interact with Fieldguide Webhooks"}],"servers":[{"url":"https://api.fieldguide.io","description":"Fieldguide API"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"ScopeRead":{"type":"object","properties":{"scope":{"type":"string","example":"engagements:read","description":"Expected values include: `comments:read`, `comments:write`, `companies:read`, `companies:write`, `controls:read`, `engagements:read`, `engagements:write`, `engagements.files:read`, `engagements.files:write`, `files:read`, `forms:read`, `forms:write`, `insights:read`, `milestones:read`, `milestones:write`, `requests:read`, `requests:write`, `requests.files:read`, `requests.files:write`, `users:read`, `webhooks:read`, `webhooks:write`, `sheets:read`, `sheets:write`. This list is not exhaustive; additional values can be added over time."},"resource":{"allOf":[{"$ref":"#/components/schemas/ApiResource"}],"description":"The API resource this scope grants access to. Expected values include: `comments`, `companies`, `controls`, `engagements`, `requests`, `users`, `webhooks`, `files`, `forms`, `sheets`, `sheet-columns`, `sheet-rows`, `insights`, `jobs`, `milestones`, `folders`. This list is not exhaustive; additional values can be added over time."},"description":{"type":"string","example":"Can read engagement metadata"}},"required":["scope","resource","description"]},"JwtTokenRead":{"type":"object","properties":{"user_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"expires_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"type":{"type":"string","enum":["jwt"],"example":"jwt"}},"required":["user_uuid","created_at","expires_at","type"]},"ApiTokenRead":{"type":"object","properties":{"user_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"expires_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"type":{"type":"string","enum":["api"],"example":"api"},"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"name":{"type":"string","example":"Acme ABC Token"},"scopes":{"type":"array","example":["engagements:read","engagements.files:read","engagements.files:write"],"items":{"type":"string"},"description":"Expected values include: `comments:read`, `comments:write`, `companies:read`, `companies:write`, `controls:read`, `engagements:read`, `engagements:write`, `engagements.files:read`, `engagements.files:write`, `files:read`, `forms:read`, `forms:write`, `insights:read`, `milestones:read`, `milestones:write`, `requests:read`, `requests:write`, `requests.files:read`, `requests.files:write`, `users:read`, `webhooks:read`, `webhooks:write`, `sheets:read`, `sheets:write`. This list is not exhaustive; additional values can be added over time."},"provisioned_for":{"type":"string","default":"fieldguide"}},"required":["user_uuid","created_at","expires_at","type","uuid","name","scopes","provisioned_for"]},"CompanyType":{"type":"string","enum":["client","firm"],"description":"Whether the company is a Firm (the audit provider) or a Client."},"HalLink":{"type":"object","properties":{"href":{"type":"string","example":"https://example.com/resource/or/path","format":"uri"},"title":{"type":"string","description":"A human-readable title for the link","example":"A description for the link"},"type":{"type":"string","description":"The content-type","example":"text/html"}},"required":["href","type"]},"CompanyReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Company within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/clients/1/overview","title":"View this Company in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"CompanyRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"3699af0f-9b92-410d-945c-bb0bf39da904"},"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A","nullable":true,"default":null},"type":{"description":"Whether the company is a Firm (the audit provider) or a Client.","allOf":[{"$ref":"#/components/schemas/CompanyType"}]},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false},"_links":{"$ref":"#/components/schemas/CompanyReadLinks"}},"required":["uuid","name","type","require_mfa","_links"]},"CompanyCreate":{"type":"object","properties":{"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A"},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false}},"required":["name","require_mfa"]},"CompanyUpdate":{"type":"object","properties":{"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A","nullable":true},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false}}},"EngagementStatus":{"type":"string","enum":["Pending","In Progress","Complete","Archived"],"description":"The engagement's current lifecycle status."},"EngagementReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/82027","title":"View this Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"name":{"type":"string","example":"SOC 2 - Type 1"},"status":{"description":"The engagement's current lifecycle status.","allOf":[{"$ref":"#/components/schemas/EngagementStatus"}]},"is_template":{"type":"boolean","example":false,"description":"Whether this is a reusable engagement template rather than a live engagement."},"company_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","description":"UUID of the client company this engagement is for."},"start_date":{"type":"string","format":"date","example":"2023-05-23","nullable":true,"description":"The engagement's planned start date, or null if not scheduled."},"end_date":{"type":"string","format":"date","example":"2023-07-30","nullable":true,"description":"The engagement's planned end date, or null if not scheduled."},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"report_issue_date":{"type":"string","format":"date","example":"2023-07-30","nullable":true,"description":"The date the audit report was issued, or null if not yet issued."},"engagement_lead_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","nullable":true,"description":"UUID of the user leading the engagement (the audit lead), or null if no engagement lead is available."},"client_owner_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","nullable":true,"description":"UUID of the client-side owner of the engagement, or null if unassigned."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true},"_links":{"$ref":"#/components/schemas/EngagementReadLinks"}},"required":["uuid","name","status","is_template","company_uuid","start_date","end_date","created_at","report_issue_date","engagement_lead_user_uuid","client_owner_user_uuid","_links"]},"TemplatesQuery":{"type":"string","enum":["include","exclude","only"]},"EngagementsQueryStatusLabel":{"type":"string","enum":["Pending","In Progress","Complete","Archived"]},"EngagementStatusLabel":{"type":"string","enum":["Pending","In Progress","Complete"],"description":"The status of the Engagement"},"EngagementUpdate":{"type":"object","properties":{"engagement_lead_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","description":"The UUID of the firm user who is the engagement lead"},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true},"status":{"description":"The status of the Engagement","allOf":[{"$ref":"#/components/schemas/EngagementStatusLabel"}]},"name":{"type":"string","description":"The name of the Engagement","example":"SOC 2 - Type 1","nullable":false}}},"JobSubmittedReadLinks":{"type":"object","properties":{"status":{"description":"An API endpoint to retrieve the status of the job","example":{"href":"https://api.fieldguide.io/v1/jobs/2d2e102e-f4af-4534-9749-4d9249eca6cc","title":"Get the status of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["status"]},"EngagementUuidRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The UUID of the Engagement being provisioned"},"job_uuid":{"type":"string","format":"uuid","example":"2d2e102e-f4af-4534-9749-4d9249eca6cc","description":"The UUID of the Engagement provisioning Job"},"_links":{"$ref":"#/components/schemas/JobSubmittedReadLinks"}},"required":["uuid","job_uuid","_links"]},"EngagementCreateFromTemplate":{"type":"object","properties":{"template_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"client_company_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc"},"name":{"type":"string","example":"SOC 2 - Type 1"},"start_date":{"type":"string","example":"2023-07-30"},"end_date":{"type":"string","example":"2023-07-30"},"report_issue_date":{"type":"string","example":"2023-07-30"},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true,"default":null}},"required":["template_uuid","client_company_uuid","name"]},"JobSubmittedRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"The UUID of the job that was submitted"},"_links":{"$ref":"#/components/schemas/JobSubmittedReadLinks"}},"required":["uuid","_links"]},"EngagementExportRead":{"type":"object","properties":{"name":{"type":"string","example":"Board of Directors.docx"},"size":{"type":"number","example":137437},"mime_type":{"type":"string","example":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},"url":{"type":"string","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true}},"required":["name","size","mime_type","url","url_expiration"]},"EngagementUserRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"first_name":{"type":"string","example":"Kurt"},"last_name":{"type":"string","example":"Vonnegut"},"email":{"type":"string","format":"email","example":"kurt.vonnegut@weyland-yutani.com","description":"The user's email for deleted users will be noreply@fieldguide.io"},"company_uuid":{"type":"string","format":"uuid","example":"0a5cc6c6-2855-48f1-892e-7547fe9f8fc4"}},"required":["uuid","first_name","last_name","email","company_uuid"]},"EngagementUserCreate":{"type":"object","properties":{"uuid":{"type":"string","description":"The UUID of the user to add to the engagement","format":"uuid","example":"3699af0f-9b92-410d-945c-bb0bf39da904"}},"required":["uuid"]},"EngagementUserDelete":{"type":"object","properties":{"uuid":{"type":"string","description":"The UUID of the user to remove from the Engagement Team","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"}},"required":["uuid"]},"JobReadLinks":{"type":"object","properties":{"results":{"description":"An API endpoint to retrieve the result of the job","example":{"href":"https://api.fieldguide.io/v1/insights/teams/time-tracking/exports/9b560ead-2b64-41f2-b9ae-826bdb866f1a","title":"Get the result of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"fieldguide":{"description":"A URL to view the result resource in the Fieldguide application","example":{"href":"https://app.fieldguide.io/engagements/82027","title":"View this Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["results"]},"JobRead":{"type":"object","properties":{"status":{"type":"string","enum":["Running","Finished","Failed"],"description":"Current status of the job"},"reason":{"type":"string","description":"Human-readable error message when job has failed"},"_links":{"$ref":"#/components/schemas/JobReadLinks"}},"required":["status"]},"UserReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the User within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/settings/admin/users/1","title":"View this User in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"UserRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"first_name":{"type":"string","example":"Kurt"},"last_name":{"type":"string","example":"Vonnegut"},"email":{"type":"string","format":"email","example":"kurt.vonnegut@weyland-yutani.com","description":"The user's email for deleted users will be noreply@fieldguide.io"},"company_uuid":{"type":"string","format":"uuid","example":"0a5cc6c6-2855-48f1-892e-7547fe9f8fc4"},"_links":{"$ref":"#/components/schemas/UserReadLinks"},"status":{"type":"string","enum":["Invited","Verified","Active","Deactivated","Deleted"],"example":"Active","description":"The user's account status (e.g. active, invited, or deactivated)."},"invite_last_resent_at":{"format":"date-time","type":"string","nullable":true,"example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","first_name","last_name","email","company_uuid","_links","status","invite_last_resent_at"]},"ControlReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Controls within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/controls?client=2&id=09f7eeab-5318-4aff-a2bc-98b21dbe8b60&open=true","title":"View the Control in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"ControlRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"description":{"type":"string","example":"Organizational charts are in place to communicate key areas of authority, responsibility, and appropriate lines of reporting to personnel."},"key":{"type":"string","example":"FG-6"},"_links":{"$ref":"#/components/schemas/ControlReadLinks"}},"required":["uuid","description","key","_links"]},"RequestStatus":{"type":"string","enum":["Open","Update Requested","Complete","Ready For Review","Draft"],"description":"The request's current status in the evidence-collection workflow."},"RequestReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Request within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/inbox?open=true&id=47923","title":"View this Request in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"RequestRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"title":{"type":"string","example":"Employees hired in 2023"},"description":{"type":"string","example":"Please provide a list of employees hired this calendar year along with full HR profiles"},"status":{"description":"The request's current status in the evidence-collection workflow.","allOf":[{"$ref":"#/components/schemas/RequestStatus"}]},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"REQ-1234"},"client_company_uuid":{"type":"string","format":"uuid","example":"60d593b6-1c59-4f30-bf9c-56901af906a7"},"status_label":{"type":"string","example":"Waiting for Specification","description":"If the status is \"Draft\", this can be a custom label. Otherwise, it will be the same value as the \"status\" property."},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"due_date":{"type":"string","format":"date","example":"2024-05-01","nullable":true},"client_owner_user_uuids":{"type":"array","items":{"type":"string","format":"uuid","example":"edbf4962-20eb-499e-a7fa-eaff50c81630"}},"tags":{"type":"array","items":{"type":"string","example":"tag-name"}},"engagement_uuids":{"type":"array","items":{"type":"string","format":"uuid","example":"d51b4959-a6b0-4b8a-a251-8b5f7be7765e"}},"_links":{"$ref":"#/components/schemas/RequestReadLinks"}},"required":["uuid","title","description","status","identifier","client_company_uuid","status_label","created_at","due_date","client_owner_user_uuids","tags","engagement_uuids","_links"]},"RequestUpdate":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/RequestStatus"}]}}},"SheetReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Sheet within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/82027/workplan/3","title":"View the Sheet in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"SheetRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"PCI DSS ROC v3.2.1 6. Findings and Observations"},"_links":{"$ref":"#/components/schemas/SheetReadLinks"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","name","_links","created_at"]},"ExportedFileRead":{"type":"object","properties":{"name":{"type":"string","example":"Board of Directors.docx"},"size":{"type":"number","example":137437},"mime_type":{"type":"string","example":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},"url":{"type":"string","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"uuid":{"type":"string","description":"The UUID of the File","example":"123e4567-e89b-12d3-a456-426614174000"}},"required":["name","size","mime_type","url","url_expiration","uuid"]},"SheetColumnFormat":{"type":"string","enum":["text","number","list"],"description":"The data type of values stored in this column."},"SheetColumnReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Sheet Column within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/165/workplan/183","title":"View the Sheet for this Sheet Column in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"SheetColumnRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"title":{"type":"string","example":"Example Title"},"type":{"example":"text","description":"The data type of values stored in this column.","allOf":[{"$ref":"#/components/schemas/SheetColumnFormat"}]},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"updated_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/SheetColumnReadLinks"}},"required":["uuid","title","type","created_at","updated_at","_links"]},"SheetRowRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"keys":{"type":"array","items":{"type":"string","example":"1.1.1"}},"_links":{"$ref":"#/components/schemas/SheetReadLinks"}},"required":["uuid","keys","_links"]},"SheetRowCellRead":{"type":"object","properties":{"column_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"value":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}]}},"required":["column_uuid","value"]},"SheetRowCellUpdate":{"type":"object","properties":{"column_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"value":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}]}},"required":["column_uuid","value"]},"FileRead":{"type":"object","properties":{"name":{"type":"string","example":"Board of Directors.docx"},"size":{"type":"number","example":137437},"mime_type":{"type":"string","example":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},"url":{"type":"string","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"uuid":{"type":"string","format":"uuid","example":"91aeda5e-4a3c-4090-90b1-cbf09d4c1ba1"},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true}},"required":["name","size","mime_type","url","url_expiration","uuid","created_at","updated_at"]},"FileContextRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"type":{"type":"string","enum":["engagement","request"],"example":"engagement","description":"The kind of object this file is attached to."}},"required":["uuid","type"]},"EngagementFolderReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement Folder within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/123/documents?folder=abc-123","title":"View this Engagement Folder in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFolderRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The unique identifier for the resource"},"parent_folder_uuid":{"type":"string","format":"uuid","example":"721e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The folder that contains this one","nullable":true},"engagement_uuid":{"type":"string","format":"uuid","example":"921e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The Engagement this Folder belongs to"},"name":{"type":"string","example":"Documents","description":"The name of the Folder"},"path":{"type":"string","example":"/grandparent/parent","description":"The path to the Folder from the Engagement root"},"created_at":{"format":"date-time","type":"string","example":"2024-03-19T12:00:00Z","description":"Timestamp of when the Folder was created"},"_links":{"$ref":"#/components/schemas/EngagementFolderReadLinks"}},"required":["uuid","parent_folder_uuid","engagement_uuid","name","path","created_at","_links"]},"EngagementFileReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement File within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/v1/engagements/2/documents?folder=0d7c72ee-28b3-4bc8-aea1-18bc7d9a8679&file=9b560ead-2b64-41f2-b9ae-826bdb866f1a","title":"Get the result of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFileRead":{"type":"object","properties":{"name":{"type":"string","example":"Board of Directors.docx"},"size":{"type":"number","example":137437},"mime_type":{"type":"string","example":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},"url":{"type":"string","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"uuid":{"type":"string","format":"uuid","example":"91aeda5e-4a3c-4090-90b1-cbf09d4c1ba1"},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"engagement_uuid":{"type":"string","description":"The UUID of the Engagement this File is associated with","format":"uuid"},"folder_uuid":{"type":"string","description":"The UUID of the Folder this File is associated with, or null if it sits at the Engagement root.","format":"uuid","nullable":true},"_links":{"$ref":"#/components/schemas/EngagementFileReadLinks"}},"required":["name","size","mime_type","url","url_expiration","uuid","created_at","updated_at","engagement_uuid","folder_uuid","_links"]},"EngagementFileCreate":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"folder_uuid":{"type":"string","description":"The Folder UUID of the Engagement this File is associated with","format":"uuid"}},"required":["file"]},"FileUploadRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"3e11fc6d-ecd0-4673-8a90-aa787ed391ec"}},"required":["uuid"]},"FileCreate":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]},"EngagementFormReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Form in Fieldguide.","allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFormRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","nullable":true,"example":"Client acceptance form"},"description":{"type":"string","nullable":true,"example":"Standard client acceptance questions"},"created_at":{"type":"string","description":"When the Form was attached to the Engagement or Engagement Template.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the Form's metadata was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/EngagementFormReadLinks"}},"required":["uuid","name","description","created_at","updated_at","_links"]},"FormTemplateReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Form Template in Fieldguide.","allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"FormTemplateRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Client acceptance form"},"description":{"type":"string","nullable":true,"example":"Standard client acceptance questions"},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/FormTemplateReadLinks"}},"required":["uuid","name","description","created_at","updated_at","_links"]},"FormFieldType":{"type":"string","enum":["short_text","formatted_text","date","number","image","list"],"description":"The value type accepted by this Field."},"FormFieldTypeMetadata":{"type":"object","properties":{"options":{"description":"Current allowed values for a list Field. Submit list values exactly as one of these options.","example":["Approved","Denied"],"type":"array","items":{"type":"string"}}},"required":["options"]},"FormFieldRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Approval status"},"type":{"description":"The value type accepted by this Field.","allOf":[{"$ref":"#/components/schemas/FormFieldType"}]},"sequence":{"type":"integer","nullable":true,"example":1,"description":"The Fieldguide display order. Null sequences appear first when sorting by sequence ascending and last when sorting descending."},"guidance":{"type":"string","nullable":true,"example":"<p>Choose the status described in the <a href=\"https://example.com/policy\">policy</a>.</p>","description":"Safe canonical HTML for Field guidance. The supported reduced CKEditor markup is paragraphs, line breaks, bold (`strong`), italic (`em`), underline (`u`), strikethrough (`s`), and links (`a` with `href`)."},"type_metadata":{"nullable":true,"description":"Validation metadata for this Field. List Fields expose their current allowed `options`; other Field types return null.","type":"object","allOf":[{"$ref":"#/components/schemas/FormFieldTypeMetadata"}]},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"}},"required":["uuid","name","type","sequence","guidance","type_metadata","created_at","updated_at"]},"FormFieldSortBy":{"type":"string","enum":["created_at","sequence"]},"FormValueUpdateRead":{"type":"object","properties":{"value":{"type":"string","description":"The Value exactly as stored. Formatted text is returned as stored HTML. This is null for image-backed Values.","nullable":true,"example":"Client acceptance response"},"file_uuid":{"type":"string","description":"The stored File UUID for an image-backed Value; otherwise null.","format":"uuid","nullable":true,"example":"7d50d252-be0c-4d69-b77a-5bbdfef83f55"},"created_at":{"type":"string","description":"When the Value was first stored.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the stored Value was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"has_pending_track_changes":{"type":"boolean","description":"Whether this formatted-text Value has unresolved track-change suggestions.","nullable":false,"example":false},"field_uuid":{"type":"string","description":"The UUID of the Form Field whose Value was committed.","format":"uuid","example":"82de76c4-964b-4519-94cf-7ce6b6d409f7"}},"required":["value","file_uuid","created_at","updated_at","has_pending_track_changes","field_uuid"]},"FormValueTrackedChangesPolicy":{"type":"string","enum":["FAIL","DISCARD"],"description":"Controls unresolved tracked changes on targeted Values. Defaults to FAIL when omitted. FAIL rejects the entire batch. DISCARD rejects unresolved suggestions atomically before replacing the Values."},"FormValueUpdateItem":{"type":"object","properties":{"field_uuid":{"type":"string","description":"The UUID of the Form Field whose Value to set or clear.","format":"uuid","example":"82de76c4-964b-4519-94cf-7ce6b6d409f7"},"value":{"type":"string","description":"The opaque Value to store. Use null to clear the stable Value slot. Non-null Values may contain at most 500,000 characters under Fieldguide's native validation semantics, which count Unicode surrogate pairs and base-character-plus-FE0E/FE0F presentation sequences as one character. Formatted-text HTML is canonicalized by Fieldguide. Image Values can be cleared but cannot be assigned through this endpoint.","nullable":true,"example":"Client acceptance response"}},"required":["field_uuid","value"],"additionalProperties":false},"FormValuesUpdate":{"type":"object","properties":{"tracked_changes_policy":{"description":"Controls unresolved tracked changes on targeted Values. Defaults to FAIL when omitted. FAIL rejects the entire batch. DISCARD rejects unresolved suggestions atomically before replacing the Values.","allOf":[{"$ref":"#/components/schemas/FormValueTrackedChangesPolicy"}]},"values":{"description":"The partial batch of Form Values to set or clear. Fields omitted from the batch remain unchanged, and each Field may appear only once. The combined length of all non-null Values must not exceed 1,000,000 Unicode code points.","minItems":1,"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/FormValueUpdateItem"}}},"required":["values"],"additionalProperties":false},"FormValueRead":{"type":"object","properties":{"value":{"type":"string","description":"The Value exactly as stored. Formatted text is returned as stored HTML. This is null for image-backed Values.","nullable":true,"example":"Client acceptance response"},"file_uuid":{"type":"string","description":"The stored File UUID for an image-backed Value; otherwise null.","format":"uuid","nullable":true,"example":"7d50d252-be0c-4d69-b77a-5bbdfef83f55"},"created_at":{"type":"string","description":"When the Value was first stored.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the stored Value was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"has_pending_track_changes":{"type":"boolean","description":"Whether this formatted-text Value has unresolved track-change suggestions.","nullable":false,"example":false}},"required":["value","file_uuid","created_at","updated_at","has_pending_track_changes"]},"EngagementFormFieldRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Approval status"},"type":{"description":"The value type accepted by this Field.","allOf":[{"$ref":"#/components/schemas/FormFieldType"}]},"sequence":{"type":"integer","nullable":true,"example":1,"description":"The Fieldguide display order. Null sequences appear first when sorting by sequence ascending and last when sorting descending."},"guidance":{"type":"string","nullable":true,"example":"<p>Choose the status described in the <a href=\"https://example.com/policy\">policy</a>.</p>","description":"Safe canonical HTML for Field guidance. The supported reduced CKEditor markup is paragraphs, line breaks, bold (`strong`), italic (`em`), underline (`u`), strikethrough (`s`), and links (`a` with `href`)."},"type_metadata":{"nullable":true,"description":"Validation metadata for this Field. List Fields expose their current allowed `options`; other Field types return null.","type":"object","allOf":[{"$ref":"#/components/schemas/FormFieldTypeMetadata"}]},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"value":{"nullable":true,"description":"The current stored Value for this Field. Null when the Field is unanswered or cleared.","type":"object","allOf":[{"$ref":"#/components/schemas/FormValueRead"}]}},"required":["uuid","name","type","sequence","guidance","type_metadata","created_at","updated_at","value"]},"TimeTrackingFileRead":{"type":"object","properties":{"name":{"type":"string","example":"Board of Directors.docx"},"size":{"type":"number","example":137437},"mime_type":{"type":"string","example":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},"url":{"type":"string","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"report_data_processed_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"record_count":{"type":"number","example":1000,"nullable":false}},"required":["name","size","mime_type","url","url_expiration","report_data_processed_at","record_count"]},"TimeTrackingFileCreate":{"type":"object","properties":{"report_start":{"type":"string","example":"2025-01-01T12:30:00.000Z"},"report_end":{"type":"string","example":"2025-01-01T12:30:00.000Z"}},"required":["report_start","report_end"]},"MilestoneAssociatedEngagementStatus":{"type":"string","enum":["Pending","In Progress","Complete","Archived"],"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion."},"MilestoneUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Planning complete"},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"sequence":{"type":"integer","minimum":0,"maximum":32767,"example":1,"description":"The Milestone's stored display sequence."},"client_can_view":{"type":"boolean","description":"Whether client users can view the Milestone."},"owner_user_uuid":{"type":"string","format":"uuid","nullable":true,"description":"UUID of the firm user assigned to own the Milestone."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]}},"additionalProperties":false},"MilestoneReadLinks":{"type":"object","properties":{"self":{"description":"The canonical API URL for this Milestone","example":{"href":"https://api.fieldguide.io/v1/milestones/4d50d252-be0c-4d69-b77a-5bbdfef83f54","title":"Fetch this Milestone","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"collection":{"description":"The visible Milestones collection for the parent Engagement","example":{"href":"https://api.fieldguide.io/v1/engagements/821e8d9e-d2a8-480f-9187-5a685d3d0d71/milestones","title":"List Milestones for this Engagement","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"engagement":{"description":"The canonical API URL for the parent Engagement","example":{"href":"https://api.fieldguide.io/v1/engagements/821e8d9e-d2a8-480f-9187-5a685d3d0d71","title":"Fetch the parent Engagement","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"fieldguide":{"description":"A Fieldguide Engagement dashboard link containing this Milestone's UUID","example":{"href":"https://app.fieldguide.io/engagements/82027/dashboard?milestone=4d50d252-be0c-4d69-b77a-5bbdfef83f54","title":"Open the parent Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["self","collection","engagement","fieldguide"]},"MilestoneRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"engagement_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"UUID of the Engagement that owns this Milestone."},"name":{"type":"string","example":"Planning complete"},"sequence":{"type":"integer","example":2,"description":"The Milestone's display order within its Engagement."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not represent the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"completed_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z","nullable":true,"description":"The authoritative completion indicator. Null means the Milestone is incomplete."},"completed_by_user_uuid":{"type":"string","format":"uuid","example":"6b242248-e2b9-4d41-8986-11b710860048","nullable":true,"description":"UUID of the user who completed the Milestone."},"owner_user_uuid":{"type":"string","format":"uuid","example":"ee196968-2a7a-48e9-97f9-d12f26a8ff94","nullable":true,"description":"UUID of the user assigned to own the Milestone."},"client_can_view":{"type":"boolean","example":true,"description":"Whether client users can view the Milestone."},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/MilestoneReadLinks"}},"required":["uuid","engagement_uuid","name","sequence","associated_engagement_status","due_date","completed_at","completed_by_user_uuid","owner_user_uuid","client_can_view","created_at","updated_at","_links"]},"MilestoneCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Planning complete","description":"The name of the Milestone."},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"sequence":{"type":"integer","minimum":0,"maximum":32767,"example":1,"description":"The Milestone's stored display sequence."},"client_can_view":{"type":"boolean","example":false,"description":"Whether client users can view the Milestone. Defaults to false when omitted."},"owner_user_uuid":{"type":"string","format":"uuid","nullable":true,"description":"UUID of the firm user assigned to own the Milestone."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]}},"required":["name","sequence"],"additionalProperties":false},"MilestoneSortBy":{"type":"string","enum":["created_at","sequence"]},"CommentReadLinks":{"type":"object","properties":{"self":{"description":"A URL the user can fetch the Comment","example":{"href":"https://api.fieldguide.io/v1/comments/5919b6e8-9ea9-4cf0-9598-3a44cad3c7f7","title":"Fetch this Comment","example":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["self"]},"CommentRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"content":{"type":"string","example":"<p>The comment text in HTML format</p>Employees hired in 2023"},"author_user_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"updated_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/CommentReadLinks"}},"required":["uuid","content","author_user_uuid","created_at","updated_at","_links"]},"CommentCreate":{"type":"object","properties":{"content":{"type":"string","example":"<p>The comment text in HTML format</p>","minLength":1},"mentioned_user_uuids":{"type":"array","items":{"type":"string","format":"uuid","example":"edbf4962-20eb-499e-a7fa-eaff50c81630"},"description":"User UUIDs to mention and notify. Plain-text @Name text does not create mention notifications."}},"required":["content"]},"RequestCommentBulkCreateItem":{"type":"object","properties":{"request_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"content":{"type":"string","example":"<p>The comment text in HTML format</p>","minLength":1},"mentioned_user_uuids":{"type":"array","items":{"type":"string","format":"uuid","example":"edbf4962-20eb-499e-a7fa-eaff50c81630"},"description":"User UUIDs to mention and notify. Plain-text @Name text does not create mention notifications."}},"required":["request_uuid","content"]},"RequestCommentBulkCreate":{"type":"object","properties":{"comments":{"minItems":1,"maxItems":50,"type":"array","items":{"$ref":"#/components/schemas/RequestCommentBulkCreateItem"}}},"required":["comments"]},"CommentContextReadLinks":{"type":"object","properties":{"context_object":{"description":"A URL the user can fetch the Comment's Context","example":{"href":"https://api.fieldguide.io/v1/requests/9ddae459-8b25-41ef-a30d-d4c35d5915c9","title":"Fetch the Request this comment was left on","example":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["context_object"]},"CommentContextRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"type":{"type":"string","enum":["request"],"example":"request","description":"The kind of object this comment is attached to."},"_links":{"$ref":"#/components/schemas/CommentContextReadLinks"}},"required":["uuid","type","_links"]},"WebhookResource":{"type":"string","enum":["comments","companies","engagements","milestones","requests","users"],"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources."},"WebhookRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"d952a7a8-3f88-46d0-b4de-ec690d97105c","description":"The unique ID for the webhook, referenced as `webhook_uuid` in webhook requests"},"description":{"type":"string","description":"A human-readable description of the webhook's use","example":"Firm internal systems"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","description","scopes","url","created_at"]},"WebhookAction":{"type":"string","enum":["created","updated","deleted"]},"WebhookObjectType":{"type":"string","enum":["comments","companies","engagements","milestones","requests","users"]},"WebhookPayload":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"The unique ID for the event","example":"c7e4afd8-1b56-4621-83ad-86ec735fc23d"},"timestamp":{"format":"date-time","type":"string","description":"When the event occurred","example":"2023-01-01T12:30:00.000Z"},"action":{"allOf":[{"$ref":"#/components/schemas/WebhookAction"}]},"object_type":{"allOf":[{"$ref":"#/components/schemas/WebhookObjectType"}]},"object_uuid":{"type":"string","format":"uuid","description":"The UUID of the specific object for the event","example":"80d6783f-575d-4433-9dd8-25b81b2bad85"},"metadata":{"type":"array","description":"Array of metadata key-value pairs","example":[{"key":"company_uuid","value":"d952a7a8-3f88-46d0-b4de-ec690d97105c"},{"key":"engagement_uuid","value":"066a9ebd-07cf-458e-b506-dd66fab9cbcc"},{"key":"webhook_uuid","value":"5c8d4284-84f0-427c-be10-e350f7093a48"},{"key":"updated_property","value":"status"}],"items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}}},"required":["uuid","timestamp","action","object_type","object_uuid","metadata"]},"WebhookReadWithSecret":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"d952a7a8-3f88-46d0-b4de-ec690d97105c","description":"The unique ID for the webhook, referenced as `webhook_uuid` in webhook requests"},"description":{"type":"string","description":"A human-readable description of the webhook's use","example":"Firm internal systems"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"secret":{"type":"string","example":"trN7inAfsWlDy8VeqVB3","description":"A 20-character secret used for HMAC signing"}},"required":["uuid","description","scopes","url","created_at","secret"]},"WebhookCreate":{"type":"object","properties":{"description":{"type":"string","example":"Company XYZ Integration"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"}},"required":["description","url"]},"WebhookUpdate":{"type":"object","properties":{"description":{"type":"string","example":"Company XYZ Integration"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}}}},"ApiResource":{"type":"string","description":"The API resource this scope grants access to. Expected values include: `comments`, `companies`, `controls`, `engagements`, `requests`, `users`, `webhooks`, `files`, `forms`, `sheets`, `sheet-columns`, `sheet-rows`, `insights`, `jobs`, `milestones`, `folders`. This list is not exhaustive; additional values can be added over time."}}},"security":[{"bearer":[]}],"externalDocs":{"description":"Fieldguide API Documentation","url":"https://fieldguide.com/developers"}}