{"openapi":"3.0.0","info":{"title":"Lattice","version":"1.0.0"},"servers":[{"url":"api.latticehq.com","description":"Main (production) sever"}],"security":[{"BearerAuth":[]}],"paths":{"/v1/competency/{id}":{"get":{"operationId":"API_competency","description":"Returns a competency with the given id. If cannot find competency, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Competency"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/customAttribute/{id}":{"get":{"operationId":"API_customAttribute","description":"Returns the custom attribute with the given id. If cannot find the custom attribute, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomAttribute"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/customAttributeValue/{id}":{"get":{"operationId":"API_customAttributeValue","description":"Returns the custom attribute value with the given id. If cannot find the custom attribute, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomAttributeValue"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/department/{id}":{"get":{"operationId":"API_department","description":"Retuns a department with a given id. If cannot find department, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/departments":{"get":{"operationId":"API_departments","description":"Returns a paginated list of all departments in Lattice","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Department"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/feedback/{id}":{"get":{"operationId":"API_feedback","description":"Returns a feedback with the given id. If cannot find feedback, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feedback"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/feedbacks":{"get":{"operationId":"API_feedbacks","description":"Returns a paginated list of all continuous feedback in Lattice. Newest feedback will be returned first","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}},{"in":"query","name":"onlyPublic","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Feedback"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/goal/{id}":{"get":{"operationId":"API_goal","description":"Returns a goal with the given id. If cannot find goal, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Goal"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/goals":{"get":{"operationId":"API_goals","description":"Returns a paginated list of goals in Lattice","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}},{"in":"query","name":"state","required":false,"schema":{"$ref":"#/components/schemas/GoalStateEnum"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Goal"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}},"post":{"operationId":"API_createGoal","description":"Creates a new goal with the provided information","tags":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","startDate","dueDate","ownerIds"],"properties":{"name":{"type":"string","description":"The name of the goal"},"description":{"type":"string","description":"Detailed description of the goal"},"startDate":{"type":"string","format":"date","description":"Start date for the goal"},"dueDate":{"type":"string","format":"date","description":"Due date for the goal"},"priority":{"type":"number","minimum":1,"maximum":10,"description":"Priority level (1-10)"},"private":{"type":"boolean","description":"Whether the goal is private","default":false},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"User owner(s) of the goal. One minimum is required."},"okrType":{"type":"string","enum":["objective","key_result"],"description":"OKR type, objective or key result"},"amountType":{"type":"string","enum":["percent","dollar","digit","binary"],"nullable":true,"description":"The progress amount type for okrType = key results."},"startingAmount":{"type":"number","nullable":true,"description":"Starting amount for key results. Required when goal type is key result and amountType is not binary"},"goalAmount":{"type":"number","nullable":true,"description":"Target amount for key results. Required when goal type is key result and amountType is not binary"},"companyGoal":{"type":"boolean","description":"Whether this is a company goal","default":false},"departmentId":{"type":"string","format":"uuid","nullable":true,"description":"Department entity ID"},"departmentsVisibleToIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Array of department entity IDs that can view this goal"},"goalCycleId":{"type":"string","format":"uuid","nullable":true,"description":"Goal cycle entity ID"},"tagNames":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Array of tag names (max 5 tags)"},"isDraft":{"type":"boolean","description":"Whether to save as draft","default":false},"parentId":{"type":"string","format":"uuid","nullable":true,"description":"Parent goal entity ID"}}},"example":{"name":"Increase team productivity","description":"Improve team efficiency by 20% through process optimization","startDate":"2024-01-01","dueDate":"2024-12-31","priority":5,"private":false,"ownerIds":["550e8400-e29b-41d4-a716-446655440000"],"okrType":"key_result","amountType":"percent","startingAmount":0,"goalAmount":100,"companyGoal":false,"tagNames":["productivity","team"]}}}},"responses":{"200":{"description":"Goal created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Unique identifier for the goal"},"name":{"type":"string","description":"The name of the goal"},"description":{"type":"string","description":"Detailed description of the goal"},"startDate":{"type":"string","format":"date","description":"Start date for the goal"},"dueDate":{"type":"string","format":"date","description":"Due date for the goal"},"priority":{"type":"number","description":"Priority level (1-10)"},"private":{"type":"boolean","description":"Whether the goal is private"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"User owner(s) of the goal. One minimum is required."},"okrType":{"type":"string","enum":["objective","key_result"],"description":"OKR type, objective or key result"},"amountType":{"type":"string","enum":["percent","dollar","digit","binary"],"nullable":true,"description":"The progress amount type for okrType = key results."},"startingAmount":{"type":"number","nullable":true,"description":"Starting amount for key results. Required when goal type is key result and amountType is not binary"},"goalAmount":{"type":"number","nullable":true,"description":"Target amount for key results. Required when goal type is key result and amountType is not binary"},"companyGoal":{"type":"boolean","description":"Whether this is a company goal"},"departmentId":{"type":"string","format":"uuid","nullable":true,"description":"Department entity ID"},"goalCycleId":{"type":"string","format":"uuid","nullable":true,"description":"Goal cycle entity ID"},"isDraft":{"type":"boolean","description":"Whether the goal is a draft"},"parentId":{"type":"string","format":"uuid","nullable":true,"description":"Parent goal entity ID"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Tag ID"},"name":{"type":"string","description":"Tag name"}}},"description":"Array of tags"}}}}}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"validationError":{"summary":"Validation Error","value":{"error":"Invalid argument: Objectives cannot have an amount type"}},"generalError":{"summary":"General Error","value":{"error":"Error creating goal"}}}}}}}}},"/v1/goals/updates":{"get":{"operationId":"API_getAllGoalUpdates","description":"Retrieves all goal updates across all goals in the company with pagination support","tags":[],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"description":"Maximum number of updates to return"},{"name":"startingAfter","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Cursor for pagination - entity ID of the last item from the previous page"}],"responses":{"200":{"description":"Goal updates retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Unique identifier for the goal update"},"goalId":{"type":"number","description":"ID of the goal"},"id":{"type":"number","description":"ID of the goal update"},"comment":{"type":"string","description":"Comment about the goal progress"},"status":{"type":"string","enum":["green","amber","red"],"description":"Status of the goal"},"increment":{"oneOf":[{"type":"string"},{"type":"number"}],"nullable":true,"description":"Increment value from the goal update"}}}},"pageInfo":{"type":"object","properties":{"startCursor":{"type":"string","format":"uuid","nullable":true,"description":"Cursor pointing to the first item in the current page"},"endCursor":{"type":"string","format":"uuid","nullable":true,"description":"Cursor pointing to the last item in the current page"},"hasNextPage":{"type":"boolean","description":"Whether there are more items after this page"}}}}},"example":{"data":[{"entityId":"550e8400-e29b-41d4-a716-446655440000","goalId":123,"id":456,"comment":"Making good progress","status":"green","increment":"10.000"}],"pageInfo":{"startCursor":"550e8400-e29b-41d4-a716-446655440000","endCursor":"550e8400-e29b-41d4-a716-446655440000","hasNextPage":false}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Error retrieving all goal updates"}}}}}}},"/v1/goals/{id}":{"put":{"operationId":"API_updateGoal","description":"Updates an existing goal with the provided information","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Unique identifier of the goal to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","startDate","dueDate","ownerIds","tagNames","departmentsVisibleToIds","isDraft","parentId","goalCycleId","amountType","companyGoal","departmentId","description","okrType","priority","private","startingAmount","goalAmount"],"properties":{"name":{"type":"string","description":"The name of the goal"},"description":{"type":"string","description":"Detailed description of the goal"},"startDate":{"type":"string","format":"date","description":"Start date for the goal"},"dueDate":{"type":"string","format":"date","description":"Due date for the goal"},"priority":{"type":"number","minimum":1,"maximum":10,"description":"Priority level (1-10)"},"private":{"type":"boolean","description":"Whether the goal is private"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"User owner(s) of the goal. One minimum is required."},"okrType":{"type":"string","enum":["objective","key_result"],"description":"OKR type, objective or key result"},"amountType":{"type":"string","enum":["percent","dollar","digit","binary"],"nullable":true,"description":"The progress amount type for okrType = key results."},"startingAmount":{"type":"number","nullable":true,"description":"Starting amount for key results. Required when goal type is key result and amountType is not binary"},"goalAmount":{"type":"number","nullable":true,"description":"Target amount for key results. Required when goal type is key result and amountType is not binary"},"companyGoal":{"type":"boolean","description":"Whether this is a company goal"},"departmentId":{"type":"string","format":"uuid","nullable":true,"description":"Department entity ID"},"departmentsVisibleToIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Array of department entity IDs that can view this goal"},"goalCycleId":{"type":"string","format":"uuid","nullable":true,"description":"Goal cycle entity ID"},"tagNames":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Array of tag names (max 5 tags)"},"isDraft":{"type":"boolean","description":"Whether to save as draft"},"parentId":{"type":"string","format":"uuid","nullable":true,"description":"Parent goal entity ID"}}},"example":{"name":"Updated team productivity goal","description":"Updated description for team efficiency improvement","startDate":"2024-01-01","dueDate":"2024-12-31","priority":7,"private":false,"ownerIds":["550e8400-e29b-41d4-a716-446655440000"],"okrType":"key_result","amountType":"percent","startingAmount":0,"goalAmount":100,"companyGoal":false,"departmentsVisibleToIds":[],"tagNames":["productivity","team","updated"],"isDraft":false,"parentId":null}}}},"responses":{"200":{"description":"Goal updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Unique identifier for the goal"},"name":{"type":"string","description":"The name of the goal"},"description":{"type":"string","description":"Detailed description of the goal"},"startDate":{"type":"string","format":"date","description":"Start date for the goal"},"dueDate":{"type":"string","format":"date","description":"Due date for the goal"},"priority":{"type":"number","description":"Priority level (1-10)"},"private":{"type":"boolean","description":"Whether the goal is private"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"User owner(s) of the goal. One minimum is required."},"okrType":{"type":"string","enum":["objective","key_result"],"description":"OKR type, objective or key result"},"amountType":{"type":"string","enum":["percent","dollar","digit","binary"],"nullable":true,"description":"The progress amount type for okrType = key results."},"startingAmount":{"type":"number","nullable":true,"description":"Starting amount for key results. Required when goal type is key result and amountType is not binary"},"goalAmount":{"type":"number","nullable":true,"description":"Target amount for key results. Required when goal type is key result and amountType is not binary"},"companyGoal":{"type":"boolean","description":"Whether this is a company goal"},"departmentId":{"type":"string","format":"uuid","nullable":true,"description":"Department entity ID"},"goalCycleId":{"type":"string","format":"uuid","nullable":true,"description":"Goal cycle entity ID"},"isDraft":{"type":"boolean","description":"Whether the goal is a draft"},"parentId":{"type":"string","format":"uuid","nullable":true,"description":"Parent goal entity ID"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Tag ID"},"name":{"type":"string","description":"Tag name"}}},"description":"Array of tags"},"childGoals":{"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Child goal entity ID"},"name":{"type":"string","description":"Child goal name"}}},"description":"Array of child goals"},"addedTags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Tag ID"},"name":{"type":"string","description":"Tag name"}}},"description":"Array of newly added tags"},"removedTags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Tag ID"},"name":{"type":"string","description":"Tag name"}}},"description":"Array of removed tags"}}}}}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}},{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string"},"description":"Array of error messages"}}}]},"examples":{"validationError":{"summary":"Validation Error","value":{"error":"Invalid argument: Objectives cannot have an amount type"}},"generalError":{"summary":"General Error","value":{"error":"Error updating goal"}},"multipleErrors":{"summary":"Multiple Errors","value":{"errors":["Error 1","Error 2"]}}}}}}}}},"/v1/goals/{id}/update":{"post":{"operationId":"API_createGoalUpdate","description":"Creates a progress update for an existing goal","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Unique identifier of the goal to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["comment","status"],"properties":{"comment":{"type":"string","description":"Comment about the goal progress"},"status":{"type":"string","enum":["green","amber","red"],"description":"Status of the goal"},"increment":{"type":"number","description":"Relative increment to add to the goal's current progress. Mutually exclusive with absolute — exactly one must be provided."},"absolute":{"type":"number","description":"Absolute value to set the goal's progress to. Mutually exclusive with increment — exactly one must be provided."},"complete":{"type":"boolean","description":"Whether the goal is complete","default":false},"incomplete":{"type":"boolean","description":"Whether the goal is incomplete","default":false}}},"example":{"comment":"Making good progress on this goal","status":"green","increment":10,"complete":false,"incomplete":false}}}},"responses":{"200":{"description":"Goal update created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Unique identifier for the goal update"},"goalId":{"type":"number","description":"ID of the goal"},"id":{"type":"number","description":"ID of the goal update"},"comment":{"type":"string","description":"Comment about the goal progress"},"status":{"type":"string","enum":["green","amber","red"],"description":"Status of the goal"},"increment":{"oneOf":[{"type":"string"},{"type":"number"}],"nullable":true,"description":"Increment value from the goal update (can be string, number, null, or undefined)"}}}}}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}},"example":{"error":"Error creating goal update"}}}}}}},"/v1/goals/{id}/updates":{"get":{"operationId":"API_getGoalUpdates","description":"Retrieves all progress updates for a specific goal with pagination support","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Unique identifier of the goal"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"description":"Maximum number of updates to return"},{"name":"startingAfter","in":"query","required":false,"schema":{"type":"string","format":"uuid"},"description":"Cursor for pagination - entity ID of the last item from the previous page"}],"responses":{"200":{"description":"Goal updates retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","description":"Unique identifier for the goal update"},"goalId":{"type":"number","description":"ID of the goal"},"id":{"type":"number","description":"ID of the goal update"},"comment":{"type":"string","description":"Comment about the goal progress"},"status":{"type":"string","enum":["green","amber","red"],"description":"Status of the goal"},"increment":{"oneOf":[{"type":"string"},{"type":"number"}],"nullable":true,"description":"Increment value from the goal update"}}}},"pageInfo":{"type":"object","properties":{"startCursor":{"type":"string","format":"uuid","nullable":true,"description":"Cursor pointing to the first item in the current page"},"endCursor":{"type":"string","format":"uuid","nullable":true,"description":"Cursor pointing to the last item in the current page"},"hasNextPage":{"type":"boolean","description":"Whether there are more items after this page"}}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Error retrieving goal updates"}}}},"404":{"description":"Goal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Goal not found"}}}}}}},"/v1/me":{"get":{"operationId":"API_me","description":"Returns the current user the API token is associated with","tags":[],"parameters":[],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/question/{id}":{"get":{"operationId":"API_question","description":"Returns a review question with the given id. If cannot find review question, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Question"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/questionRevision/{id}":{"get":{"operationId":"API_questionRevision","description":"Returns a question revision with the given id. If cannot find question revision, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionRevision"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewCycle/{id}":{"get":{"operationId":"API_reviewCycle","description":"Returns a review cycle with the given id. If cannot find review cycle, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCycle"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewCycle/{id}/reviewees":{"get":{"operationId":"API_reviewCycle_reviewees","description":"Returns a paginated list of all reviewees in a review cycle","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Reviewee"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewCycle/{id}/reviews":{"get":{"operationId":"API_reviewCycle_reviews","description":"Returns a paginated list of all of the reviews for a review cycle","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}},{"in":"query","name":"orderDirection","required":false,"schema":{"$ref":"#/components/schemas/OrderDirection"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Review"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewCycles":{"get":{"operationId":"API_reviewCycles","description":"Returns a paginated list of all review cycles in Lattice","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewCycle"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewee/{id}":{"get":{"operationId":"API_reviewee","description":"Returns a reviewee with the given id. If cannot find reviewee, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reviewee"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/reviewee/{id}/reviews":{"get":{"operationId":"API_reviewee_reviews","description":"Returns a paginated list of all of the reviews for a reviewee","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Review"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/tag/{id}":{"get":{"operationId":"API_tag","description":"Retuns a tag with a given id. If cannot find tag, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tag"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/tags":{"get":{"operationId":"API_tags","description":"Returns a paginated list of all tags in Lattice","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/task/{id}":{"get":{"operationId":"API_task","description":"Retuns a task with a given id. If cannot find task, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/update/{id}":{"get":{"operationId":"API_update","description":"Returns an Update with the given id. If cannot find update, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Update"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/updates":{"get":{"operationId":"API_updates","description":"Returns a paginated list of all Updates in Lattice","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Update"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/user/{id}":{"get":{"operationId":"API_user","description":"Returns a user with the given id. If cannot find user, returns a 404","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"404":{"description":"Could not find the requested resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/user/{id}/customAttributes":{"get":{"operationId":"API_user_customAttributes","description":"Returns a list of the user's custom attributes","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserCustomAttribute"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/user/{id}/directReports":{"get":{"operationId":"API_user_directReports","description":"Returns a list of users that report to a user","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/user/{id}/goals":{"get":{"operationId":"API_user_goals","description":"Returns a paginated list of all of the goals owned by a user","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}},{"in":"query","name":"state","required":false,"schema":{"$ref":"#/components/schemas/GoalStateEnum"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Goal"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/user/{id}/tasks":{"get":{"operationId":"API_user_tasks","description":"Returns a paginated list of tasks in Lattice","tags":[],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}},"/v1/users":{"get":{"operationId":"API_users","description":"Returns a paginated list of users in Lattice. By default, returns active users. A 'status' parameter of 'null' will retrieve all users regardless of status.","tags":[],"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"startingAfter","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"$ref":"#/components/schemas/UserStatusEnumWithNullStringValue"}}],"responses":{"200":{"description":"The resolved response","content":{"application/json":{"schema":{"type":"object","required":["object","hasMore","data"],"properties":{"object":{"type":"string","enum":["list"]},"hasMore":{"type":"boolean","description":"Whether or not there are more elements available after this set. If false, this set comprises the end of the list."},"endingCursor":{"type":"string","description":"The cursor to use to get the next set of items in the list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"422":{"description":"Unprocessable - request is syntactically valid but cannot be processed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}},"500":{"description":"Server error while fetching resource","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Description of what went wrong"}}}}}}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"CustomAttribute":{"type":"object","properties":{"id":{"type":"string","description":"The API id of this object"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The URL of this object"},"name":{"type":"string","description":"The name of the custom attribute"},"type":{"type":"string","description":"The type of the custom attribute"},"visibility":{"$ref":"#/components/schemas/UserFieldVisibilitySettingEnumType","description":"Who can see this custom attribute"}},"required":["id","object","url","name","type","visibility"]},"UserFieldVisibilitySettingEnumType":{"type":"string","enum":["Admin","AdminManager","AdminManagerEmployee","Everyone"]},"CustomAttributeValue":{"type":"object","properties":{"id":{"type":"string","description":"The API id of this object"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The URL of this object"},"value":{"type":"string","description":"The displayed value of the custom attribute"}},"required":["id","object","url"]},"Department":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the department"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The url of this object"},"name":{"type":"string","description":"The name of the department"},"description":{"type":"string","description":"The description of the department. This text can be in markdown"},"createdAt":{"type":"integer","format":"int32","description":"The time the feedback was created"}},"required":["id","object","url","name","createdAt"]},"Feedback":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the feedback"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The url of this object"},"author":{"$ref":"#/components/schemas/ObjectReference","description":"The user that wrote the feedback. This field can be expanded with the `expand` parameter"},"targets":{"$ref":"#/components/schemas/FeedbackTargetsList","description":"The list of users that the feedback was about. This field can be expanded with the `expand` parameter"},"associatedValues":{"$ref":"#/components/schemas/CompanyValuesList","description":"The list of associated company values with this feedback"},"feedbackRequest":{"$ref":"#/components/schemas/FeedbackRequest","description":"The inciting request for this feedback. null if this feedback was unsolicited"},"body":{"type":"string","description":"The text of feedback given"},"competency":{"$ref":"#/components/schemas/ObjectReference","description":"The competency associated with the feedback request that this is in response to"},"visibility":{"type":"string","description":"Who can see this feedback"},"isPublic":{"type":"boolean","description":"Was this feedback shared in a way where anyone in the company can view it"},"createdAt":{"type":"integer","format":"int32","description":"The time the feedback was created"}},"required":["id","object","url","author","targets","associatedValues","body","isPublic","createdAt"]},"ObjectReference":{"type":"object","properties":{"id":{"type":"string","description":"The id of the referenced object"},"object":{"type":"string","description":"The type of the referenced object"},"url":{"type":"string","description":"The url of the referenced object"}},"required":["id","object","url"]},"User":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The URL of this object"},"manager":{"$ref":"#/components/schemas/ObjectReference","description":"The manager of the user"},"directReports":{"$ref":"#/components/schemas/ListReference","description":"The list of users that report to this user"},"department":{"$ref":"#/components/schemas/ObjectReference","description":"The department this user belongs to. This field can be expanded with the `expand` parameter"},"name":{"type":"string","description":"The full name of the user"},"preferredName":{"type":"string","description":"The preferred name of the user"},"email":{"type":"string","description":"The email of the user"},"tasks":{"$ref":"#/components/schemas/ListReference","description":"The list of pending tasks this user"},"title":{"type":"string","description":"The title of the user"},"status":{"$ref":"#/components/schemas/UserStatusEnum","description":"The active status of the user"},"startDate":{"type":"string","format":"date","description":"The day the user started"},"birthDate":{"type":"string","format":"date","description":"The day the user was born"},"timezone":{"type":"string","description":"The user's preferred timezone. This does NOT fallback to the company timezone."},"gender":{"$ref":"#/components/schemas/Gender","description":"The gender of the user"},"jobFunction":{"type":"string","description":"The job function of the user"},"jobLevel":{"type":"string","description":"The job level of the user"},"jobType":{"type":"string","description":"The job type of the user"},"isAdmin":{"type":"boolean","description":"Does this user have admin permissions in Lattice"},"externalUserId":{"type":"string","description":"The external user ID associated with the user (typically set by their HRIS)"},"createdAt":{"type":"integer","format":"int32","description":"The time the user was created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the user was last updated"},"customAttributes":{"$ref":"#/components/schemas/ListReference","description":"A list of the user's custom attributes"}},"required":["id","object","url","directReports","email","tasks","title","status","isAdmin","customAttributes"]},"ListReference":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"url":{"type":"string","description":"The url to retrieve the list"}},"required":["object","url"]},"UserStatusEnum":{"type":"string","description":"A lifecycle status for a user","enum":["ACTIVE","INVITED","CREATED","DEACTIVATED"]},"Gender":{"type":"string","description":"The gender a user can set on their profile","enum":["Female","Male","NonBinary","NotSet"]},"FeedbackTargetsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ObjectReference"},"description":"undefined"}},"required":["object","hasMore","data"]},"FeedbackExpandedTargetsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/User"},"description":"undefined"}},"required":["object","hasMore","data"]},"CompanyValuesList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CompanyValue"},"description":"undefined"}},"required":["object","hasMore","data"]},"CompanyValue":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the value"},"object":{"type":"string","description":"The type of this object"},"name":{"type":"string","description":"The name of the value"},"description":{"type":"string","description":"The human readable description of the value"}},"required":["id","object","name"]},"FeedbackRequest":{"type":"object","properties":{"object":{"type":"string","description":"The type of this object"},"author":{"$ref":"#/components/schemas/ObjectReference","description":"The user that requested the feedback"},"target":{"$ref":"#/components/schemas/ObjectReference","description":"The user that was requested to write the feedback. This should be the same user as the author of the feedback object"},"subject":{"$ref":"#/components/schemas/ObjectReference","description":"The user that the author asked the target to write about. This should be the same user as the target of the feedback object"},"body":{"type":"string","description":"The text of feedback request"},"competency":{"$ref":"#/components/schemas/ObjectReference","description":"The competency associated with this feedback request"},"fulfilledAt":{"type":"integer","format":"int32","description":"The time the feedback request was fulfilled. This should be the same time as the feedback createdAt"},"createdAt":{"type":"integer","format":"int32","description":"The time the feedback request was created"}},"required":["object","author","target","subject","body","createdAt"]},"Competency":{"type":"object","properties":{"id":{"type":"string","description":"The API ID of the Competency"},"object":{"type":"string","description":"The type of this object"},"name":{"type":"string","description":"The name of the competency"},"description":{"type":"string","description":"The description of the competency"}},"required":["id","object","name"]},"Goal":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The URL of this object"},"owners":{"$ref":"#/components/schemas/GoalOwnersList","description":"A list of the users who are the owners of this goal. This field can be expanded with the `expand` parameter"},"department":{"$ref":"#/components/schemas/ObjectReference","description":"The department is associated to. This will always be null unless this is a department goal. This field can be expanded with the `expand` parameter"},"parentGoal":{"$ref":"#/components/schemas/ObjectReference","description":"The parent of this goal in the goal tree. This field can be expanded with the `expand` parameter"},"childGoals":{"$ref":"#/components/schemas/GoalChildGoalsList","description":"The child goals (aka key results) of this goal in the goal tree. This field can be expanded with the `expand` parameter"},"tags":{"$ref":"#/components/schemas/GoalTagsList","description":"The tags associated with this goal. This field can be expanded with the `expand` parameter"},"name":{"type":"string","description":"The given name of the goal. This is often the objective"},"description":{"type":"string","description":"The markdown text description of the goal"},"state":{"$ref":"#/components/schemas/GoalStateEnum","description":"The lifecycle state a goal is in"},"status":{"$ref":"#/components/schemas/GoalStatusEnum","description":"The completion status of the goal"},"goalType":{"$ref":"#/components/schemas/GoalTypeEnum","description":"The type of this goal"},"okrType":{"$ref":"#/components/schemas/BaseGoalOKRTypeType","description":"The OKR type of this goal"},"priority":{"type":"integer","format":"int32","description":"The priority set for the goal"},"amountType":{"$ref":"#/components/schemas/GoalAmountType","description":"The type of the amount being tracked"},"startingAmount":{"type":"number","format":"float","description":"The starting amount when the goal was set. Should not change after goal is set (unless edited). null if the goal is binary"},"endingAmount":{"type":"number","format":"float","description":"The target amount to get to. Should not change after goal is set (unless edited). null if the goal is binary"},"currentAmount":{"type":"number","format":"float","description":"The current amount the goal is at. This will change over time as the goal is updated. Should no longer change once the goal is ended or archived"},"isPrivate":{"type":"boolean","description":"True if the goal is private and should only be shown to a subset of users"},"dueDate":{"type":"string","format":"date","description":"The scheduled date the goal should be completed by"},"startDate":{"type":"string","format":"date","description":"The date the goal starts"},"lastUpdatedAt":{"type":"integer","format":"int32","description":"The last time an update was made against this goal. This is different than the \"updatedAt\" field which is the last time the goal itself was changed"},"publishedAt":{"type":"integer","format":"int32","description":"The time the goal was taken active"},"completedAt":{"type":"integer","format":"int32","description":"The time the goal was archived"},"archivedAt":{"type":"integer","format":"int32","description":"The time the goal was archived"},"createdAt":{"type":"integer","format":"int32","description":"The time the goal was created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the goal was last updated"}},"required":["id","object","url","owners","childGoals","tags","name","state","goalType","isPrivate","dueDate","createdAt","updatedAt"]},"GoalOwnersList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ObjectReference"},"description":"undefined"}},"required":["object","hasMore","data"]},"GoalExpandedOwnersList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/User"},"description":"undefined"}},"required":["object","hasMore","data"]},"GoalChildGoalsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ObjectReference"},"description":"undefined"}},"required":["object","hasMore","data"]},"GoalExpandedChildGoalsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Goal"},"description":"undefined"}},"required":["object","hasMore","data"]},"GoalTagsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ObjectReference"},"description":"undefined"}},"required":["object","hasMore","data"]},"GoalExpandedTagsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Tag"},"description":"undefined"}},"required":["object","hasMore","data"]},"Tag":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the tag"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The URL of this object"},"name":{"type":"string","description":"The name of the tag"},"createdAt":{"type":"integer","format":"int32","description":"The time the tag was created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the tag was last updated"}},"required":["id","object","url","name","createdAt","updatedAt"]},"GoalStateEnum":{"type":"string","enum":["Draft","Active","Ended","Archived"]},"GoalStatusEnum":{"type":"string","enum":["NotUpdated","OnTrack","Progressing","OffTrack"]},"GoalTypeEnum":{"type":"string","enum":["Company","Department","Group","Individual"]},"BaseGoalOKRTypeType":{"type":"string","enum":["objective","key_result"]},"GoalAmountType":{"type":"string","enum":["Percent","Dollar","Digit","Binary"]},"Question":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the review"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The type of this object"},"body":{"type":"string","description":"The text of the question being asked"},"description":{"type":"string","description":"The description of the question. This text can be in markdown"},"hasFreeFormText":{"type":"boolean","description":"Does this question ask for a free form text response"},"ratingScale":{"type":"array","items":{"$ref":"#/components/schemas/Rating"},"description":"The qualitative rating scale for this question. null if this is not a rating question"},"choices":{"type":"array","items":{"type":"string"},"description":"The choices aviable for multiple choice/select. null if this is not a multiple choice question"},"isSelectionOptional":{"type":"boolean","description":"Whether the rating, multiple-choice, or multiple-select part of this question is optional. Null if this question has no such part (e.g. comment-only review questions, or non-review questions)."},"isCommentOptional":{"type":"boolean","description":"Whether the free-form comment part of this question is optional. Null if this question has no comment part (e.g. rating-only review questions, or non-review questions)."}},"required":["id","object","url","body","hasFreeFormText"]},"Rating":{"type":"object","properties":{"value":{"type":"integer","format":"int32","description":"The numeric rating value"},"descriptor":{"type":"string","description":"The qualitative descriptor for this rating"}},"required":["value","descriptor"]},"QuestionRevision":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the review"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The type of this object"},"body":{"type":"string","description":"The text of the question being asked"},"description":{"type":"string","description":"The description of the question. This text can be in markdown"},"ratingScale":{"type":"array","items":{"$ref":"#/components/schemas/Rating"},"description":"The qualitative rating scale for this question. null if this is not a rating question"},"choices":{"type":"array","items":{"type":"string"},"description":"The choices aviable for multiple choice/select. null if this is not a multiple choice question"},"isSelectionOptional":{"type":"boolean","description":"Whether the rating, multiple-choice, or multiple-select part of this question is optional. Null if this question has no such part (e.g. comment-only review questions, or non-review questions)."},"isCommentOptional":{"type":"boolean","description":"Whether the free-form comment part of this question is optional. Null if this question has no comment part (e.g. rating-only review questions, or non-review questions)."}},"required":["id","object","url","body"]},"ReviewCycle":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the review"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The type of this object"},"creator":{"$ref":"#/components/schemas/ObjectReference","description":"The creator of the review cycle"},"reviewees":{"$ref":"#/components/schemas/ListReference","description":"The list of users being reviewed in this cycle"},"reviews":{"$ref":"#/components/schemas/ListReference","description":"The list of all reviews in this review cycle"},"name":{"type":"string","description":"The given name of the review cycle"},"stage":{"$ref":"#/components/schemas/ReviewCycleStageTypeEnum","description":"The current stage of the review cycle"},"peerSelectionStartedAt":{"type":"integer","format":"int32","description":"The time peer selection was kicked off"},"reviewsStartedAt":{"type":"integer","format":"int32","description":"The time writting reviews was kicked off"},"reviewsEndedAt":{"type":"integer","format":"int32","description":"The time writting reviews was ended"},"createdAt":{"type":"integer","format":"int32","description":"The time the review cycle was created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the review cycle was last updated"},"autocalculatedWeightedScoresEnabled":{"type":"boolean","description":"Whether autocalculated weighted scores are enabled for this review cycle"}},"required":["id","object","url","reviewees","reviews","name","stage","createdAt","updatedAt"]},"ReviewCycleStageTypeEnum":{"type":"string","description":"The type of stages a review cycle can be in","enum":["Draft","PreLaunch","Launching","PeerSelection","CollectingReviews","Calibration","Ended"]},"Reviewee":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the reviewee"},"externalUserId":{"type":"string","description":"The external user id of the reviewee user"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The type of this object"},"reviewCycle":{"$ref":"#/components/schemas/ObjectReference","description":"The review cycle this reviewee is a part of"},"user":{"$ref":"#/components/schemas/ObjectReference","description":"The user associated with this reviewee"},"reviews":{"$ref":"#/components/schemas/ListReference","description":"The list of reviews for this reviewee"},"revieweeFacingPDFUrl":{"type":"string","description":"The URL of PDF that is shared with the reviewee. If the reviewee is not yet closed returns null"},"managerFacingPDFUrl":{"type":"string","description":"The URL of PDF that is shared with the reviewee's manager. This PDF may have more sensitive information than what is shared with the reviewee. If the reviewee is not yet closed returns null"},"closedAt":{"type":"integer","format":"int32","description":"The time the reviewee was \"closed\". A reviewee is closed when reviews can no longer be summited for the reviewee"},"esignatureGivenAt":{"type":"integer","format":"int32","description":"The time the reviewee gave their \"e-signature\" in Lattice. Confirming that they received their review packet"},"createdAt":{"type":"integer","format":"int32","description":"The time the reviewee was created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the reviewee was last updated"},"responsesReleasedAt":{"type":"integer","format":"int32","description":"The time the reviewee was last updated"},"weightedScore":{"$ref":"#/components/schemas/WeightedScore","description":"The weighted scores of the reviewee (both manual and auto-calculated)"}},"required":["id","object","url","reviewCycle","user","reviews","createdAt","updatedAt"]},"WeightedScore":{"type":"object","properties":{"manual":{"type":"number","format":"float","description":"The manually entered weighted score"},"autoCalculated":{"type":"number","format":"float","description":"The auto-calculated weighted score (precalibrated)"}}},"Review":{"type":"object","properties":{"isMostRecentDownwardReview":{"type":"boolean","description":"Whether this is the first downward review for the reviewee in this cycle"},"id":{"type":"string","description":"The api id of the review request"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The type of this object"},"reviewee":{"$ref":"#/components/schemas/ObjectReference","description":"The reviewee this request is about"},"reviewer":{"$ref":"#/components/schemas/ObjectReference","description":"The user writting this review"},"question":{"$ref":"#/components/schemas/ObjectReference","description":"The base question being asked to the reviewer"},"questionRevision":{"$ref":"#/components/schemas/ObjectReference","description":"The revision of the question being asked to the reviewer"},"competency":{"$ref":"#/components/schemas/ObjectReference","description":"The competency this question is possibly in reference to."},"goal":{"$ref":"#/components/schemas/ObjectReference","description":"The goal this quesion is in reference to. Most of the time this will be null."},"reviewType":{"$ref":"#/components/schemas/ReviewType","description":"The type/direction the review was given"},"response":{"$ref":"#/components/schemas/ReviewResponse","description":"The response given by the reviewer. Is null if the reviewer has yet to write a response or you don't have the permission to view the response"},"calibratedResponse":{"$ref":"#/components/schemas/ReviewResponse","description":"The calibrated response given by the reviewer. Is null if the reviewer has yet to write a calibrated response, calibreation is not used for this cycle, the question does not support calibration, or you don't have the permission to view the response"},"submittedAt":{"type":"integer","format":"int32","description":"The time the review request was finalized by the reviewer"},"declinedAt":{"type":"integer","format":"int32","description":"The time the reviewer marked the review request as \"declined\"."},"calibrationEnded":{"type":"boolean","description":"Whether the calibration phase has ended"},"parentReviewId":{"type":"string","description":"The ID of the parent review. Use this with V2 write APIs to draft, update, or submit."},"questionIndex":{"type":"integer","format":"int32","description":"The zero-based position of this question within the review template. Use this field to sort questions in their intended display order."}},"required":["id","object","url","reviewee","reviewer","question","questionRevision","reviewType"]},"ReviewType":{"type":"string","enum":["Self","Peer","Upward","Downward","ScoredAttribute"]},"ReviewResponse":{"type":"object","properties":{"ratingString":{"type":"string","description":"The numeric rating given by the reviewer as a string. null if the question is not a rating question"},"rating":{"type":"integer","format":"int32","description":"The numeric rating given by the reviewer. null if the question is not a rating question"},"choices":{"type":"array","items":{"type":"string"},"description":"The choices the review chose for the question. If the question only allows for one choice there will be only one choice in the list. null if the question was not multiple choice or select"},"comment":{"type":"string","description":"The free form text response given by the reiewer. null if the question did not contain free form text"},"commentSentiment":{"type":"number","format":"float","description":"The NLP sentiment of the free form text response. Is a number between 1 and 10. Where 1 is the lowest sentiment and 10 is the highest. null if the question did not ask for free form text or sentiment has not been calculated yet"},"createdAt":{"type":"integer","format":"int32","description":"The time the response was first created"},"updatedAt":{"type":"integer","format":"int32","description":"The time the response was last updated"}},"required":["createdAt","updatedAt"]},"OrderDirection":{"type":"string","description":"Order directions","enum":["asc","desc"]},"GiveFeedbackTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"feedbackRequest":{"$ref":"#/components/schemas/FeedbackRequest","description":"The inciting request for this feedback. null if this feedback was unsolicited"}},"required":["id","object","type","feedbackRequest"]},"UpdateGoalTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"goal":{"$ref":"#/components/schemas/Goal","description":"undefined"}},"required":["id","object","type"]},"PerformReviewTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"reviewCycle":{"$ref":"#/components/schemas/ReviewCycle","description":"undefined"},"totalRequestsCount":{"type":"integer","format":"int32","description":"undefined"},"completeRequestsCount":{"type":"integer","format":"int32","description":"undefined"},"dueAt":{"type":"object","description":"If the review cycle is on a schedule, the due date for this task will be the review cycle close date. If this isn't a scheduled review cycle, the value will be null."}},"required":["id","object","type","reviewCycle","totalRequestsCount","completeRequestsCount"]},"ConfirmReceivingPacketTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"reviewCycle":{"$ref":"#/components/schemas/ReviewCycle","description":"undefined"},"reviewee":{"$ref":"#/components/schemas/Reviewee","description":"undefined"}},"required":["id","object","type","reviewCycle","reviewee"]},"FinalizeReviewPacketTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"reviewCycle":{"$ref":"#/components/schemas/ReviewCycle","description":"undefined"},"reviewees":{"type":"array","items":{"$ref":"#/components/schemas/Reviewee"},"description":"undefined"}},"required":["id","object","type","reviewCycle","reviewees"]},"PerformPostScoringReviewTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"reviewCycle":{"$ref":"#/components/schemas/ReviewCycle","description":"undefined"},"reviewees":{"type":"array","items":{"$ref":"#/components/schemas/Reviewee"},"description":"undefined"}},"required":["id","object","type","reviewCycle","reviewees"]},"SelectPeersTaskType":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the user"},"object":{"type":"string","description":"The type of this object"},"type":{"type":"string","description":"The type of the task"},"reviewCycle":{"$ref":"#/components/schemas/ReviewCycle","description":"undefined"},"reviewees":{"type":"array","items":{"$ref":"#/components/schemas/Reviewee"},"description":"undefined"},"dueAt":{"type":"object","description":"If the review cycle is on a schedule, the due date for this task will be the review cycle close date. If this isn't a scheduled review cycle, the value will be null."}},"required":["id","object","type","reviewCycle","reviewees"]},"Update":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the update"},"object":{"type":"string","description":"The type of this object"},"url":{"type":"string","description":"The url of this object"},"author":{"$ref":"#/components/schemas/ObjectReference","description":"The user that wrote the update. This field can be expanded with the `expand` parameter"},"manager":{"$ref":"#/components/schemas/ObjectReference","description":"The user that will review this update. This field can be expanded with the `expand` parameter"},"responses":{"$ref":"#/components/schemas/UpdateQuestionsList","description":"The list of questions and answers in this update"},"sentiment":{"$ref":"#/components/schemas/UpdateSentimentResponse","description":"The associated sentiment given with this update"},"isPublic":{"type":"boolean","description":"Was this update shared in a way where anyone in the company can view it"},"publishedAt":{"type":"integer","format":"int32","description":"The time the update was published"},"reviewedAt":{"type":"integer","format":"int32","description":"The time the update was reviewed by the manager"},"createdAt":{"type":"integer","format":"int32","description":"The time the update was created"}},"required":["id","object","url","author","manager","responses","isPublic","createdAt"]},"UpdateQuestionsList":{"type":"object","properties":{"object":{"type":"string","description":"undefined"},"hasMore":{"type":"boolean","description":"undefined"},"endingCursor":{"type":"string","description":"undefined"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UpdateReponse"},"description":"undefined"}},"required":["object","hasMore","data"]},"UpdateReponse":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the value"},"object":{"type":"string","description":"The type of this object"},"question":{"type":"string","description":"The question that was asked by the manager"},"answer":{"type":"string","description":"(markdown) The response given by the update author"}},"required":["id","object","question"]},"UpdateSentimentResponse":{"type":"object","properties":{"id":{"type":"string","description":"The api id of the value"},"object":{"type":"string","description":"The type of this object"},"rating":{"type":"integer","format":"int32","description":"The sentiment rating submitted"}},"required":["id","object","rating"]},"UserCustomAttribute":{"type":"object","properties":{"customAttribute":{"$ref":"#/components/schemas/CustomAttribute","description":"undefined"},"customAttributeValue":{"$ref":"#/components/schemas/CustomAttributeValue","description":"undefined"}},"required":["customAttribute","customAttributeValue"]},"UserStatusEnumWithNullStringValue":{"type":"string","description":"A lifecycle status for a user or null","enum":["ACTIVE","INVITED","CREATED","DEACTIVATED","NULL"]},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}},"x-readme":{"explorer-enabled":false,"proxy-enabled":false,"samples-enabled":true}}