{"openapi":"3.0.1","info":{"title":"Rocketlane API","description":"Rocketlane API","version":"1.0"},"servers":[{"url":"https://api.rocketlane.com/api","description":"Production"},{"url":"https://api.nitro.run/api","description":"Staging"},{"url":"https://project.api.orbits.run/api","description":"Orbits"}],"security":[{"api-key":["read : write"]}],"tags":[{"name":"Conversations","description":"Endpoints for conversations resource"},{"name":"Invoices","description":"Endpoints for invoices resource"},{"name":"Fields","description":"Endpoints for fields resource"},{"name":"Resource Allocations","description":"Endpoints for resource allocation resource"},{"name":"Time-Offs","description":"Endpoints for time-offs resource"},{"name":"Comments","description":"Endpoints for comments resource"},{"name":"Time Tracking","description":"Endpoints for time entries and timesheets"},{"name":"Space Documents","description":"Endpoints for space tabs resource"},{"name":"Tasks","description":"Endpoints for tasks resource"},{"name":"Projects","description":"Endpoints for projects resource"},{"name":"Phases","description":"Endpoints for phases resource"},{"name":"Users","description":"Endpoints for users resource"},{"name":"Spaces","description":"Endpoints for space resource"}],"paths":{"/1.0/time-entries/{timeEntryId}":{"get":{"tags":["Time Tracking"],"summary":"Get a time entry","description":"This endpoint can be used to get a time entry using its ID. This API returns the time entry object that matches the ID. The `includeFields` param can be used to customise the response.","operationId":"get-time-entry","parameters":[{"name":"timeEntryId","in":"path","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","sourceType","deleted","status","submittedBy","submittedAt","approvedBy","approvedAt","rejectedBy","rejectedAt","costRate","billRate"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntryPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Time Tracking"],"summary":"Update a time entry","description":"This endpoint can be used to update a time entry using its ID. To ensure that the total time for all the time entries added for that date does not exceed 24 hours, the fields `date` and `minutes` are mandatory. The properties `activityName`, `notes`, `billable` and `minutes` can be updated using this endPoint. This API returns the updated time entry object.","operationId":"update-time-entry","parameters":[{"name":"timeEntryId","in":"path","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","sourceType","deleted","status","submittedBy","submittedAt","approvedBy","approvedAt","rejectedBy","rejectedAt","costRate","billRate"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntryPublicAPIUpdateRequest"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntryPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}},"delete":{"tags":["Time Tracking"],"summary":"Delete a time entry","description":"This endpoint can be used to delete a time entry using its ID. Upon successful deletion, _`HTTP status 204` - no content_ is returned as a response with no response body.","operationId":"delete-time-entry","parameters":[{"name":"timeEntryId","in":"path","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}":{"get":{"tags":["Tasks"],"summary":"Get task by Id","operationId":"get-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated identifier, which can be used to identify the task globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual","type","phase","assignees","followers","dependencies","billable","csatEnabled","priority","timeEntryCategory","financialsBudget","taskPrivateNote","parent","externalReferenceId"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Tasks"],"summary":"Update task by Id","operationId":"update-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual","type","phase","assignees","followers","dependencies","billable","csatEnabled","priority","timeEntryCategory","financialsBudget","taskPrivateNote","parent","externalReferenceId"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicUpdateAPIRequestEntity"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete task by Id","operationId":"delete-task","parameters":[{"name":"taskId","in":"path","description":"The ID of the task object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/spaces/{spaceId}":{"get":{"tags":["Spaces"],"summary":"Get space by Id","operationId":"get-space","parameters":[{"name":"spaceId","in":"path","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePublicResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Spaces"],"summary":"Update space by Id","operationId":"update-space","parameters":[{"name":"spaceId","in":"path","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePublicUpdateAPIRequestEntity"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePublicResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Spaces"],"summary":"Delete space by Id","operationId":"delete-space","parameters":[{"name":"spaceId","in":"path","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/space-documents/{spaceDocumentId}":{"get":{"tags":["Space Documents"],"summary":"Get space document by Id","operationId":"get-space-document","parameters":[{"name":"spaceDocumentId","in":"path","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceTabPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Space Documents"],"summary":"Update space document by Id","operationId":"update-space-document","parameters":[{"name":"spaceDocumentId","in":"path","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceTabUpdatePublicRequestAPIEntity"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceTabPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Space Documents"],"summary":"Delete space document by Id","operationId":"delete-space-document","parameters":[{"name":"spaceDocumentId","in":"path","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}":{"get":{"tags":["Projects"],"summary":"Get project by Id","operationId":"get-project","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["annualizedRecurringRevenue","projectFee","allocatedHours","allocatedMinutes","budgetedHours","percentageBudgetedHoursConsumed","percentageBudgetConsumed","billableHours","billableMinutes","nonBillableHours","nonBillableMinutes","trackedHours","trackedMinutes","progressPercentage","startDateActual","dueDateActual","currentPhase","autoAllocation","sources","inferredProgress","plannedDuration","projectAgeInDays","customersInvited","customersJoined","externalReferenceId","metrics","remainingMinutes","remainingHours"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Projects"],"summary":"Update project by Id","operationId":"update-project","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["annualizedRecurringRevenue","projectFee","allocatedHours","allocatedMinutes","budgetedHours","percentageBudgetedHoursConsumed","percentageBudgetConsumed","billableHours","billableMinutes","nonBillableHours","nonBillableMinutes","trackedHours","trackedMinutes","progressPercentage","startDateActual","dueDateActual","currentPhase","autoAllocation","sources","inferredProgress","plannedDuration","projectAgeInDays","customersInvited","customersJoined","externalReferenceId","metrics","remainingMinutes","remainingHours"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicUpdateAPIRequestEntity"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}},"delete":{"tags":["Projects"],"summary":"Delete project by Id","operationId":"delete-project","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/phases/{phaseId}":{"get":{"tags":["Phases"],"summary":"Get phase by Id","operationId":"get-phase","parameters":[{"name":"phaseId","in":"path","description":"The `identifier` of the phase is generated by the system and can be used to identify the phase globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhasePublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Phases"],"summary":"Update phase by Id","operationId":"update-phase","parameters":[{"name":"phaseId","in":"path","description":"The `identifier` of the phase is generated by the system and can be used to identify the phase globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhasePublicUpdateAPIRequestEntity"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhasePublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Phases"],"summary":"Delete phase by Id","operationId":"delete-phase","parameters":[{"name":"phaseId","in":"path","description":"The `identifier` of the phase is generated by the system and can be used to identify the phase globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/fields/{fieldId}":{"get":{"tags":["Fields"],"summary":"Get field by Id","operationId":"get-field","parameters":[{"name":"fieldId","in":"path","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which field properties should be returned in the response body by selecting from the drop down. To get the relevant field properties, use comma separated values. If this field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["options"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the field properties should be returned in the response body. If the field is left blank, the default field properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldModelPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Fields"],"summary":"Update field by Id","operationId":"update-field","parameters":[{"name":"fieldId","in":"path","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which field properties should be returned in the response body by selecting from the drop down. To get the relevant field properties, use comma separated values. If this field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["options"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the field properties should be returned in the response body. If the field is left blank, the default field properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldUpdatePublicRequest"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldModelPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Fields"],"summary":"Delete field by Id","operationId":"delete-field","parameters":[{"name":"fieldId","in":"path","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string","example":"No Content","default":"No Content"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/conversations/{conversationId}":{"get":{"tags":["Conversations"],"summary":"Get conversation","description":"The Get Conversation API allows users to retrieve the conversation history of a specific project using its unique project ID. This endpoint provides a structured and paginated response containing all messages exchanged within the project's conversation thread. This API is designed to facilitate seamless access to project discussions, enabling teams to track conversations, review past messages, and maintain contextual awareness of discussions related to their projects. It is particularly useful for integrations that need to display or analyze communication history.","operationId":"get-conversation","parameters":[{"name":"conversationId","in":"path","description":"The ID of the conversation object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["members"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Conversations"],"summary":"Update conversation","description":"The Update Conversation API allows users to modify an existing conversation within a specified project using its unique project ID. This endpoint enables updates to message content, metadata, or status, ensuring that project discussions remain accurate and up to date. This API is designed for use cases where message edits, status updates, or other modifications need to be applied to an ongoing project conversation. It is particularly useful for integrations that require real-time collaboration updates, correction of message errors, or status adjustments for read/unread tracking.","operationId":"update-conversation","parameters":[{"name":"conversationId","in":"path","description":"The ID of the conversation object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["members"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPublicUpdateRequestAPI"}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Conversations"],"summary":"Delete conversation","description":"The Delete Conversation API allows users to remove a conversation from a specific project using its unique project ID. This endpoint permanently deletes the conversation and its associated messages, ensuring that project discussions can be managed and maintained according to organizational policies. Upon successful deletion, the API returns an HTTP 204 No Content response, indicating that the conversation has been successfully removed without returning a response body.","operationId":"delete-conversation","parameters":[{"name":"conversationId","in":"path","description":"The ID of the conversation object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/comments/{commentId}":{"get":{"tags":["Comments"],"summary":"Get comment","description":"The Get Comment API allows users to retrieve the details of a specific comment using its unique commentId. This endpoint provides structured data on the comment, including its content, author details, timestamps, and associated project or conversation. This API is particularly useful for applications that need to fetch and display specific comments within a project or conversation thread.","operationId":"get-comment","parameters":[{"name":"commentId","in":"path","description":"The ID of the comment object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["attachments"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"put":{"tags":["Comments"],"summary":"Update comment","description":"The Update Comment API allows users to modify an existing comment within a conversation using its unique commentId. This endpoint enables updates to the comment content, status, or metadata while preserving its original context within the conversation. This API is particularly useful for making corrections, appending additional information, or updating comment visibility.","operationId":"update-comment","parameters":[{"name":"commentId","in":"path","description":"The ID of the comment object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentPublicUpdateRequestAPIEntity"}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Comments"],"summary":"Delete comment","description":"The Delete Comment API allows users to permanently remove a comment from a conversation using its unique commentId. This endpoint is useful for maintaining conversation hygiene, removing outdated or inappropriate comments, and managing project discussions effectively. Upon successful deletion, the API returns an HTTP 204 No Content response, indicating that the comment has been successfully removed with no response body.","operationId":"delete-comment","parameters":[{"name":"commentId","in":"path","description":"The ID of the message object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/time-offs":{"get":{"tags":["Time-Offs"],"summary":"Get all time-offs","operationId":"get-all-timeoffs","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["note","notifyUsers"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["startDate","endDate","createdAt"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"startDate.gt","in":"query","description":"Returns responses with start dates greater than the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.eq","in":"query","description":"Returns responses with start dates equal to the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.lt","in":"query","description":"Returns responses with start dates lesser than the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.ge","in":"query","description":"Returns responses with start dates greater than or equal to the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.le","in":"query","description":"Returns responses with start dates lesser than or equal to the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate.gt","in":"query","description":"Returns responses with start dates greater than the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate.eq","in":"query","description":"Returns responses with start dates equal to the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate.lt","in":"query","description":"Returns responses with start dates lesser than the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate.ge","in":"query","description":"Returns responses with start dates greater than or equal to the specified date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate.le","in":"query","description":"Returns responses with start dates lesser than or equal to the specified date.e.","schema":{"type":"string","example":"2023-03-28"}},{"name":"type.eq","in":"query","description":"Returns responses with time-offs that exactly match the specified time off type.","style":"form","explode":false,"schema":{"maxItems":1,"type":"array","items":{"type":"string","enum":["FULL_DAY","HALF_DAY","CUSTOM"]}}},{"name":"type.oneOf","in":"query","description":"Returns responses with time-offs that matches one of the specified time off type.","style":"form","explode":false,"schema":{"maxItems":3,"type":"array","items":{"type":"string","enum":["FULL_DAY","HALF_DAY","CUSTOM"]}}},{"name":"type.noneOf","in":"query","description":"Returns responses with time-offs that matches none of the specified time off type.","style":"form","explode":false,"schema":{"maxItems":3,"type":"array","items":{"type":"string","enum":["FULL_DAY","HALF_DAY","CUSTOM"]}}},{"name":"userId.eq","in":"query","description":"Returns responses with time-offs that exactly match the specified user id.","schema":{"type":"string","example":1}},{"name":"userId.oneOf","in":"query","description":"Returns responses with time-offs that matches one of the specified user id.","schema":{"type":"string","example":"1,2,3"}},{"name":"userId.noneOf","in":"query","description":"Returns responses with time-offs that matches none of the specified user id.","schema":{"type":"string","example":"1,2"}},{"name":"emailId.eq","in":"query","description":"Returns responses with time-offs that exactly match the specified user's email id.","schema":{"type":"string","example":"dev@rocketlane.com"}},{"name":"emailId.oneOf","in":"query","description":"Returns responses with time-offs that matches one of the specified user's email ids.","schema":{"type":"string","example":"dev@rocketlane.com,support@rocketlane.com"}},{"name":"emailId.noneOf","in":"query","description":"Returns responses with time-offs that matches none of the specified user's email ids.","schema":{"type":"string","example":"test@rocketlane.com,support@rocketlane.com"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseTimeOffs"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Time-Offs"],"summary":"Create a time-off","operationId":"create-timeoff","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["note","notifyUsers"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeOffPublicAPIRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeOffPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}}},"/1.0/time-entries":{"get":{"tags":["Time Tracking"],"summary":"Get all time entries","description":"This endpoint can be used to get all time entries. You can refine your search by adding filters. Filters are given as query parameters and have a defined structure: key is `field.operator` and value is `value`. For instance: `date.gt=2023-02-11`, `minutes.eq=250`. Apart from filters, you can add `sortBy` combined with `sortOrder` to sort the time entries. The response body is paginated and you can control the pagination using the `limit` and `pageToken` parameters.","operationId":"get-all-time-entries","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","sourceType","deleted","status","submittedBy","submittedAt","approvedBy","approvedAt","rejectedBy","rejectedAt","costRate","billRate"]}}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field. Valid fields to perform sortBy are: `MINUTES`, `DATE`, `ID` and `BILLABLE`.","schema":{"type":"string","enum":["minutes","date","id","billable"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"date.gt","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of time-entries that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.lt","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.ge","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.le","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"project.eq","in":"query","description":"You can use this param to specify some project Id and the responses will contain exact matches of time-entries that match the given project.","deprecated":true,"schema":{"type":"number","example":201}},{"name":"projectId.eq","in":"query","description":"You can use this param to specify some project Id and the responses will contain exact matches of time-entries that match the given project.","schema":{"type":"number","example":201}},{"name":"task.eq","in":"query","description":"You can use this param to specify some task Id and the responses will contain exact matches of time-entries that match the given task.","deprecated":true,"schema":{"type":"number","example":202}},{"name":"taskId.eq","in":"query","description":"You can use this param to specify some task Id and the responses will contain exact matches of time-entries that match the given task.","schema":{"type":"number","example":202}},{"name":"taskId.oneOf","in":"query","description":"You can use this param to provide ids of task and the responses will contain time entries whose time entries that contains the given task ids","schema":{"type":"number","example":202}},{"name":"taskId.noneOf","in":"query","description":"You can use this param to provide ids of task and the responses will contain time entries whose time entries that contains the given task ids","schema":{"type":"number","example":202}},{"name":"projectPhase.eq","in":"query","description":"You can use this param to specify some project phase Id and the responses will contain exact matches of time-entries that match the given phase.","schema":{"type":"number","example":210}},{"name":"category.eq","in":"query","description":"You can use this param to specify some category Id and the responses will contain exact matches of time-entries that match the given category.","schema":{"type":"number","example":5}},{"name":"user.eq","in":"query","description":"You can use this param to specify some user Id and the responses will contain exact matches of time-entries that belong to the user with the given user Id.","schema":{"type":"number","example":5}},{"name":"emailId.eq","in":"query","description":"You can use this param to specify some email Id and the responses will contain exact matches of time-entries that belong to the user with the given email Id.","schema":{"type":"string","example":"john.doe@rocketlane.com"}},{"name":"emailId.cn","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that contain the given text in their email name.","schema":{"type":"string","example":"john.doe"}},{"name":"emailId.nc","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that _DO NOT_ contain the given text in their email Id.","schema":{"type":"string","example":"john.doe"}},{"name":"sourceType.eq","in":"query","description":"You can use this param to specify a source type for the time entries and the responses will contain exact matches of time-entries that have the given source type.","schema":{"type":"string","enum":["GOOGLE_CALENDAR","OUTLOOK_CALENDAR","TASK","PROJECT","PHASE","ADHOC","MILESTONE"]}},{"name":"activityName.eq","in":"query","description":"You can use this param to specify some activity name and the responses will contain exact matches of time-entries that match the given activity name.","schema":{"type":"string","example":"Pre-Sales Campaign"}},{"name":"activityName.cn","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that contain the given text in their activity name.","schema":{"type":"string","example":"Sales"}},{"name":"activityName.nc","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that _DO NOT_ contain the given text in their activity name.","schema":{"type":"string","example":"Sales"}},{"name":"approvalStatus.eq","in":"query","description":"You can use this param to specify an approval status for the time entries and the responses will contain exact matches of time-entries that have the given approval type.","schema":{"type":"string","enum":["NOT_SUBMITTED","SUBMITTED","APPROVED","REJECTED"]}},{"name":"submittedBy.eq","in":"query","description":"You can use this param to specify a submitter for the time entries and the response will contain time-entries submitted by the given user.","schema":{"type":"number","example":5}},{"name":"submittedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries submitted at the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"submittedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries submitted after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"submittedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries submitted at or after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"submittedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries submitted before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"submittedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries submitted at or before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"approvedBy.eq","in":"query","description":"You can use this param to specify an approver for the time entries and the response will contain time-entries approved by the given user.","schema":{"type":"number","example":5}},{"name":"approvedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries approved at the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"approvedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries approved after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"approvedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries approved at or after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"approvedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries approved before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"approvedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries approved at or before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"rejectedBy.eq","in":"query","description":"You can use this param to specify a rejecter for the time entries and the response will contain time-entries rejected by the given user.","schema":{"type":"number","example":5}},{"name":"rejectedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries rejected at the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"rejectedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries rejected after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"rejectedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries rejected at or after the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"rejectedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries rejected before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"rejectedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries rejected at or before the given timestamp.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"billable.eq","in":"query","description":"You can use this param to specify the billable flag for the time entries and the responses will contain exact matches of time-entries that have the given billable.","schema":{"type":"boolean","example":true}},{"name":"includeDeleted.eq","in":"query","description":"You can use this parameter to specify whether responses will include the deleted time entries.","schema":{"type":"boolean","example":false}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are greater than the given time entries created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of time entries that match the given time entries created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are less than the given time entries created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are greater than or equal to the given time entries created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are less than or equal to the given time entries created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are greater than the given time entries updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of time entries that match the given time entries updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are less than the given time entries updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are greater than or equal to the given time entries updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain time entries whose date are less than or equal to the given time entries updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseTimeEntries"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Time Tracking"],"summary":"Create a time entry","description":"This endpoint can be used to create a time entry. It is mandatory to provide values for these three properties: `date`, `minutes` and the source of the time entry, which can be either one of `activityName`, `task`, `projectPhase` or `project`. The `activityName` param can be used to track time against adhoc activities. Providing multiple sources as input will result in an error. This API returns the created time entry object.","operationId":"create-time-entry","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","sourceType","deleted","status","submittedBy","submittedAt","approvedBy","approvedAt","rejectedBy","rejectedAt","costRate","billRate"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntryPublicAPIRequest"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntryPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}}},"/1.0/tasks/{taskId}/remove-followers":{"post":{"tags":["Tasks"],"summary":"Remove followers from a task by Id","operationId":"remove-followers-from-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskAddFollowersPublicRequest"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAssigneeAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/remove-dependencies":{"post":{"tags":["Tasks"],"summary":"Remove dependencies from a task by Id","operationId":"remove-dependencies-from-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDependencyPublicAPI"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicDependenciesAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/remove-assignees":{"post":{"tags":["Tasks"],"summary":"Remove assignees from a task by Id","operationId":"remove-assignees-from-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskAssigneePublicRequestAPI"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAssigneeAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/move-phase":{"post":{"tags":["Tasks"],"summary":"Move a task to the phase by Id","operationId":"move-task-to-given-phase","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MovePhasePublicAPI"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicMovePhaseAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/add-followers":{"post":{"tags":["Tasks"],"summary":"Add followers to a task by Id","operationId":"add-followers-to-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskAddFollowersPublicRequest"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAssigneeAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/add-dependencies":{"post":{"tags":["Tasks"],"summary":"Add dependencies to a task by Id","operationId":"add-dependencies-to-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDependencyPublicAPI"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicDependenciesAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks/{taskId}/add-assignees":{"post":{"tags":["Tasks"],"summary":"Add assignees to a task by Id","operationId":"add-assignee-to-task","parameters":[{"name":"taskId","in":"path","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskAssigneePublicRequestAPI"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAssigneeAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/tasks":{"get":{"tags":["Tasks"],"summary":"Get all tasks","operationId":"get-all-tasks","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual","type","phase","assignees","followers","dependencies","billable","csatEnabled","priority","timeEntryCategory","financialsBudget","taskPrivateNote","parent","externalReferenceId"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["taskName","startDate","dueDate","startDateActual","dueDateActual"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"startDate.gt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of tasks that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.lt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.ge","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.le","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.gt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of tasks that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.lt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.ge","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.le","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.gt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of tasks that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.lt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.ge","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.le","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.gt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of tasks that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.lt","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.ge","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.le","in":"query","description":"You can use this param to specify some date and the responses will contain tasks whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are greater than the given tasks created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of tasks that match the given tasks created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are less than the given tasks created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are greater than or equal to the given tasks created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are less than or equal to the given tasks created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are greater than the given tasks updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of tasks that match the given tasks updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are less than the given tasks updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are greater than or equal to the given tasks updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain tasks whose date are less than or equal to the given tasks updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"projectId.eq","in":"query","description":"You can use this param to specify some value as project id and the responses will contain exact matches of tasks that match the given value.","schema":{"type":"number","example":10000}},{"name":"phaseId.eq","in":"query","description":"You can use this param to specify some value as phase id and the responses will contain exact matches of tasks that match the given value.","schema":{"type":"number","example":10000}},{"name":"taskName.eq","in":"query","description":"You can use this param to specify some task name and the responses will contain exact matches of tasks that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"taskName.cn","in":"query","description":"You can use this param to specify some task name and the responses will contain matches of tasks that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"taskName.nc","in":"query","description":"You can use this param to specify some task name and the responses will not contain matches of tasks that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"effortInMinutes.eq","in":"query","description":"You can use this param to specify some value as effort and the responses will contain exact matches of tasks that match the given value.","schema":{"type":"number","example":10000}},{"name":"effortInMinutes.gt","in":"query","description":"You can use this param to specify some value as effort and the responses will contain exact matches of tasks greater than that of the given value.","schema":{"type":"number","example":10000}},{"name":"effortInMinutes.lt","in":"query","description":"You can use this param to specify some value as effort and the responses will contain exact matches of tasks lesser than that of the given value.","schema":{"type":"number","example":10000}},{"name":"progress.eq","in":"query","description":"You can use this param to specify some value as progress and the responses will contain exact matches of tasks that match the given value.","schema":{"maximum":100,"minimum":0,"type":"number","example":55}},{"name":"progress.gt","in":"query","description":"You can use this param to specify some value as progress and the responses will contain exact matches of tasks greater than that of the given value.","schema":{"maximum":100,"minimum":0,"type":"number","example":55}},{"name":"progress.lt","in":"query","description":"You can use this param to specify some value as progress and the responses will contain exact matches of tasks lesser than that of the given value.","schema":{"maximum":100,"minimum":0,"type":"number","example":55}},{"name":"includeArchive.eq","in":"query","description":"You can use this parameter to specify whether responses will include the archived tasks.","schema":{"type":"boolean","example":false}},{"name":"task.status.eq","in":"query","description":"You can use this param to provide status and the responses will contain tasks that are equal to the given status","schema":{"type":"string","example":1}},{"name":"task.status.oneOf","in":"query","description":"You can use this param to provide statuses and the responses will contain tasks that contains the given status","schema":{"type":"string","example":"1,2"}},{"name":"task.status.noneOf","in":"query","description":"You can use this param to provide statuses and the responses will not contain tasks that are equal to the given status","schema":{"type":"string","example":"1,2"}},{"name":"project.status.eq","in":"query","description":"You can use this param to provide status of project and the responses will contain tasks whose project's status are equal to the given status","schema":{"type":"string","example":1}},{"name":"project.status.oneOf","in":"query","description":"You can use this param to provide statuses of project and the responses will contain tasks whose project's statuses that contains the given status","schema":{"type":"string","example":"1,2"}},{"name":"project.status.noneOf","in":"query","description":"You can use this param to provide statuses of project and the responses will not contain tasks whose project's statuses are equal to the given status(es)","schema":{"type":"string","example":"1,2"}},{"name":"externalReferenceId.eq","in":"query","description":"You can use this param to provide external reference id and the responses will contain tasks that are equal to the given id","schema":{"type":"string","example":"task_1818910101"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseTasks"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Tasks"],"summary":"Create a task","operationId":"create-task","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual","type","phase","assignees","followers","dependencies","billable","csatEnabled","priority","timeEntryCategory","financialsBudget","taskPrivateNote","parent","externalReferenceId"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAPIRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}}},"/1.0/spaces":{"get":{"tags":["Spaces"],"summary":"Get all spaces","operationId":"get-all-spaces","parameters":[{"name":"projectId","in":"query","description":"You can use this param to specify some value as project id and the responses will contain exact matches of spaces that match the given value.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["spaceName"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"spaceName.eq","in":"query","description":"You can use this param to specify some space name and the responses will contain exact matches of spaces that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"spaceName.cn","in":"query","description":"You can use this param to specify some space name and the responses will contain matches of spaces that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"spaceName.nc","in":"query","description":"You can use this param to specify some space name and the responses will not contain matches of spaces that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are greater than the given spaces created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of spaces that match the given spaces created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are less than the given spaces created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are greater than or equal to the given spaces created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are less than or equal to the given spaces created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are greater than the given spaces updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of spaces that match the given spaces updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are less than the given spaces updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are greater than or equal to the given spaces updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain spaces whose date are less than or equal to the given spaces updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseSpaces"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Spaces"],"summary":"Create a space","operationId":"create-space","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePublicRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePublicResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/space-documents":{"get":{"tags":["Space Documents"],"summary":"Get all space documents","operationId":"get-all-space-documents","parameters":[{"name":"projectId","in":"query","description":"You can use this param to specify some value as project id and the responses will contain exact matches of space documents that match the given value.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["spaceTabName"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"spaceDocumentName.eq","in":"query","description":"You can use this param to specify some space document name and the responses will contain exact matches of space documents that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"spaceDocumentName.cn","in":"query","description":"You can use this param to specify some space document name and the responses will contain matches of space documents that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"spaceDocumentName.nc","in":"query","description":"You can use this param to specify some space document name and the responses will not contain matches of space documents that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are greater than the given space documents created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of space documents that match the given space documents created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are less than the given space documents created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are greater than or equal to the given space documents created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are less than or equal to the given space documents created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are greater than the given space documents updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of space documents that match the given space documents updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are less than the given space documents updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are greater than or equal to the given space documents updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain space documents whose date are less than or equal to the given space documents updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"spaceId.eq","in":"query","description":"You can use this param to specify some value as space id and the responses will contain exact matches of space documents that match the given value.","schema":{"type":"number","example":10000}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseSpaceTabs"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Space Documents"],"summary":"Create a space document","operationId":"create-space-document","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceTabPublicRequestAPIEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceTabPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/projects/{projectId}/unassign-placeholders":{"post":{"tags":["Projects"],"summary":"Un assign placeholders from an user in a project","operationId":"unassign-placeholders","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlaceholderRemoveMappingPublicAPIRequestEntity"}}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicPlaceholdersAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/remove-members":{"post":{"tags":["Projects"],"summary":"Remove members from a project","operationId":"remove-members","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMembersPublicAPIRequestEntity"}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicTeamMembersAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/import-template":{"post":{"tags":["Projects"],"summary":"Import a template to a project","operationId":"import-template","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectImportPublicAPIRequestEntity"}}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicImportTemplateAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/get-placeholders":{"post":{"tags":["Projects"],"summary":"Get placeholders","description":"This endpoint can be used to search for placeholders across project. The response body is paginated and you can control the pagination using the `limit` and `pageToken` parameters.","operationId":"get-placeholders","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponsePlaceholders"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/assign-placeholders":{"post":{"tags":["Projects"],"summary":"Assign placeholders to an user in a project","operationId":"assign-placeholders","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlaceholderMappingPublicAPIRequestEntity"}}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicPlaceholdersAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/archive":{"post":{"tags":["Projects"],"summary":"Archive project by Id","operationId":"archiveProject","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects/{projectId}/add-members":{"post":{"tags":["Projects"],"summary":"Add members to a project","operationId":"add-members","parameters":[{"name":"projectId","in":"path","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectAddMembersPublicRequest"}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicTeamMembersAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/projects":{"get":{"tags":["Projects"],"summary":"Get all projects","operationId":"get-all-projects","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["annualizedRecurringRevenue","projectFee","allocatedHours","allocatedMinutes","budgetedHours","percentageBudgetedHoursConsumed","percentageBudgetConsumed","billableHours","billableMinutes","nonBillableHours","nonBillableMinutes","trackedHours","trackedMinutes","progressPercentage","startDateActual","dueDateActual","currentPhase","autoAllocation","sources","inferredProgress","plannedDuration","projectAgeInDays","customersInvited","customersJoined","externalReferenceId","metrics","remainingMinutes","remainingHours"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"For sorting the responses by the provided field, use the sortBy parameter.","schema":{"type":"string","enum":["projectName","startDate","dueDate","startDateActual","dueDateActual","annualizedRecurringRevenue","projectFee"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"startDate.gt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than the given start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.eq","in":"query","description":"You can use this param to provide a date and the responses will contain exact matches of projects that match the given start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.lt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than the given start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.ge","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than or equal to the given start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.le","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than or equal to the given start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.gt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than the given due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.eq","in":"query","description":"You can use this param to provide a date and the responses will contain exact matches of projects that match the given due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.lt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than the given due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.ge","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than or equal to the given due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.le","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than or equal to the given due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.gt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than the given actual start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.eq","in":"query","description":"You can use this param to provide a date and the responses will contain exact matches of projects that match the given actual start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.lt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than the given actual start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.ge","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than or equal to the given actual start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.le","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than or equal to the given actual start date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.gt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than the given actual due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.eq","in":"query","description":"You can use this param to provide a date and the responses will contain exact matches of projects that match the given actual due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.lt","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than the given actual due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.ge","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are greater than or equal to the given actual due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.le","in":"query","description":"You can use this param to provide a date and the responses will contain projects whose date are less than or equal to the given actual due date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are greater than the given project created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of projects that match the given project created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are less than the given project created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are greater than or equal to the given project created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are less than or equal to the given project created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are greater than the given project updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of projects that match the given project updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are less than the given project updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are greater than or equal to the given project updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain projects whose date are less than or equal to the given project updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"annualizedRecurringRevenue.eq","in":"query","description":"You can use this param to specify some value as ARR and the responses will contain exact matches of projects that match the given value.","schema":{"type":"number","example":10000}},{"name":"annualizedRecurringRevenue.gt","in":"query","description":"You can use this param to specify some value as ARR and the responses will contain exact matches of projects greater than that of the given value.","schema":{"type":"number","example":10000}},{"name":"annualizedRecurringRevenue.lt","in":"query","description":"You can use this param to specify some value as ARR and the responses will contain exact matches of projects lesser than that of the given value.","schema":{"type":"number","example":10000}},{"name":"projectFee.eq","in":"query","description":"You can use this param to specify some value as project fee and the responses will contain exact matches of projects that match the given value.","schema":{"type":"number","example":10000}},{"name":"projectFee.gt","in":"query","description":"You can use this param to specify some value as project fee and the responses will contain matches of projects greater than that of the given value.","schema":{"type":"number","example":10000}},{"name":"projectFee.lt","in":"query","description":"You can use this param to specify some value as project fee and the responses will contain matches of projects lesser than that of the given value.","schema":{"type":"number","example":10000}},{"name":"customerId.eq","in":"query","description":"You can use this param to provide a customer company id and the responses will contain exact matches of projects that match the given customer company id.","schema":{"type":"string","example":1}},{"name":"customerId.oneOf","in":"query","description":"You can use this param to provide customer company ids separated by commas and the responses will contain matches of projects that match any of the given customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"customerId.noneOf","in":"query","description":"You can use this param to provide customer company id separated by commas and the responses will not contain matches of projects that match the given set of customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"teamMemberId.eq","in":"query","description":"You can use this param to provide a team member id and the responses will contain exact matches of projects that match the given team member id.","schema":{"type":"string","example":1}},{"name":"teamMemberId.oneOf","in":"query","description":"You can use this param to provide team member ids separated by commas and the responses will contain matches of projects that match any of the given team member id.","schema":{"type":"string","example":"1,2,3"}},{"name":"teamMemberId.noneOf","in":"query","description":"You can use this param to provide team member id separated by commas and the responses will not contain matches of projects that match the given set of team member id.","schema":{"type":"string","example":"1,2,3"}},{"name":"companyId.eq","in":"query","description":"You can use this param to provide a customer company id and the responses will contain exact matches of projects that match the given customer company id.","schema":{"type":"string","example":1}},{"name":"companyId.oneOf","in":"query","description":"You can use this param to provide customer company ids separated by commas and the responses will contain matches of projects that match any of the given customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"companyId.noneOf","in":"query","description":"You can use this param to provide customer company id separated by commas and the responses will not contain matches of projects that match the given set of customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"projectName.eq","in":"query","description":"You can use this param to specify some project name and the responses will contain exact matches of projects that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"projectName.cn","in":"query","description":"You can use this param to specify some project name and the responses will contain matches of projects that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"projectName.nc","in":"query","description":"You can use this param to specify some project name and the responses will not contain matches of projects that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"inferredProgress.eq","in":"query","description":"You can use this param to provide a inferred progress and the responses will contain exact matches of projects that match the given inferred progress.","style":"form","explode":false,"schema":{"maxItems":1,"type":"array","items":{"type":"string","enum":["ON_TRACK","AHEAD_OF_TIME","RUNNING_LATE","NONE"]}}},{"name":"contractType.eq","in":"query","description":"You can use this param to provide a contract type and the responses will contain exact matches of projects that match the given contract type","style":"form","explode":false,"schema":{"maxItems":1,"type":"array","items":{"type":"string","enum":["FIXED_FEE","TIME_AND_MATERIAL","SUBSCRIPTION","NON_BILLABLE"]}}},{"name":"contractType.oneOf","in":"query","description":"You can use this param to provide contract types separated by commas and the responses will contain matches of projects that match any of the given contract types.","style":"form","explode":false,"schema":{"maxItems":4,"type":"array","items":{"type":"string","enum":["FIXED_FEE","TIME_AND_MATERIAL","SUBSCRIPTION","NON_BILLABLE"]}}},{"name":"contractType.noneOf","in":"query","description":"You can use this param to provide contract types separated by commas and the responses will not contain matches of projects that match the given set of contract types.","style":"form","explode":false,"schema":{"maxItems":4,"type":"array","items":{"type":"string","enum":["FIXED_FEE","TIME_AND_MATERIAL","SUBSCRIPTION","NON_BILLABLE"]}}},{"name":"budgetedHours.gt","in":"query","description":"You can use this param to provide a budgeted hour and the responses will contain projects whose budgeted hours are greater than the given budgeted hour.","schema":{"type":"string","example":1}},{"name":"budgetedHours.eq","in":"query","description":"You can use this param to provide a budgeted hour and the responses will contain exact matches of projects that match the given budgeted hour.","schema":{"type":"string","example":2}},{"name":"budgetedHours.lt","in":"query","description":"You can use this param to provide a budgeted hour and the responses will contain projects whose budgeted hours are less than the given budgeted hour.","schema":{"type":"string","example":1}},{"name":"budgetedHours.ge","in":"query","description":"You can use this param to provide a budgeted hour and the responses will contain projects whose budgeted hours are greater than or equal to the given budgeted hour.","schema":{"type":"string","example":2}},{"name":"allocatedHours.le","in":"query","description":"You can use this param to provide a allocated hour and the responses will contain projects whose allocated hours are less than or equal to the given allocated hour.","schema":{"type":"string","example":1}},{"name":"allocatedHours.gt","in":"query","description":"You can use this param to provide a allocated hour and the responses will contain projects whose allocated hours are greater than the given allocated hour.","schema":{"type":"string","example":1}},{"name":"allocatedHours.eq","in":"query","description":"You can use this param to provide a allocated hour and the responses will contain exact matches of projects that match the given allocated hour.","schema":{"type":"string","example":2}},{"name":"allocatedHours.lt","in":"query","description":"You can use this param to provide a allocated hour and the responses will contain projects whose allocated hours are less than the given allocated hour.","schema":{"type":"string","example":1}},{"name":"allocatedHours.ge","in":"query","description":"You can use this param to provide a allocated hour and the responses will contain projects whose allocated hours are greater than or equal to the given allocated hour.","schema":{"type":"string","example":2}},{"name":"customersInvited.gt","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have more customers invited than given number of customers invited.","schema":{"type":"string","example":1}},{"name":"customersInvited.eq","in":"query","description":"You can use this param to provide a number and the responses will contain exact matches of projects that exactly have the given number of customers invited.","schema":{"type":"string","example":2}},{"name":"customersInvited.lt","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have less customers invited than given number of customers invited.","schema":{"type":"string","example":1}},{"name":"customersInvited.ge","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have equal or more customers invited than given number of customers invited.","schema":{"type":"string","example":2}},{"name":"customersInvited.le","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have equal or less customers invited than given number of customers invited.","schema":{"type":"string","example":1}},{"name":"customersJoined.gt","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have more customers joined than given number of customers joined.","schema":{"type":"string","example":1}},{"name":"customersJoined.eq","in":"query","description":"You can use this param to provide a number and the responses will contain exact matches of projects that exactly have the given number of customers joined.","schema":{"type":"string","example":2}},{"name":"customersJoined.lt","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have less customers joined than given number of customers joined.","schema":{"type":"string","example":1}},{"name":"customersJoined.ge","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have equal or more customers joined than given number of customers joined.","schema":{"type":"string","example":2}},{"name":"customersJoined.le","in":"query","description":"You can use this param to provide a number and the responses will contain projects that have equal or less customers joined than given number of customers joined.","schema":{"type":"string","example":1}},{"name":"includeArchive.eq","in":"query","description":"You can use this parameter to specify whether responses will include the archived projects.","schema":{"type":"boolean","example":false}},{"name":"status.eq","in":"query","description":"You can use this param to provide status and the responses will contain projects that are equal to the given status","schema":{"type":"string","example":1}},{"name":"status.oneOf","in":"query","description":"You can use this param to provide statuses and the responses will contain projects that match one of the given statuses","schema":{"type":"string","example":"1,2"}},{"name":"status.noneOf","in":"query","description":"You can use this param to provide statuses and the responses will contain projects that matches none of the given statuses","schema":{"type":"string","example":"1,2"}},{"name":"externalReferenceId.eq","in":"query","description":"You can use this param to provide external reference id and the responses will contain projects that are equal to the given id","schema":{"type":"string","example":"project_181866171876"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseProjects"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Projects"],"summary":"Create a project","operationId":"create-project","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["annualizedRecurringRevenue","projectFee","allocatedHours","allocatedMinutes","budgetedHours","percentageBudgetedHoursConsumed","percentageBudgetConsumed","billableHours","billableMinutes","nonBillableHours","nonBillableMinutes","trackedHours","trackedMinutes","progressPercentage","startDateActual","dueDateActual","currentPhase","autoAllocation","sources","inferredProgress","plannedDuration","projectAgeInDays","customersInvited","customersJoined","externalReferenceId","metrics","remainingMinutes","remainingHours"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicAPIRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}}},"/1.0/phases":{"get":{"tags":["Phases"],"summary":"Get all phases","operationId":"get-all-phases","parameters":[{"name":"projectId","in":"query","description":"The `identifier` of the project is generated by the system and can be used to identify the project globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["phaseName","startDate","dueDate","startDateActual","dueDateActual"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"startDate.gt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of phases that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.lt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.ge","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDate.le","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.gt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of phases that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.lt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.ge","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDate.le","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.gt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of phases that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.lt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.ge","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"startDateActual.le","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.gt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of phases that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.lt","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.ge","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"dueDateActual.le","in":"query","description":"You can use this param to specify some date and the responses will contain phases whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are greater than the given phases created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of phases that match the given phases created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are less than the given phases created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are greater than or equal to the given phases created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are less than or equal to the given phases created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are greater than the given phases updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of phases that match the given phases updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are less than the given phases updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are greater than or equal to the given phases updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain phases whose date are less than or equal to the given phases updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"phaseName.eq","in":"query","description":"You can use this param to specify some phase name and the responses will contain exact matches of phases that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"phaseName.cn","in":"query","description":"You can use this param to specify some phase name and the responses will contain matches of phases that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}},{"name":"phaseName.nc","in":"query","description":"You can use this param to specify some phase name and the responses will not contain matches of phases that match the given name.","schema":{"type":"string","example":"Stark Onboarding"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponsePhases"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Phases"],"summary":"Create a phase","operationId":"create-phase","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["startDateActual","dueDateActual"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhasePublicAPIRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhasePublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/fields/{fieldId}/update-option":{"post":{"tags":["Fields"],"summary":"Update field Option","operationId":"update-field-option","parameters":[{"name":"fieldId","in":"path","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldOptionUpdatePublicRequest"}}}},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionsPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/fields/{fieldId}/add-option":{"post":{"tags":["Fields"],"summary":"Add field Option","operationId":"add-field-option","parameters":[{"name":"fieldId","in":"path","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldOptionPublicRequest"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionsPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/fields":{"get":{"tags":["Fields"],"summary":"Get all fields","operationId":"get-all-fields","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which field properties should be returned in the response body by selecting from the drop down. To get the relevant field properties, use comma separated values. If this field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["options"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the field properties should be returned in the response body. If the field is left blank, the default field properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["fieldLabel"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are greater than the given fields created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of fields that match the given fields created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are less than the given fields created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are greater than or equal to the given fields created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are less than or equal to the given fields created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are greater than the given fields updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of fields that match the given fields updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are less than the given fields updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are greater than or equal to the given fields updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain fields whose date are less than or equal to the given fields updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"objectType.eq","in":"query","description":"You can use this param to specify a object type for the fields and the responses will contain exact matches of fields that have the given object type.","schema":{"type":"string","enum":["PROJECT","TASK","USER"]}},{"name":"fieldType.eq","in":"query","description":"You can use this param to specify a field type for the fields and the responses will contain exact matches of fields that have the given field type.","schema":{"type":"string","enum":["TEXT","MULTI_LINE_TEXT","YES_OR_NO","DATE","SINGLE_CHOICE","MULTIPLE_CHOICE","SINGLE_USER","MULTIPLE_USER","NUMBER","NOTE","RATING"]}},{"name":"enabled.eq","in":"query","description":"You can use this parameter to specify whether responses will contains the enabled or disabled fields.","schema":{"type":"boolean","example":true}},{"name":"private.eq","in":"query","description":"You can use this parameter to specify whether responses will contains the private or shared fields.","schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseFields"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}},"post":{"tags":["Fields"],"summary":"Create a Field","operationId":"create-field","parameters":[{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which field properties should be returned in the response body by selecting from the drop down. To get the relevant field properties, use comma separated values. If this field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["options"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the field properties should be returned in the response body. If the field is left blank, the default field properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldPublicRequest"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldModelPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/conversations/{conversationId}/remove-members":{"post":{"tags":["Conversations"],"summary":"Remove members to the conversation","description":"This endpoint can be used to remove members to the conversation in a project using its ID. This API returns the project conversation along with the members for the project specified.","operationId":"remove-members-from-conversation","parameters":[{"name":"conversationId","in":"path","description":"The ID of the conversation object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPublicAPI"}}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationMembersAPI"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/conversations/{conversationId}/add-members":{"post":{"tags":["Conversations"],"summary":"Add members to the conversation","description":"This endpoint can be used to add members to the conversation in a project using its ID. This API returns the project conversation along with the members for the project specified.","operationId":"add-members-to-conversation","parameters":[{"name":"conversationId","in":"path","description":"The ID of the conversation object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["members"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPublicAPI"}}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationMembersAPI"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/conversations":{"get":{"tags":["Conversations"],"summary":"Get all conversations","description":"The Get All Conversations API allows users to retrieve all conversations within a specified project using its unique project ID. This endpoint returns a paginated response containing all available conversation threads for the specified project, along with metadata such as timestamps, sender details, and message status. This API is designed to facilitate seamless access to project discussions, enabling teams to track, review, and analyze past conversations for better collaboration and project management.","operationId":"get-all-conversations","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["members"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sourceId.eq","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"number","example":123}},{"name":"conversationName.eq","in":"query","description":"Filter by conversation name","schema":{"type":"string","example":"New channel"}},{"name":"conversationName.cn","in":"query","description":"You can use this param to specify some Conversation name and the responses will contain matches of conversation that match the given name.","schema":{"type":"string","example":"New channel"}},{"name":"conversationName.nc","in":"query","description":"You can use this param to specify some Conversation name and the responses will not contain matches of conversation that match the given name.","schema":{"type":"string","example":"New channel"}},{"name":"isPrivate.eq","in":"query","description":"Filter by private conversations","schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseConversations"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"post":{"tags":["Conversations"],"summary":"Creates conversation","description":"The Create Conversation API allows users to initiate a new conversation within a specified project using its unique project ID. This endpoint facilitates seamless communication by enabling teams to start discussions, share updates, and collaborate effectively within the project workspace. Upon a successful request, the API returns the newly created conversation details, including metadata such as participants, timestamps, and initial message content.","operationId":"create-conversation","parameters":[{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["members"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPublicRequestAPIEntity"}}},"required":true},"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/comments":{"get":{"tags":["Comments"],"summary":"Get all comments","description":"The Get All Comments API allows users to retrieve all comments within a specific conversation in a project using its unique conversationId. This endpoint returns a paginated response containing all comments associated with the conversation, along with metadata such as timestamps, author details, and status. This API is useful for applications that need to display conversation threads, track discussions, or analyze collaboration trends within a project.","operationId":"get-comments","parameters":[{"name":"sourceType","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"string","enum":["TASK","PROJECT_CONVERSATIONS"]}},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"createdBy.eq","in":"query","description":"You can use this param to specify the team member who created the comment in the conversation, and the responses will contain comment conversations that match the creator.","schema":{"type":"number","example":5}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain comment conversations where the created date of the comment is greater than the given date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain comment conversations that match the exact created date of the comment.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain comment conversations where the created date of the comment is less than the given date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain comment conversations where the created date of the comment is greater than or equal to the given date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain comment conversations where the created date of the comment is less than or equal to the given date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["attachments"]}}},{"name":"isPrivate.eq","in":"query","description":"Filter by private conversations","schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseComments"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"post":{"tags":["Comments"],"summary":"Create a comment","description":"The Create Comment API allows users to add a comment to a specific conversation within a project. This endpoint enables seamless collaboration by allowing team members to contribute to discussions, provide updates, or share feedback. Upon a successful request, the API returns the newly created comment along with metadata such as timestamps, author details, and status.","operationId":"create-comment","parameters":[{"name":"includeFields","in":"query","required":false,"schema":{"type":"string","default":""}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentPublicAPIRequestEntity"}}}},"responses":{"201":{"description":"The resource was successfully created in the database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentPublicResponseAPIEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"500":{"description":"This error denotes that there is an error that occured within our servers. The response body could help narrow down the cause for the error by our support team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serverErrorErrorlist"}}}}}}},"/1.0/users/{userId}":{"get":{"tags":["Users"],"summary":"Get user by Id","operationId":"get-user","parameters":[{"name":"userId","in":"path","description":"The user's unique, system-generated identifier, which can be used to identify the user globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["role","company","permission","holidayCalendar","capacityInMinutes","profilePictureUrl"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersPublicAPIResponse"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/users":{"get":{"tags":["Users"],"summary":"Get all users","operationId":"get-all-users","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["role","company","permission","holidayCalendar","capacityInMinutes","profilePictureUrl"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["email","firstName","lastName","type","status","capacityInMinutes"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"firstName.eq","in":"query","description":"You can use this param to specify some user first name and the responses will contain exact matches of users that match the given first name.","schema":{"type":"string","example":"John"}},{"name":"firstName.cn","in":"query","description":"You can use this param to specify some user first name and the responses will contain matches of users that match the given first name.","schema":{"type":"string","example":"John"}},{"name":"firstName.nc","in":"query","description":"You can use this param to specify some user first name and the responses will not contain matches of users that match the given first name.","schema":{"type":"string","example":"John"}},{"name":"lastName.eq","in":"query","description":"You can use this param to specify some user last name and the responses will contain exact matches of users that match the given last ame.","schema":{"type":"string","example":"Doe"}},{"name":"lastName.cn","in":"query","description":"You can use this param to specify some user last name and the responses will contain matches of users that match the given last name.","schema":{"type":"string","example":"Doe"}},{"name":"lastName.nc","in":"query","description":"You can use this param to specify some user last name and the responses will not contain matches of users that match the given last name.","schema":{"type":"string","example":"Doe"}},{"name":"email.eq","in":"query","description":"You can use this param to specify some user email id and the responses will contain exact matches of users that match the given email id.","schema":{"type":"string","example":"johndoe@rocketlane.com"}},{"name":"email.cn","in":"query","description":"You can use this param to specify some user email id and the responses will contain matches of users that match the given email id.","schema":{"type":"string","example":"johndoe@rocketlane.com"}},{"name":"email.nc","in":"query","description":"You can use this param to specify some user email id and the responses will not contain matches of users that match the given email id.","schema":{"type":"string","example":"johndoe@rocketlane.com"}},{"name":"status.eq","in":"query","description":"You can use this param to provide a user status and the responses will contain exact matches of users that match the given status.","style":"form","explode":false,"schema":{"maxItems":1,"type":"array","items":{"type":"string","enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"]}}},{"name":"status.oneOf","in":"query","description":"You can use this param to provide user statuses separated by commas and the responses will contain matches of users that match one of the given user status.","style":"form","explode":false,"schema":{"maxItems":3,"type":"array","items":{"type":"string","enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"]}}},{"name":"status.noneOf","in":"query","description":"You can use this param to provide user statuses separated by commas and the responses will contain matches of users that match the none of the given set of user statuses.","style":"form","explode":false,"schema":{"maxItems":3,"type":"array","items":{"type":"string","enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"]}}},{"name":"type.eq","in":"query","description":"You can use this param to provide a user type and the responses will contain exact matches of users that match the given type.","style":"form","explode":false,"schema":{"maxItems":1,"type":"array","items":{"type":"string","enum":["TEAM_MEMBER","PARTNER","CUSTOMER","EXTERNAL_PARTNER"]}}},{"name":"type.oneOf","in":"query","description":"You can use this param to provide user types separated by commas and the responses will contain matches of users that match the none of the given set of user types.","style":"form","explode":false,"schema":{"maxItems":3,"type":"array","items":{"type":"string","enum":["TEAM_MEMBER","PARTNER","CUSTOMER","EXTERNAL_PARTNER"]}}},{"name":"roleId.eq","in":"query","description":"You can use this param to provide a role id and the responses will contain exact matches of users that match the given role id.","schema":{"type":"string","example":1}},{"name":"roleId.oneOf","in":"query","description":"You can use this param to provide role ids separated by commas and the responses will contain matches of users that match one of the given role id.","schema":{"type":"string","example":"1,2,3"}},{"name":"roleId.noneOf","in":"query","description":"You can use this param to provide role id separated by commas and the responses will contain matches of users that match the none of the given set of role id.","schema":{"type":"string","example":"1,2,3"}},{"name":"permissionId.eq","in":"query","description":"You can use this param to provide a permission id and the responses will contain exact matches of users that match the given permission id.","schema":{"type":"string","example":1}},{"name":"permissionId.oneOf","in":"query","description":"You can use this param to provide permission ids separated by commas and the responses will contain matches of users that match one of the given set of permission id.","schema":{"type":"string","example":"1,2,3"}},{"name":"permissionId.noneOf","in":"query","description":"You can use this param to provide permission ids separated by commas and the responses will contain matches of users that match the none of the given set of permission id.","schema":{"type":"string","example":"1,2,3"}},{"name":"capacityInMinutes.eq","in":"query","description":"You can use this param to specify some value as capacity and the responses will contain exact matches of users that match the given value.","schema":{"type":"number","example":2400}},{"name":"capacityInMinutes.gt","in":"query","description":"You can use this param to specify some value as capacity and the responses will contain exact matches of capacity greater than that of the given value.","schema":{"type":"number","example":2400}},{"name":"capacityInMinutes.ge","in":"query","description":"You can use this param to specify some value as capacity and the responses will contain exact matches of capacity greater than or equal to that of the given value.","schema":{"type":"number","example":2400}},{"name":"capacityInMinutes.lt","in":"query","description":"You can use this param to specify some value as capacity and the responses will contain exact matches of capacity lesser than that of the given value.","schema":{"type":"number","example":2400}},{"name":"capacityInMinutes.le","in":"query","description":"You can use this param to specify some value as capacity and the responses will contain exact matches of capacity lesser than or equal to that of the given value.","schema":{"type":"number","example":2400}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are greater than the given users created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of users that match the given users created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are less than the given users created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are greater than or equal to the given users created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are less than or equal to the given users created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are greater than the given users updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of users that match the given users updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are less than the given users updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are greater than or equal to the given users updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"updatedAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain users whose date are less than or equal to the given users updated date.","schema":{"type":"integer","format":"int64","example":1625164800000}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseUsers"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/time-offs/{timeOffId}":{"get":{"tags":["Time-Offs"],"summary":"Get time-off by Id","operationId":"get-timeoff","parameters":[{"name":"timeOffId","in":"path","description":"The unique `identifier` of the time-off is generated by the system and used to identify the time-off globally.","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["note","notifyUsers"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeOffPublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}},"delete":{"tags":["Time-Offs"],"summary":"Delete a time-off","operationId":"delete-timeoff","parameters":[{"name":"timeOffId","in":"path","description":"The ID of the time-off object","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200}],"responses":{"204":{"description":"The resource was successfully removed from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/time-entries/search":{"get":{"tags":["Time Tracking"],"summary":"Search time entries","description":"This endpoint can be used to search for time entries. You can refine your search by adding filters. Filters are given as query parameters and have a defined structure: key is `field.operator` and value is `value`. For instance: `date.gt=2023-02-11`, `minutes.eq=250`. Apart from filters, you can add `sortBy` combined with `sortOrder` to sort the time entries. The response body is paginated and you can control the pagination using the `limit` and `pageToken` parameters.","operationId":"search-time-entries","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","schema":{"type":"string","example":"notes,user"}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field. Valid fields to perform sortBy are: `MINUTES`, `DATE`, `ID` and `BILLABLE`.","schema":{"type":"string","enum":["minutes","date","id","billable"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"date.gt","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are greater than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.eq","in":"query","description":"You can use this param to specify some date and the responses will contain exact matches of time-entries that match the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.lt","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are less than the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.ge","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are greater than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"date.le","in":"query","description":"You can use this param to specify some date and the responses will contain time-entries whose date are less than or equal to the given date.","schema":{"type":"string","example":"2023-03-28"}},{"name":"project.eq","in":"query","description":"You can use this param to specify some project Id and the responses will contain exact matches of time-entries that match the given project.","schema":{"type":"number","example":201}},{"name":"task.eq","in":"query","description":"You can use this param to specify some task Id and the responses will contain exact matches of time-entries that match the given task.","schema":{"type":"number","example":202}},{"name":"projectPhase.eq","in":"query","description":"You can use this param to specify some project phase Id and the responses will contain exact matches of time-entries that match the given phase.","schema":{"type":"number","example":210}},{"name":"category.eq","in":"query","description":"You can use this param to specify some category Id and the responses will contain exact matches of time-entries that match the given category.","schema":{"type":"number","example":5}},{"name":"user.eq","in":"query","description":"You can use this param to specify some user Id and the responses will contain exact matches of time-entries that belong to the user with the given user Id.","schema":{"type":"number","example":5}},{"name":"sourceType.eq","in":"query","description":"You can use this param to specify a source type for the time entries and the responses will contain exact matches of time-entries that have the given source type.","schema":{"type":"string","enum":["GOOGLE_CALENDAR","OUTLOOK_CALENDAR","TASK","PROJECT","PHASE","ADHOC","MILESTONE"]}},{"name":"activityName.eq","in":"query","description":"You can use this param to specify some activity name and the responses will contain exact matches of time-entries that match the given activity name.","schema":{"type":"string","example":"Pre-Sales Campaign"}},{"name":"activityName.cn","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that contain the given text in their activity name.","schema":{"type":"string","example":"Sales"}},{"name":"activityName.nc","in":"query","description":"You can use this param to specify some text and the responses will contain time-entries that _DO NOT_ contain the given text in their activity name.","schema":{"type":"string","example":"Sales"}},{"name":"approvalStatus.eq","in":"query","description":"You can use this param to specify an approval status for the time entries and the responses will contain exact matches of time-entries that have the given approval type.","schema":{"type":"string","enum":["NOT_SUBMITTED","SUBMITTED","APPROVED","REJECTED"]}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseTimeEntries"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}},"deprecated":true}},"/1.0/time-entries/categories":{"get":{"tags":["Time Tracking"],"summary":"Get time entry categories","description":"This endpoint can be used to fetch the time entry categories. This API returns a paginated object containing the various time entry categories present.","operationId":"get-time-entry-categories","parameters":[{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseTimeEntryCategories"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/resource-allocations":{"get":{"tags":["Resource Allocations"],"summary":"Get all Resource allocations","operationId":"get-all-resource-allocations","parameters":[{"name":"startDate","in":"query","description":"You can use this parameter to define the start date, and the API response will return all resource allocations that start on or after the specified date.","required":true,"schema":{"type":"string","example":"2023-03-28"}},{"name":"endDate","in":"query","description":"You can use this parameter to define an end date, and the API will return allocations that end on or before the specified date.","required":true,"schema":{"type":"string","example":"2023-03-28"}},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"Use this query parameter to opt in for fields to be returned in the response body. Use comma separated values to fetch the respective fields. If left blank, default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["member","task","placeholder","duration"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["startDate","endDate","allocationType","allocationFor"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}},{"name":"memberId.eq","in":"query","description":"You can use this parameter to specify a member id, and the API will return allocations that exactly match the given member id. This allows for precise filtering of allocations based on the specified user.","schema":{"type":"string","example":1}},{"name":"memberId.oneOf","in":"query","description":"You can use this parameter to specify multiple member ids, separated by commas, and the API will return allocations that match any of the provided member ids. ","schema":{"type":"string","example":"1,2,3"}},{"name":"memberId.noneOf","in":"query","description":"You can use this parameter to specify multiple member ids, separated by commas, and the API will return allocations that exclude any of the provided member ids.","schema":{"type":"string","example":"1,2,3"}},{"name":"projectId.eq","in":"query","description":"You can use this parameter to specify a project id, and the API will return allocations that exactly match the given project id.","schema":{"type":"string","example":1}},{"name":"projectId.oneOf","in":"query","description":"You can use this parameter to specify multiple project ids, separated by commas, and the API will return allocations that match any of the provided project ids.","schema":{"type":"string","example":"1,2,3"}},{"name":"projectId.noneOf","in":"query","description":"You can use this parameter to specify multiple project ids, separated by commas, and the API will return allocations that exclude any of the provided project ids.","schema":{"type":"string","example":"1,2,3"}},{"name":"placeholderId.eq","in":"query","description":"You can use this parameter to specify a placeholder id, and the API will return allocations that exactly match the given placeholder id.","schema":{"type":"string","example":1}},{"name":"placeholderId.oneOf","in":"query","description":"You can use this parameter to specify multiple placeholder ids, separated by commas, and the API will return allocations that match any of the provided placeholder ids.","schema":{"type":"string","example":"1,2,3"}},{"name":"placeholderId.noneOf","in":"query","description":"You can use this parameter to specify multiple placeholder ids, separated by commas, and the API will return allocations that exclude any matching placeholder ids.","schema":{"type":"string","example":"1,2,3"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseResourceAllocations"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}},"/1.0/invoices/{invoiceId}/payments":{"get":{"tags":["Invoices"],"summary":"Get invoice payments by invoice Id","operationId":"get-invoice-payments","parameters":[{"name":"invoiceId","in":"path","description":"Unique identifier of the invoice","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseInvoicePayments"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/invoices/{invoiceId}/lines":{"get":{"tags":["Invoices"],"summary":"Get invoice line items by invoice Id","operationId":"get-invoice-line-items","parameters":[{"name":"invoiceId","in":"path","description":"Unique identifier of the invoice","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseInvoiceLineItems"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/invoices/{invoiceId}":{"get":{"tags":["Invoices"],"summary":"Get invoice by Id","operationId":"get-invoice","parameters":[{"name":"invoiceId","in":"path","description":"Unique identifier of the invoice","required":true,"schema":{"minimum":0,"type":"integer","format":"int64","default":1},"example":200},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","attachments"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoicePublicAPIResponseEntity"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}},"404":{"description":"If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notFoundErrorlist"}}}}}}},"/1.0/invoices":{"get":{"tags":["Invoices"],"summary":"Get all invoices","operationId":"search-invoices","parameters":[{"name":"dateOfIssue.eq","in":"query","description":"Filter by date of issue (equals).","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dateOfIssue.gt","in":"query","description":"Filter by date of issue greater than.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dateOfIssue.ge","in":"query","description":"Filter by date of issue greater than or equal.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dateOfIssue.lt","in":"query","description":"Filter by date of issue less than.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dateOfIssue.le","in":"query","description":"Filter by date of issue less than or equal.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dueDate.eq","in":"query","description":"Filter by due date (equals).","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dueDate.gt","in":"query","description":"Filter by due date greater than.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dueDate.ge","in":"query","description":"Filter by due date greater than or equal.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dueDate.lt","in":"query","description":"Filter by due date less than.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"dueDate.le","in":"query","description":"Filter by due date less than or equal.","schema":{"type":"string","format":"date","example":"2023-03-28"}},{"name":"amount.eq","in":"query","description":"Filter by amount (equals).","schema":{"type":"number","format":"double","example":1000}},{"name":"amount.gt","in":"query","description":"Filter by amount greater than.","schema":{"type":"number","format":"double","example":1000}},{"name":"amount.ge","in":"query","description":"Filter by amount greater than or equal.","schema":{"type":"number","format":"double","example":1000}},{"name":"amount.lt","in":"query","description":"Filter by amount less than.","schema":{"type":"number","format":"double","example":1000}},{"name":"amount.le","in":"query","description":"Filter by amount less than or equal.","schema":{"type":"number","format":"double","example":1000}},{"name":"amountOutstanding.eq","in":"query","description":"Filter by amount outstanding (equals).","schema":{"type":"number","format":"double","example":500}},{"name":"amountOutstanding.gt","in":"query","description":"Filter by amount outstanding greater than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountOutstanding.ge","in":"query","description":"Filter by amount outstanding greater than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"amountOutstanding.lt","in":"query","description":"Filter by amount outstanding less than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountOutstanding.le","in":"query","description":"Filter by amount outstanding less than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"amountPaid.eq","in":"query","description":"Filter by amount paid (equals).","schema":{"type":"number","format":"double","example":500}},{"name":"amountPaid.gt","in":"query","description":"Filter by amount paid greater than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountPaid.ge","in":"query","description":"Filter by amount paid greater than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"amountPaid.lt","in":"query","description":"Filter by amount paid less than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountPaid.le","in":"query","description":"Filter by amount paid less than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"amountWrittenOff.eq","in":"query","description":"Filter by amount written off (equals).","schema":{"type":"number","format":"double","example":500}},{"name":"amountWrittenOff.gt","in":"query","description":"Filter by amount written off greater than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountWrittenOff.ge","in":"query","description":"Filter by amount written off greater than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"amountWrittenOff.lt","in":"query","description":"Filter by amount written off less than.","schema":{"type":"number","format":"double","example":500}},{"name":"amountWrittenOff.le","in":"query","description":"Filter by amount written off less than or equal.","schema":{"type":"number","format":"double","example":500}},{"name":"createdAt.gt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain invoices whose date are greater than the given invoice created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.eq","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain exact matches of invoices that match the given invoice created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.lt","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain invoices whose date are less than the given invoice created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.ge","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain invoices whose date are greater than or equal to the given invoice created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"createdAt.le","in":"query","description":"You can use this param to provide an epoch milli value and the responses will contain invoices whose date are less than or equal to the given invoice created date.","schema":{"type":"integer","format":"int64","example":1625164800000}},{"name":"companyId.eq","in":"query","description":"You can use this param to provide a customer company id and the responses will contain exact matches of invoices that match the given customer company id.","schema":{"type":"string","example":1}},{"name":"companyId.oneOf","in":"query","description":"You can use this param to provide customer company ids separated by commas and the responses will contain matches of invoices that match any of the given customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"companyId.noneOf","in":"query","description":"You can use this param to provide customer company id separated by commas and the responses will not contain matches of invoices that match the given set of customer company id.","schema":{"type":"string","example":"1,2,3"}},{"name":"invoiceNumber.eq","in":"query","description":"Filter by invoice number (equals).","schema":{"type":"string","example":"INV-2024-001"}},{"name":"invoiceNumber.cn","in":"query","description":"You can use this param to specify some text and the responses will contain invoices that contain the given text in their invoice number","schema":{"type":"string","example":"INV"}},{"name":"invoiceNumber.nc","in":"query","description":"You can use this param to specify some text and the responses will contain invoices that _DO NOT_ contain the given text in their invoice number","schema":{"type":"string","example":"US-21"}},{"name":"status.eq","in":"query","description":"You can use this param to provide status and the responses will contain invoices that are equal to the given status","schema":{"type":"string","example":"DRAFT"}},{"name":"status.oneOf","in":"query","description":"You can use this param to provide statuses and the responses will contain invoices that match one of the given statuses","schema":{"type":"string","example":"DRAFT,PAID"}},{"name":"status.noneOf","in":"query","description":"You can use this param to provide statuses and the responses will contain invoices that matches none of the given statuses","schema":{"type":"string","example":"DRAFT,PAID"}},{"name":"pageSize","in":"query","description":"This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.","schema":{"minimum":0,"type":"number","format":"int32","example":100}},{"name":"pageToken","in":"query","description":"Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.","schema":{"type":"string","example":"59c12a42-dd10-11ed-afa1-0242ac120002"}},{"name":"includeFields","in":"query","description":"This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["notes","attachments"]}}},{"name":"includeAllFields","in":"query","description":"This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.","schema":{"type":"boolean","example":true}},{"name":"sortBy","in":"query","description":"You can use the sortBy param to sort the responses by the given field.","schema":{"type":"string","enum":["createdAt","invoiceNumber"]}},{"name":"sortOrder","in":"query","description":"The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"match","in":"query","description":"You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.","schema":{"type":"string","enum":["all","any"]}}],"responses":{"200":{"description":"The requested action was successfully executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleAPIResponseInvoices"}}}},"400":{"description":"This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/badRequestErrorlist"}}}},"401":{"description":"You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorizedErrorlist"}}}}}}}},"components":{"schemas":{"TimeEntryApprovedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"User who approved the time entry"},"TimeEntryBillRatePublicAPI":{"type":"object","properties":{"rate":{"type":"number","description":"The monetary amount assigned to a specific service or activity.","example":40},"currency":{"type":"string","description":"The three-letter ISO currency code representing the currency in which transactions are conducted.","example":"EUR"}},"description":"The hourly rate charged to customers for the projects or services provided."},"TimeEntryCategoryPublicAPI":{"type":"object","properties":{"categoryName":{"type":"string","description":"The name of the category.","readOnly":true,"example":"Pre-sales"},"categoryId":{"type":"integer","description":"The unique identifier for the category.","format":"int64","example":8}},"description":"Category associated with the time entry"},"TimeEntryCostRatePublicAPI":{"type":"object","properties":{"rate":{"type":"number","description":"The monetary amount assigned to a specific service or activity.","example":40},"currency":{"type":"string","description":"The three-letter ISO currency code representing the currency in which transactions are conducted.","example":"USD"}},"description":" The hourly rate assigned to employees for the work they perform for your organization"},"TimeEntryCreatedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the time entry."},"TimeEntryFieldPublicResponseAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The unique identifier for the field.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The label of the field.","readOnly":true,"example":"MRR"},"fieldValue":{"type":"object","description":"The `fieldValue` is the value provided while creation or updating. The fieldValue can be a string, an integer, or an array and it must match the type of the field.","readOnly":true,"example":1000},"fieldValueLabel":{"type":"string","description":"The `fieldValueLabel` is the value provided while creation or updating in a String format.","readOnly":true,"example":"1000"}},"description":"Custom fields associated with the time entry"},"TimeEntryPhasePublicAPIResponseEntity":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The unique identifier for the phase.","format":"int64","example":201},"phaseName":{"type":"string","description":"The name of the phase.","readOnly":true,"example":"Go live"}},"description":"Project phase associated with the time entry"},"TimeEntryProjectPublicAPIResponseEntity":{"type":"object","properties":{"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme Onboarding"},"projectId":{"type":"integer","description":"The project’s unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":204}},"description":"Project associated with the time entry"},"TimeEntryPublicAPIResponseEntity":{"type":"object","properties":{"timeEntryId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","format":"int64","readOnly":true,"example":201},"date":{"type":"string","description":"Date of the time entry in format YYYY-MM-DD","example":"2023-03-28"},"minutes":{"maximum":1440,"minimum":1,"type":"integer","description":"Duration of the time entry in minutes","format":"int32","example":250},"activityName":{"type":"string","description":"Name of the adhoc activity being performed","example":"Pre-Sales campaign"},"project":{"$ref":"#/components/schemas/TimeEntryProjectPublicAPIResponseEntity"},"task":{"$ref":"#/components/schemas/TimeEntryTaskPublicAPI"},"projectPhase":{"$ref":"#/components/schemas/TimeEntryPhasePublicAPIResponseEntity"},"createdAt":{"type":"integer","description":"Timestamp of creation time of the entry in epoch milliseconds","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"Timestamp of last updated time of the entry in epoch milliseconds","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TimeEntryCreatedByPublicResponse"},"updatedBy":{"$ref":"#/components/schemas/TimeEntryUpdatedByPublicResponse"},"billable":{"type":"boolean","description":"Whether the time entry is billable. Defaults to true","example":true,"default":true},"user":{"$ref":"#/components/schemas/UserPublicAPIResponseEntity"},"notes":{"type":"string","description":"Notes for the time entry","example":"Working on API integration"},"category":{"$ref":"#/components/schemas/TimeEntryCategoryPublicAPI"},"sourceType":{"type":"string","description":"Type of source of the time entry Eg: Task, Adhoc (Activity), Milestone","readOnly":true,"example":"Task","enum":["GOOGLE_CALENDAR","OUTLOOK_CALENDAR","TASK","PROJECT","PHASE","ADHOC","MILESTONE"]},"status":{"type":"string","description":"Status of the time entry","enum":["NOT_SUBMITTED","SUBMITTED","APPROVED","REJECTED"]},"submittedBy":{"$ref":"#/components/schemas/TimeEntrySubmittedByPublicResponse"},"submittedAt":{"type":"integer","description":"Time of submission for time entry\n\nNote: This field may be null, even when the time entry is in an APPROVED or REJECTED state, as time entries can be approved or rejected without an explicit submission step.","format":"int64","readOnly":true,"example":1681319726000},"approvedBy":{"$ref":"#/components/schemas/TimeEntryApprovedByPublicResponse"},"approvedAt":{"type":"integer","description":"Time of approval for time entry","format":"int64","readOnly":true,"example":1681319726000},"rejectedBy":{"$ref":"#/components/schemas/TimeEntryRejectedByPublicResponse"},"rejectedAt":{"type":"integer","description":"Time of rejection for time entry","format":"int64","readOnly":true,"example":1681319726000},"deleted":{"type":"boolean","description":"Whether the time entry is deleted.","example":true},"costRate":{"$ref":"#/components/schemas/TimeEntryCostRatePublicAPI"},"billRate":{"$ref":"#/components/schemas/TimeEntryBillRatePublicAPI"},"fields":{"type":"array","description":"Custom fields associated with the time entry","items":{"$ref":"#/components/schemas/TimeEntryFieldPublicResponseAPIEntity"}}}},"TimeEntryRejectedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"User who rejected the time entry"},"TimeEntrySubmittedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"User who submitted the time entry\n\nNote: This field may be null, even when the time entry is in an APPROVED or REJECTED state, as time entries can be approved or rejected without an explicit submission step."},"TimeEntryTaskPublicAPI":{"type":"object","properties":{"taskName":{"type":"string","description":"The name of the task.","readOnly":true,"example":"Kickoff meeting"},"taskId":{"type":"integer","description":"The task’s unique, system-generated identifier, which can be used to identify the task globally.","format":"int64","example":201}},"description":"Task associated with the time entry"},"TimeEntryUpdatedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the ttime entry."},"UserPublicAPIResponseEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","readOnly":true,"example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"User associated with the time entry","readOnly":true},"Example404":{"type":"object","properties":{"errorCode":{"type":"string","description":"Error code refers to the type of error that you are facing. Some examples of error codes are: `BAD_REQUEST`, `NOT_FOUND`, `INTERNAL_SERVER_ERROR`.","example":"NOT_FOUND"},"errorMessage":{"type":"string","description":"Error message describes in brief about the issue. You can read the error message to get a understanding of where the request went wrong and attempt to fix it.","example":"Not Found: Resource not found for given ID"}}},"notFoundErrorlist":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Example404"}}}},"Example401":{"type":"object","properties":{"errorCode":{"type":"string","description":"Error code refers to the type of error that you are facing. Some examples of error codes are: `BAD_REQUEST`, `NOT_FOUND`, `INTERNAL_SERVER_ERROR`.","example":"NOT_AUTHORIZED"},"errorMessage":{"type":"string","description":"Error message describes in brief about the issue. You can read the error message to get a understanding of where the request went wrong and attempt to fix it.","example":"Not Authorized: User not authorized"}}},"unauthorizedErrorlist":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Example401"}}}},"Example400":{"type":"object","properties":{"errorCode":{"type":"string","description":"Error code refers to the type of error that you are facing. Some examples of error codes are: `BAD_REQUEST`, `NOT_FOUND`, `INTERNAL_SERVER_ERROR`.","example":"BAD_REQUEST"},"errorMessage":{"type":"string","description":"Error message describes in brief about the issue. You can read the error message to get a understanding of where the request went wrong and attempt to fix it.","example":"Bad Request: Minutes is negative"},"field":{"type":"string","description":"Fields refers to the parameter/field that was invalid in the request (if any). It will point you to the field that needs attention.","example":"minutes"}}},"badRequestErrorlist":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Example400"}}}},"Example500":{"type":"object","properties":{"errorCode":{"type":"string","description":"Error code refers to the type of error that you are facing. Some examples of error codes are: `BAD_REQUEST`, `NOT_FOUND`, `INTERNAL_SERVER_ERROR`.","example":"SERVER_ERROR"},"errorMessage":{"type":"string","description":"Error message describes in brief about the issue. You can read the error message to get a understanding of where the request went wrong and attempt to fix it.","example":"Server Error: Something went wrong on our end. Could not perform the requested action."}}},"serverErrorErrorlist":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Example500"}}}},"FieldPublicRequestAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The unique identifier of the field","format":"int64","example":201},"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the custom field.","readOnly":true,"example":"MRR"},"fieldValue":{"type":"object","description":"The value for the field. It can either be a string or a number or number array. Refer [example](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about assigning value for different fields.","example":1000,"oneOf":[{"type":"string"},{"type":"number"}]}},"description":"The custom fields can be set during the time-entry creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`."},"TimeEntryPublicAPIUpdateRequest":{"type":"object","properties":{"timeEntryId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","format":"int64","readOnly":true,"example":201},"date":{"type":"string","description":"Date of the time entry in format YYYY-MM-DD","readOnly":true,"example":"2023-03-28"},"minutes":{"maximum":1440,"minimum":1,"type":"integer","description":"Duration of the time entry in minutes","format":"int32","example":250},"activityName":{"type":"string","description":"Name of the adhoc activity being performed","example":"Pre-Sales campaign"},"notes":{"type":"string","description":"Notes for the time entry","example":"Working on API integration"},"category":{"$ref":"#/components/schemas/TimeEntryCategoryPublicAPI"},"fields":{"type":"array","description":"The custom fields can be set during the time-entry creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/FieldPublicRequestAPIEntity"}},"billable":{"type":"boolean"}}},"AssigneePublicAPI":{"type":"object","properties":{"members":{"type":"array","description":"The list includes both `team members` and `customers` assigned to the task.","readOnly":true,"items":{"$ref":"#/components/schemas/TaskUserPublicAPI"}},"placeholders":{"type":"array","description":"The list contains all the placeholders assigned to the task.","readOnly":true,"items":{"$ref":"#/components/schemas/TaskPlaceholderPublicAPI"}}},"description":"The users who are assigned the responsibility to execute the task. The assignees can be either **members** (team members or customers) or **placeholders**."},"ProjectPublicAPITaskResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme onboarding"}},"description":"The `project` associated with task."},"RoleResponsePublicAPI":{"type":"object","properties":{"roleId":{"type":"integer","description":"The role's unique, system-generated identifier, which can be used to identify the role globally.","format":"int64","readOnly":true,"example":101},"roleName":{"type":"string","description":"The name of the role.","readOnly":true,"example":"Designer"}},"description":"The role of the member or placeholder to whom allocation is made for","readOnly":true},"TaskCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the task."},"TaskFieldPublicResponseAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The unique identifier for the field.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The label of the field.","readOnly":true,"example":"MRR"},"fieldValue":{"type":"object","description":"The `fieldValue` is the value provided while creation or updating. The fieldValue can be a string, an integer, or an array and it must match the type of the field. Refer [e xamples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with task.","readOnly":true,"example":1000},"fieldValueLabel":{"type":"string","description":"The `fieldValueLabel` is the value provided while creation or updating in a String format.","readOnly":true,"example":"1000"}},"description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response."},"TaskFollowersPublicResponse":{"type":"object","properties":{"members":{"type":"array","description":"The list includes both `team members` and `customers` assigned to the task.","readOnly":true,"items":{"$ref":"#/components/schemas/TaskUserPublicAPI"}}},"description":"The task followers are the team members who keep track of the execution of the project. It can be either `members` (team members or customers) or `placeholders`."},"TaskPhasePublicLiteAPIResponseEntity":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The unique identifier for the phase.","format":"int64","readOnly":true,"example":201},"phaseName":{"type":"string","description":"The name of the phase.","readOnly":true,"example":"Go live"}},"description":"The `phase` associated with the task."},"TaskPlaceholderPublicAPI":{"type":"object","properties":{"placeholderId":{"type":"integer","description":"The unique identifier for the placeholder.","format":"int64","example":201},"placeholderName":{"type":"string","description":"The name of the placeholder.","readOnly":true,"example":"Customer Success"},"role":{"$ref":"#/components/schemas/RoleResponsePublicAPI"}},"description":"The list contains all the placeholders assigned to the task.","readOnly":true},"TaskPriorityPublicResponse":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value serves as a distinct identification for every priority field’s choice.","format":"int32","readOnly":true,"example":2},"label":{"type":"string","description":"The label is the name for every priority field’s choice.","readOnly":true,"example":"High"}},"description":"Determines the level of priority of the task."},"TaskPublicAPIResponseEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"archived":{"type":"boolean","description":"The field `archived` denotes whether the task is archived or not. The task if archived will not be available in all search requests.","example":false},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"createdAt":{"type":"integer","description":"The time when the task was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the task was last updated. Any changes that's related to the task are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskResponseEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/TaskFieldPublicResponseAPIEntity"}},"startDateActual":{"type":"string","description":"The date on which the task status is changed to **In Progress**. The status can be either the default (**In Progress**) status or a custom status that is categorized as **In Progress**. It can be null for tasks that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date on which the task status is changed to **Completed**. The status can be either the default status **Completed** or a custom status that is categorized as **Completed**. It will be null if the task is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"type":{"type":"string","description":"The type of the task if specified will be available here. There are two options: `MILESTONE` or `TASK`. If a task is not explicitly marked as a milestone, it takes the default value as `TASK`. Milestones refer to critical tasks in the project that include an inbuilt CSAT capability that allows customers to offer CSAT evaluations depending on the task's execution.","example":"MILESTONE","enum":["TASK","MILESTONE"]},"phase":{"$ref":"#/components/schemas/TaskPhasePublicLiteAPIResponseEntity"},"assignees":{"$ref":"#/components/schemas/AssigneePublicAPI"},"followers":{"$ref":"#/components/schemas/TaskFollowersPublicResponse"},"dependencies":{"type":"array","description":"Task Dependencies allow you to define relationships between tasks that are dependent on each other.\nNote: Rocketlane allows you to have finish to start task dependencies. This means that dependent tasks are meant to start after the dependencies are marked as Complete.","items":{"$ref":"#/components/schemas/TaskPublicLiteAPIResponseEntity"}},"parent":{"$ref":"#/components/schemas/TaskPublicLiteAPIResponseEntity"},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","readOnly":true,"example":"task_8171"},"billable":{"type":"boolean","description":"Indicates whether the task is billable or non billable.","example":true},"timeEntryCategory":{"$ref":"#/components/schemas/TaskPublicTimeEntryCategoryResponse"},"financialsBudgets":{"type":"array","description":"The Financials budget in which the task's time entry is added.","items":{"$ref":"#/components/schemas/TaskPublicProjectFinancialsBudgetResponse"}},"csatEnabled":{"type":"boolean","description":"In case of milestone tasks, this field determines if a CSAT survey will be sent out on completion of the task"},"priority":{"$ref":"#/components/schemas/TaskPriorityPublicResponse"},"taskPrivateNote":{"type":"string","description":"The `privateNote` for the task is intended exclusively for team members. The note's content should be in `HTML` format to prevent any formatting issues in the application."},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"TaskPublicLiteAPIResponseEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","readOnly":true,"example":"Kick off"}},"description":"The parent task of the task."},"TaskPublicProjectFinancialsBudgetResponse":{"type":"object","properties":{"budgetId":{"minimum":1,"type":"integer","description":"Unique Identifier of the Financials budget in which the task's time entry is added.","format":"int64","readOnly":true,"example":201},"budgetName":{"type":"string","description":"Financials budget name in which task's time entry is added ","readOnly":true,"example":"Pre-sales"}},"description":"The Financials budget in which the task's time entry is added."},"TaskPublicTimeEntryCategoryResponse":{"type":"object","properties":{"categoryId":{"minimum":1,"type":"integer","description":"Unique Identifier of the category in which the task's time entry is added.","format":"int32","readOnly":true,"example":201},"categoryName":{"type":"string","description":"Category Name in which the task's time entry is added.","readOnly":true,"example":"Pre-sales"}},"description":"The category in which the task's time entry is added."},"TaskStatusPublicResponse":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field is the unique identifier for status fields.","format":"int32","readOnly":true,"example":2},"label":{"type":"string","description":"The label is the name of the status.","readOnly":true,"example":"In progress"}},"description":"The task status value and the label. v 10, l xyz."},"TaskUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The list includes both `team members` and `customers` assigned to the task.","readOnly":true},"TaskPublicUpdateAPIRequestEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"taskPrivateNote":{"type":"string","description":"The `privateNote` for the task is intended exclusively for team members. The note's content should be in `HTML` format to prevent any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"type":{"type":"string","description":"The type of the task if specified will be available here. There are two options: `MILESTONE` or `TASK`. If a task is not explicitly marked as a milestone, it takes the default value as `TASK`. Milestones refer to critical tasks in the project that include an inbuilt CSAT capability that allows customers to offer CSAT evaluations depending on the task's execution.","example":"MILESTONE","enum":["TASK","MILESTONE"]},"fields":{"type":"array","description":"The custom fields can be set during the task creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/FieldPublicRequestAPIEntity"}},"status":{"$ref":"#/components/schemas/TaskStatusPublicRequest"},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","example":"task_8171"},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"TaskStatusPublicRequest":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field.","format":"int32","example":2}},"description":"The value of the task status can be specified here and this is essential to keep track of it."},"ProjectPublicAPISpaceResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier of the project associated with space.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project associated with the space.","readOnly":true,"example":"Acme onboarding"}},"description":"The `project` where the `space` exists."},"SpaceCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the space."},"SpacePublicResponseEntity":{"type":"object","properties":{"spaceId":{"minimum":1,"type":"integer","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","format":"int64","readOnly":true,"example":201},"spaceName":{"type":"string","description":"The name of the space.","example":"Shared space"},"project":{"$ref":"#/components/schemas/ProjectPublicAPISpaceResponseEntity"},"createdAt":{"type":"integer","description":"The timestamp when the space was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/SpaceCreatedByUserPublicAPI"},"updatedAt":{"type":"integer","description":"The timestamp when the space was last updated.","format":"int64","example":1681319726000},"updatedBy":{"$ref":"#/components/schemas/SpaceUpdatedByUserPublicAPI"},"private":{"type":"boolean","description":"Describes the privacy of the space i.e. if it is private or shared.","example":true}}},"SpaceUpdatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the project"},"SpacePublicUpdateAPIRequestEntity":{"type":"object","properties":{"spaceName":{"type":"string","description":"The name of the space.","example":"Shared space"}}},"SpacePublicAPISpaceTabResponseEntity":{"type":"object","properties":{"spaceId":{"minimum":1,"type":"integer","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","format":"int64","readOnly":true,"example":201},"spaceName":{"type":"string","description":"The name of the space.","readOnly":true,"example":"General space"}},"description":"Information about the space to which the space document belongs to."},"SpaceTabCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the space document."},"SpaceTabPublicResponseAPIEntity":{"type":"object","properties":{"spaceDocumentId":{"minimum":1,"type":"integer","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","format":"int64","readOnly":true,"example":201},"spaceDocumentName":{"type":"string","description":"The name of the space document.","example":"Sample file","default":"Untitled"},"space":{"$ref":"#/components/schemas/SpacePublicAPISpaceTabResponseEntity"},"spaceDocumentType":{"type":"string","description":"Defines the type of the space document. This could be a Rocketlane document or an embedded document.","example":"ROCKETLANE_DOCUMENT","enum":["ROCKETLANE_DOCUMENT","EMBEDDED_DOCUMENT"]},"url":{"type":"string","description":"The url that is embedded in the space document.","example":"https://www.google.com"},"source":{"$ref":"#/components/schemas/SpaceTabSourcePublicResponse"},"createdAt":{"type":"integer","description":"The timestamp when the space document was created.","format":"int64","example":1680616174929},"createdBy":{"$ref":"#/components/schemas/SpaceTabCreatedByUserPublicAPI"},"updatedAt":{"type":"integer","description":"The timestamp when the space document was last updated.","format":"int64","example":1680616174929},"updatedBy":{"$ref":"#/components/schemas/SpaceTabUpdatedByUserPublicAPI"},"private":{"type":"boolean","description":"Describes the privacy of the space i.e. if it is private or shared.","example":true}}},"SpaceTabSourcePublicResponse":{"type":"object","properties":{"templateId":{"type":"integer","description":"The unique identifier for the template.","format":"int64","example":201},"templateName":{"type":"string","description":"The name of the template.","readOnly":true,"example":"Meeting Notes"}},"description":"Sources denote the document templates based on which the document is created"},"SpaceTabUpdatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the space document."},"SpaceTabUpdatePublicRequestAPIEntity":{"type":"object","properties":{"spaceDocumentId":{"minimum":1,"type":"integer","description":"The space document’s unique, system-generated identifier, which can be used to identify the space document globally.","format":"int64","readOnly":true,"example":201},"spaceDocumentName":{"type":"string","description":"The name of the space document.","example":"Sample file"},"url":{"type":"string","description":"The url that is embedded in the space document.","example":"https://www.google.com"}}},"CustomerCompanyProjectPublicResponse":{"type":"object","properties":{"companyId":{"minimum":1,"type":"integer","description":"The unique identifier for the customer company.","format":"int64","example":201},"companyName":{"type":"string","description":"The customer company name.","example":"Acme Inc"},"companyUrl":{"type":"string","description":"The URL of the client's website. Unless explicitly stated, the value for this field can be left blank.","example":"https://www.acme.com"}},"description":"Company details for the invoice"},"FixedFeeFinancialsPublicResponse":{"type":"object","properties":{"fixedFee":{"type":"number","description":"The project fee for the Fixed fee contract type project.","format":"double","readOnly":true,"example":100}},"description":"This section addresses the financial aspects of the Fixed Fee contract type projects and its associated fields.","readOnly":true},"ImportPublicAPIResponseEntity":{"type":"object","properties":{"prefix":{"type":"string","description":"A prefix can be used to distinguish which phase or task corresponds to which template when adding more than one source to a project.","example":"APAC"},"startDate":{"type":"string","description":"The date on which the template goes into effect for the project.","format":"date","example":"2023-03-28"},"templateId":{"type":"integer","description":"The unique identifier for the template.","format":"int64","example":201},"templateName":{"type":"string","description":"The name of the template.","readOnly":true,"example":"Simple Onboarding"}},"description":"Sources denotes the project templates involved in creation/ imported post creation of the project.","readOnly":true},"ProjectCustomerChampionUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The customer champion's email identifier","example":"ruth.bell@acme.com"},"userId":{"type":"integer","description":"The unique identifier for the customer champion.","format":"int64","example":302},"firstName":{"type":"string","description":"The first name of the customer champion.","readOnly":true,"example":"Ruth"},"lastName":{"type":"string","description":"The last name of the customer champion.","readOnly":true,"example":"Bell"}},"description":"The Customer champion is the team member in charge of project management and representing the customer's team."},"ProjectCustomerUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The customers' email identifier.","example":"rachel.green@acme.com"},"userId":{"type":"integer","description":"The unique identifier for the customer.","format":"int64","example":301},"firstName":{"type":"string","description":"The first name of the customer.","readOnly":true,"example":"Rachel"},"lastName":{"type":"string","description":"The last name of the customer.","readOnly":true,"example":"Green"}},"description":"The project customers."},"ProjectFieldPublicResponseAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The field identifier","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The `fieldLabel` is the name of the custom project field","readOnly":true,"example":"MRR"},"fieldValue":{"type":"string","description":"The `fieldValue` is the value provided while creation or updating. The fieldValue can be a string, an integer, or an number array and it must match the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with project.","readOnly":true,"example":"1000"},"fieldValueLabel":{"type":"string","description":"The `fieldValueLabel` is the value provided while creation or updating in a String format.","readOnly":true,"example":"1000"}},"description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response."},"ProjectFinancialsMetrics":{"type":"object","properties":{"actualRevenue":{"type":"number","description":"The revenue you are making on the project. For a time and material project, `Actual Revenue = Sum of all (Tracked time * Bill rates for the roles)`. For a fixed fee project, this is the recognised revenue for the project.","format":"double","readOnly":true,"example":10000},"estimatedRevenue":{"type":"number","description":"This is the potential revenue you can generate from the project based on your resource allocation plan.","format":"double","readOnly":true,"example":200000},"actualCost":{"type":"number","description":"The actual cost incurred on the project. `Actual Cost = Sum of all (Tracked time * Cost rates for the team members)`.","format":"double","readOnly":true,"example":200},"estimatedCost":{"type":"number","description":"This is the potential cost you will incur on the project based on your resource allocation plan. `Estimated Cost = Sum of all (Allocated time * Cost rates for the team members)`.","format":"double","readOnly":true,"example":200},"actualProfit":{"type":"number","description":"The actual profit you are making on the project. `Profit = Revenue - Cost`.","format":"double","readOnly":true,"example":200},"estimatedProfit":{"type":"number","description":"This is the potential profit you will make on the project. `Estimated Profit = Estimated Revenue - Estimated Cost`.","format":"double","readOnly":true,"example":200},"actualProfitMargin":{"type":"number","description":"The actual profit margin for the project. Tracking the profit margin helps you monitor the profitability of the project throughout its duration. `Margin (%) = Profit / Revenue * 100`.","format":"double","readOnly":true,"example":200},"estimatedProfitMargin":{"type":"number","description":"This is the potential margin you will make on the project. `Estimated Profit Margin (%) = Estimated Profit / Estimated Revenue * 100`.","format":"double","readOnly":true,"example":200},"estimateAtCompletion":{"type":"number","description":"EAC (Estimate at Completion) predicts the total number of hours that would be consumed at project completion.","format":"double","readOnly":true,"example":200},"estimationToCompletionInHours":{"type":"number","description":"ETC (Estimate to Complete) refers to number of hours required to complete a project based on the resource allocation plan.","format":"double","readOnly":true,"example":200}},"description":"The metrics used to evaluate and assess the financial aspects of projects."},"ProjectFinancialsPublicResponse":{"type":"object","properties":{"contractType":{"maximum":1,"type":"string","description":"The contract type or the billing method for the project financials.","readOnly":true,"enum":["FIXED_FEE","TIME_AND_MATERIAL","SUBSCRIPTION","NON_BILLABLE"]},"revenueRecognitionType":{"maximum":1,"type":"string","description":"Method used for revenue recognition. Options include:\nTrackedHours/BudgetHours – Revenue is recognized based on the proportion of tracked hours to the budgeted hours.\nTrackedHours/AllocatedHours – Revenue is recognized based on the proportion of tracked hours to the allocated hours","readOnly":true},"fixedFeeContract":{"$ref":"#/components/schemas/FixedFeeFinancialsPublicResponse"},"timeAndMaterialContract":{"$ref":"#/components/schemas/TimeAndMaterialFinancialsPublicResponse"},"subscriptionContract":{"$ref":"#/components/schemas/SubscriptionFinancialsPublicResponse"},"metrics":{"$ref":"#/components/schemas/ProjectFinancialsMetrics"}},"description":"This section addresses the financial aspects of the projects and the associated fields."},"ProjectOwnerUserPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The project owner's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for project owner.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the project owner.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the project owner.","readOnly":true,"example":"Doe"}},"description":"The project owner is the team member who has access to everything in the project and is in charge of managing it. Any team member can be assigned as the project owner during the project creation or can be modified later. In the absence of a selection, the project owner is set to the team member who created the project by default."},"ProjectPartnerCompanyPublicAPIResponseEntity":{"type":"object","properties":{"companyId":{"minimum":1,"type":"integer","description":"The unique identifier for the partner company.","format":"int64","example":301},"companyName":{"type":"string","description":"The name of the partner company.","example":"Modert Inc"},"companyUrl":{"type":"string","description":"The URL of the partner company's website. Unless explicitly stated, the value for this field can be left blank.","example":"https://www.modert.com"}},"description":"The `partners` field contains list of partner companies.","readOnly":true},"ProjectPhasePublicLiteAPIResponseEntity":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The unique identifier for the phase in a project.","format":"int64","readOnly":true,"example":201},"phaseName":{"type":"string","description":"The name of the phase.","readOnly":true,"example":"Go live"}},"description":"The phases that are currently marked as in progress are available here.","readOnly":true},"ProjectPublicAPIResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the project was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicResponse"},"teamMembers":{"$ref":"#/components/schemas/ProjectResponseMembersResponse"},"status":{"$ref":"#/components/schemas/ProjectStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/ProjectFieldPublicResponseAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"partnerCompanies":{"type":"array","description":"The `partners` field contains list of partner companies.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIResponseEntity"}},"archived":{"type":"boolean","description":"The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.","example":false},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS","GROUP"]},"createdBy":{"$ref":"#/components/schemas/ProjectPublicCreatedByResponse"},"updatedBy":{"$ref":"#/components/schemas/ProjectPublicUpdatedByResponse"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"financials":{"$ref":"#/components/schemas/ProjectFinancialsPublicResponse"},"startDateActual":{"type":"string","description":"The date on which the project status is changed to in progress. The status can be either the default said status (in progress) or custom statuses that are categorised as in progress. It can be null for projects that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date when project status gets changed to completed. The status can be either the default provided status (completed) or a custom status that is labelled under the Completed category. It will be null if the project is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"annualizedRecurringRevenue":{"type":"integer","description":"Indicates the value of the recurring revenue of the customer's subscriptions for a single calendar year.","format":"int64","example":10000},"projectFee":{"type":"integer","description":"The total fee that is charged for the project.","format":"int64","example":100000},"budgetedHours":{"type":"number","description":"Budgeted hours represent the total hours allocated for project execution. This value can be edited at any point throughout the project's duration. You can enter the budgeted hours in decimal form, including both hours and minutes, with up to two decimal places of precision. Eg: 1.65 hrs = 1h 39m(1.65h * 60m = 99m).","format":"double","readOnly":true,"example":10.5},"percentageBudgetedHoursConsumed":{"type":"number","description":"The budgeted hours consumed percentage.","format":"double","readOnly":true,"example":42},"percentageBudgetConsumed":{"type":"number","description":"The budget consumed percentage.","format":"double","readOnly":true,"example":42},"trackedHours":{"type":"integer","description":"The number of hours tracked as part of `submitted` time-entries are captured here and computed in hours.","format":"int32","readOnly":true,"example":530},"trackedMinutes":{"type":"number","description":"The number of minutes tracked as part of `submitted` time-entries are captured here and computed in minutes.","format":"double","readOnly":true,"example":530},"allocatedHours":{"type":"integer","description":"If the project has `allocations` against say users or placeholders, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"allocatedMinutes":{"type":"number","description":"If the project has `allocations` against say users or placeholders, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"billableHours":{"type":"integer","description":"If the project has time entries tracked under billable, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"billableMinutes":{"type":"number","description":"If the project has time entries tracked under billable, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"nonBillableHours":{"type":"integer","description":"If the project has time entries tracked under non-billable, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"nonBillableMinutes":{"type":"number","description":"If the project has time entries tracked under non-billable, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"remainingHours":{"type":"integer","description":"Number of hours left to complete the project or task based on tracked and budgeted hours.","format":"int32","readOnly":true,"example":530},"remainingMinutes":{"type":"integer","description":"Number of minutes left to complete the project or task and complements RemainingHours.","format":"int32","readOnly":true,"example":530},"progressPercentage":{"type":"integer","description":"The progress percentage is computed based on the number of tasks that are completed vs the total number of tasks in the project. This can be used to track how much the project has progressed over time.","format":"int32","readOnly":true,"example":42},"currentPhases":{"type":"array","description":"The phases that are currently marked as in progress are available here.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPhasePublicLiteAPIResponseEntity"}},"autoAllocation":{"type":"boolean","description":"The field autoAllocation defines whether Auto Allocation is enabled for the project or not. If auto allocation is enabled, instead of adding it manually, the allocations are computed from the tasks duration, effort and the assignees specified in the project.","example":false},"sources":{"type":"array","description":"Sources denotes the project templates involved in creation/ imported post creation of the project.","readOnly":true,"items":{"$ref":"#/components/schemas/ImportPublicAPIResponseEntity"}},"plannedDurationInDays":{"type":"integer","description":"The difference between `startDate` and `dueDate` is computed and stored in days as `plannedDurationInDays`.","format":"int32","readOnly":true,"example":24},"inferredProgress":{"type":"string","description":"The `inferredProgress` can be used to know whether the project's progress is as per the expectation. For eg: the value `ON_TRACK` specifies that the project is in good state and not further action would be necessary to track the progress of it, whereas the value `RUNNING_LATE` means that the project state deviates from the original plan and needs immediate attention.","readOnly":true,"example":"RUNNING_LATE","enum":["ON_TRACK","AHEAD_OF_TIME","RUNNING_LATE","NONE"]},"projectAgeInDays":{"type":"integer","description":"If both the project actual dates (`startDateActual` and `dueDateActual`) are available, the difference is computed and shown in days. If `dueDateActual` isn't available, then the value is computed by the difference of today's date and the available date under `startDateActual`. The value will be null or not present if `startDateActual` is not available.","format":"int32","readOnly":true,"example":38},"customersInvited":{"type":"integer","description":"Reflects the number of customers that have been invited to the project.","format":"int32","readOnly":true,"example":5},"customersJoined":{"type":"integer","description":"CustomersJoined tracks the actual number of customers who joined the project after being invited. It is mostly used to track customer engagement.","format":"int32","readOnly":true,"example":12},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","readOnly":true,"example":"pr_8171"}}},"ProjectPublicCreatedByResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the project."},"ProjectPublicUpdatedByResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the project"},"ProjectRateCardPublicResponse":{"minimum":1,"type":"object","properties":{"rateCardId":{"type":"integer","description":"The `rateCardId` is the unique identifier of the rate card","format":"int64","readOnly":true,"example":21},"rateCardName":{"type":"string","description":"The `rateCardName` is the name of the rate card","readOnly":true,"example":"US Project rate"}},"description":"Rate cards allow you to standardise bill rates to be charged depending on the roles of the project's resources. If the rate card chosen does not include the bill rates for the project's currency, then the project will not have a rate card set."},"ProjectResponseMembersResponse":{"type":"object","properties":{"members":{"type":"array","description":"The project team members.","items":{"$ref":"#/components/schemas/ProjectVendorUserPublicAPI"}},"customers":{"type":"array","description":"The project customers.","items":{"$ref":"#/components/schemas/ProjectCustomerUserPublicAPI"}},"customerChampion":{"$ref":"#/components/schemas/ProjectCustomerChampionUserPublicAPI"}},"description":"The teamMembers field can be used to specify the project members, customers and customerChampion. Once the project is created, an invite will be emailed to all the teamMembers specified."},"ProjectStatusPublicResponse":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field is the unique identifier for status fields.","format":"int32","readOnly":true,"example":2},"label":{"type":"string","description":"The label is the name of the status.","readOnly":true,"example":"In progress"}},"description":"The project status value along with the label will be present here."},"ProjectVendorUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who last updated the invoice"},"SubscriptionFinancialsPublicResponse":{"type":"object","properties":{"subscriptionFrequency":{"type":"string","description":"Refers to the interval at which a subscription renews or takes place, such as on a monthly, quarterly, or yearly basis.","example":"MONTHLY","enum":["MONTHLY","QUARTERLY","YEARLY","HALF_YEARLY"]},"subscriptionStartDate":{"type":"string","description":"The subscription start date is the date when the subscription interval begins. The format for the subscription start date is YYYY-MM-DD.","example":"2023-03-28"},"periodMinutes":{"minimum":1,"type":"integer","description":"Period minutes refer to the budgeted minutes for each subscription period.","format":"int32","example":60},"periodBudget":{"type":"number","description":"Period budget represents the fixed budget of every subscription period.","format":"double","example":10000},"noOfPeriods":{"minimum":1,"type":"integer","description":"Represents the number of periods in a subscription.","format":"int32","example":10}},"description":"This section addresses the financial aspects of the Subscription contract type projects and its associated fields.","readOnly":true},"TimeAndMaterialFinancialsPublicResponse":{"type":"object","properties":{"rateCard":{"$ref":"#/components/schemas/ProjectRateCardPublicResponse"},"projectBudget":{"minimum":1,"type":"number","description":"The project budget allocated for the Time & Material contract type project.","format":"double","example":100}},"description":"This section addresses the financial aspects of the Time & Material contract type projects and its associated fields.","readOnly":true},"ProjectFieldPublicRequestAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The unique identifier of the field","format":"int64","example":201},"fieldValue":{"type":"object","description":"The value of the field. It can either be a string or a number or number array. Refer [example](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about assigning value for different fields.","example":1000,"oneOf":[{"type":"string"},{"type":"number"}]}},"description":"The custom fields can be set during the project creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`."},"ProjectOwnerCreatePublicRequest":{"type":"object","properties":{"emailId":{"type":"string","description":"The project owner's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for project owner.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the project owner.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the project owner.","readOnly":true,"example":"Doe"}},"description":"The project owner gets access to everything in the project and can be used to control the activities that happens in the project. Note: Changing the owner can result in `transfer of ownership` from the older member to the specified member. All the access for the older member will be `revoked`."},"ProjectPublicStatusRequest":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field.","format":"int32","example":2}},"description":"The value of the project status can be specified here and this is essential to keep track of the project.","example":"In progress"},"ProjectPublicUpdateAPIRequestEntity":{"type":"object","properties":{"projectName":{"type":"string","description":"The `name` of the project. The name specified will be displayed everywhere else and can be used for filtering purposes.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both `startDate` and `dueDate` are specified, the latter must be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBERS` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS"]},"owner":{"$ref":"#/components/schemas/ProjectOwnerCreatePublicRequest"},"status":{"$ref":"#/components/schemas/ProjectPublicStatusRequest"},"fields":{"type":"array","description":"The custom fields can be set during the project creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/ProjectFieldPublicRequestAPIEntity"}},"annualizedRecurringRevenue":{"type":"integer","description":"Indicates the value of the recurring revenue of the customer's subscriptions for a single calendar year.","format":"int64","example":10000},"projectFee":{"type":"integer","description":"The total fee that is charged for the project.","format":"int64","example":100000},"autoAllocation":{"type":"boolean","description":"The field autoAllocation defines whether Auto Allocation is enabled for the project or not. If auto allocation is enabled, instead of adding it manually, the allocations are computed from the tasks duration, effort and the assignees specified in the project.","example":false},"budgetedHours":{"type":"number","description":"Budgeted hours represent the total hours allocated for project execution. This value can be edited at any point throughout the project's duration. You can enter the budgeted hours in decimal form, including both hours and minutes, with up to two decimal places of precision. Eg: 1.65 hrs = 1h 39m(1.65h * 60m = 99m).","format":"double","example":10.5},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","example":"pr_8171"}}},"PhaseCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the phase."},"PhasePublicAPIResponseEntity":{"type":"object","properties":{"phaseId":{"minimum":1,"type":"integer","description":"The phases's unique, system-generated identifier, which can be used to identify the phase globally.","format":"int64","readOnly":true,"example":201},"phaseName":{"type":"string","description":"The name of the phase.","example":"Kick off"},"project":{"$ref":"#/components/schemas/ProjectPublicAPIPhaseResponseEntity"},"startDate":{"type":"string","description":"On this date the phase's execution officially begins. . The due date is mandatory. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the phase's execution is planned to be completed. The due date is mandatory. The dueDate must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"startDateActual":{"type":"string","description":"The date on which the phase status is changed to in progress. The status can be either the default said status (in progress) or custom statuses that are categorised as in progress. It can be null for phases that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date when phase status gets changed to completed. The status can be either the default provided status (completed) or a custom status that is labelled under the Completed category. It will be null if the phase is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the phase was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the phase was last updated. Any changes that's related to the phase are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/PhaseCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/PhaseUpdatedByUserPublicAPI"},"status":{"$ref":"#/components/schemas/PhaseStatusPublicResponse"},"private":{"type":"boolean","description":"Describes the privacy of the phase i.e. if it is private or shared.","example":true}}},"PhaseStatusPublicResponse":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field is the unique identifier for status fields.","format":"int32","readOnly":true,"example":2},"label":{"type":"string","description":"The label is the name of the status.","readOnly":true,"example":"In progress"}},"description":"The phase status value along with the label will be present here."},"PhaseUpdatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the phase"},"ProjectPublicAPIPhaseResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme onboarding"}},"description":"The `project` associated with phase."},"PhasePublicUpdateAPIRequestEntity":{"type":"object","properties":{"phaseName":{"type":"string","description":"The `name` of the phase. The name specified will be displayed everywhere else and can be used for filtering purposes.","example":"Go live"},"startDate":{"type":"string","description":"On this date the phase's execution officially begins. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the phase's execution is planned to be completed. The `dueDate` must be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"status":{"$ref":"#/components/schemas/PhaseStatusPublicRequest"},"private":{"type":"boolean","description":"Describes the privacy of the phase i.e. if it is private or shared.","example":true}}},"PhaseStatusPublicRequest":{"type":"object","properties":{"value":{"minimum":1,"type":"integer","description":"The value of the status field.","format":"int32","example":2}},"description":"The value of the phase status can be specified here and this is essential to keep track of the phase."},"FieldCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team member's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the team member.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the team member.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the team member.","readOnly":true,"example":"Doe"}},"description":"The team member who created the field.","readOnly":true},"FieldModelPublicResponseAPIEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the custom field","readOnly":true,"example":"MRR"},"fieldDescription":{"type":"string","description":"The description of the field","example":"Priority of the bug."},"fieldType":{"type":"string","description":"This defines type of the field. Refer [Custom Fields](https://developer.rocketlane.com/v1.0/docs/custom-fields) for further information","readOnly":true,"example":"MULTI_LINE_TEXT","enum":["TEXT","MULTI_LINE_TEXT","YES_OR_NO","DATE","SINGLE_CHOICE","MULTIPLE_CHOICE","SINGLE_USER","MULTIPLE_USER","NUMBER","NOTE","RATING"]},"objectType":{"type":"string","description":"This defines type of object that is associated with the field. This could be `TASK`, `PROJECT` or `USER`.","readOnly":true,"example":"TASK"},"fieldOptions":{"type":"array","description":"The fieldOptions params define the value and label for the different options available for `SINGLE_CHOICE` and `MULTIPLE_CHOICE` fields.","readOnly":true,"items":{"$ref":"#/components/schemas/OptionsPublicAPIResponseEntity"}},"ratingScale":{"type":"string","description":"The number of stars in the Rating Scale when Field Type is `RATING`.","example":"THREE","enum":["THREE","FIVE","SEVEN","TEN"]},"createdBy":{"$ref":"#/components/schemas/FieldCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/FieldUpdatedByUserPublicAPI"},"createdAt":{"type":"integer","description":"The time when the field was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the field was last updated. Any changes that's related to the field are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"enabled":{"type":"boolean","description":"This depicts if the field is enabled or not. Only those fields which are enabled will reflect in the account.","example":false},"private":{"type":"boolean","description":"This depicts if the field is private or not.","example":false}}},"FieldUpdatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team member's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the team member.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the team member.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the team member.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the field.","readOnly":true},"OptionsPublicAPIResponseEntity":{"type":"object","properties":{"optionValue":{"minimum":1,"type":"integer","description":"The optionValue is the unique identifier and is unique for each field.","format":"int32","readOnly":true,"example":2},"optionLabel":{"minimum":1,"type":"string","description":"The optionLabel reflects the name of the options for the single or multiple choice field.","readOnly":true,"example":"Todo"},"optionColor":{"minimum":1,"type":"string","description":"The optionColor reflects the color of the options for the single or multiple choice field.","readOnly":true,"example":"RED","enum":["RED","YELLOW","GREEN","TEAL","CYAN","BLUE","PURPLE","MAGENTA","GRAY","COOL_GRAY"]}},"description":"The fieldOptions params define the value and label for the different options available for `SINGLE_CHOICE` and `MULTIPLE_CHOICE` fields.","readOnly":true},"FieldUpdatePublicRequest":{"type":"object","properties":{"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the field.","example":"Priority"},"fieldDescription":{"type":"string","description":"The description of the field.","example":"Priority of the bug."},"enabled":{"type":"boolean","description":"This depicts if the field is enabled or not. Only those fields which are enabled will reflect in the account.","example":false},"private":{"type":"boolean","description":"This depicts if the field is private or not.","example":false}}},"ConverationSourcePublicAPIResponseEntity":{"type":"object","properties":{"sourceId":{"minimum":1,"type":"integer","description":"Source Id attached to the conversation","format":"int64","example":201},"sourceType":{"minimum":1,"type":"string","description":"Source Type attached to the conversation","example":"PROJECT_CONVERSATION","enum":["PROJECT_CONVERSATION"]}},"description":"Source associated with the conversation"},"ConversationMemberPublicAPIEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"Email ID","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"User ID","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"First name","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"Last name","readOnly":true,"example":"Doe"}},"description":"Conversation members"},"ConversationPublicResponseAPIEntity":{"type":"object","properties":{"conversationName":{"type":"string","description":"Conversation name","example":"General chat"},"description":{"type":"string","description":"Conversation description","example":"This is the starting of the General chat"},"allMembers":{"type":"boolean","description":"Conversation all members inclusion","example":true},"members":{"type":"array","description":"Conversation members","items":{"$ref":"#/components/schemas/ConversationMemberPublicAPIEntity"}},"source":{"$ref":"#/components/schemas/ConverationSourcePublicAPIResponseEntity"},"conversationId":{"minimum":1,"type":"integer","description":"Conversation ID","format":"int64","readOnly":true,"example":201},"createdAt":{"type":"integer","description":"Conversation Created timestamp","format":"int64","readOnly":true,"example":1681319726000},"private":{"type":"boolean","description":"Conversation privacy","example":true}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ConversationPublicUpdateRequestAPI":{"type":"object","properties":{"conversationId":{"minimum":1,"type":"integer","description":"Conversation ID","format":"int64","readOnly":true,"example":201},"name":{"type":"string","description":"Conversation name","example":"General chat"},"description":{"type":"string","description":"Conversation description","example":"This is the starting of the General chat"},"allMembers":{"type":"boolean","description":"Conversation all members inclusion","example":true}}},"CommentAttachmentPublicAPIResponseEntity":{"type":"object","properties":{"attachmentId":{"type":"integer","description":"Attachment ID","format":"int64","example":201},"attachmentName":{"type":"string","description":"Attachment Name","example":"test_upload.png"},"createdAt":{"type":"integer","description":"Attachment Created timestamp","format":"int64","example":1680616174929},"location":{"type":"string","description":"Attachment Location","example":"https://rocketlane.com/attachments/0/db83eb19-0bbf-4a37-b4e2-cd1b96708c73/test_upload.png"},"thumbLocation":{"type":"string","description":"Attachment Thumb location","example":"https://rocketlane.com/attachments/0/db83eb19-0bbf-4a37-b4e2-cd1b96708c73/thumb_test_upload.png"},"visibility":{"type":"boolean","description":"Attachment Visibility","example":false}},"description":"List of attachments associated with the comment"},"CommentCreatedByResponsePublicAPIEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"Details of the user who created the comment"},"CommentPublicResponseAPIEntity":{"required":["source"],"type":"object","properties":{"commentId":{"minimum":1,"type":"integer","description":"Unique identifier for the comment","format":"int64","readOnly":true,"example":201},"content":{"type":"string","description":"Content of the comment","example":"This is a sample comment"},"createdAt":{"type":"integer","description":"Timestamp representing the creation time of the comment","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/CommentCreatedByResponsePublicAPIEntity"},"source":{"$ref":"#/components/schemas/CommentSourcePublicAPIResponseEntity"},"attachments":{"type":"array","description":"List of attachments associated with the comment","items":{"$ref":"#/components/schemas/CommentAttachmentPublicAPIResponseEntity"}},"private":{"type":"boolean","description":"Indicates whether the comment is private or public","example":true}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"CommentSourcePublicAPIResponseEntity":{"type":"object","properties":{"sourceId":{"minimum":1,"type":"integer","description":"Source Id attached to the comment","format":"int64","example":201},"sourceType":{"minimum":1,"type":"string","description":"Source Type attached to the comment","example":"PROJECT_CONVERSATIONS","enum":["TASK","PROJECT_CONVERSATIONS"]}},"description":"Source associated with the comment"},"CommentPublicUpdateRequestAPIEntity":{"type":"object","properties":{"commentId":{"minimum":1,"type":"integer","description":"Comment ID","format":"int64","readOnly":true,"example":201},"content":{"type":"string","description":"Updated comment content","example":"This is an updated comment"},"private":{"type":"boolean"}}},"TImeOffNotifyUsersPublicAPIResponse":{"type":"object","properties":{"projectOwners":{"type":"boolean","description":"Notify project owners of projects I'm part of.","example":false},"others":{"type":"array","description":"Users to notify about your time off.","items":{"$ref":"#/components/schemas/TimeOffOtherUsersPublicAPIResponse"}}},"description":"Users to notify about your time off."},"TimeOffCreatedByPublicResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the time off."},"TimeOffOtherUsersPublicAPIResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The email identifier of the user.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The user's unique, system-generated identifier, which can be used to identify the user globally.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"Users to notify about your time off."},"TimeOffPublicAPIResponseEntity":{"type":"object","properties":{"timeOffId":{"minimum":1,"type":"integer","description":"The unique `identifier` of the time-off is generated by the system and used to identify the time-off globally.","format":"int64","readOnly":true,"example":201},"user":{"$ref":"#/components/schemas/TimeOffUserPublicAPIResponseEntity"},"note":{"type":"string","description":"The note or comment about the time-off.","example":"Sick leave."},"startDate":{"type":"string","description":"The time-off start date. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"endDate":{"type":"string","description":"The time-off end date. The `endDate` must be on or after the `startDate`, formatted as _YYYY-MM-DD_.","example":"2023-03-28"},"durationInMinutes":{"type":"integer","description":"The `durationInmMinutes` per day for applied time off interval. For `FULL_DAY` time off, the duration is calculated as `CAPACITY_IN_MINUTES / WORKING_DAYS_OF_WEEK`, while for `HALF_DAY` time off, it is calculated as `(CAPACITY_IN_MINUTES / WORKING_DAYS_OF_WEEK) / 2`. These calculations are based on the user's defined capacity.","format":"int32","example":50},"type":{"type":"string","description":"The `type` of the time-off.","example":"FULL_DAY","enum":["FULL_DAY","HALF_DAY","CUSTOM"]},"notifyUsers":{"$ref":"#/components/schemas/TImeOffNotifyUsersPublicAPIResponse"},"createdAt":{"type":"integer","description":"The timestamp when the time-off was created, represented in epoch milliseconds.\n","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TimeOffCreatedByPublicResponse"}}},"TimeOffUserPublicAPIResponseEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the customer.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the customer.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the customer.","readOnly":true,"example":"Doe"}},"description":"The time-off user."},"TImeOffNotifyUsersPublicRequest":{"type":"object","properties":{"projectOwners":{"type":"boolean","description":"Notify project owners of projects I'm part of.","example":false},"others":{"type":"array","description":"Users to notify about your time off.","items":{"$ref":"#/components/schemas/TimeOffOtherUsersPublicRequest"}}},"description":"Users to notify about your time off."},"TimeOffOtherUsersPublicRequest":{"type":"object","properties":{"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"}},"description":"Users to notify about your time off."},"TimeOffPublicAPIRequestEntity":{"required":["endDate","startDate","type","user"],"type":"object","properties":{"timeOffId":{"minimum":1,"type":"integer","description":"The unique `identifier` of the time-off is generated by the system and used to identify the time-off globally.","format":"int64","readOnly":true,"example":201},"user":{"$ref":"#/components/schemas/TimeOffUserPublicAPIRequestEntity"},"note":{"type":"string","description":"The note or comment about the time-off.","example":"Sick leave."},"startDate":{"type":"string","description":"The time-off start date. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"endDate":{"type":"string","description":"The time-off end date. The `endDate` must be on or after the `startDate`, formatted as _YYYY-MM-DD_.","example":"2023-03-28"},"type":{"type":"string","description":"The `type` of the time-off.","example":"50","enum":["FULL_DAY","HALF_DAY","CUSTOM"]},"notifyUsers":{"$ref":"#/components/schemas/TImeOffNotifyUsersPublicRequest"},"durationInMinutes":{"minimum":1,"type":"integer","description":"The duration of time off is determined by the type selected: if the time off type is `CUSTOM`, the `durationInMinutes` field is `required`.","format":"int32","example":50}}},"TimeOffUserPublicAPIRequestEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the customer.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the customer.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the customer.","readOnly":true,"example":"Doe"}},"description":"The time-off user."},"TimeEntryPhasePublicAPIRequestEntity":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The unique identifier for the phase.","format":"int64","example":201},"phaseName":{"type":"string","description":"The name of the phase.","readOnly":true,"example":"Go live"}},"description":"Project phase associated with the time entry"},"TimeEntryProjectPublicAPIRequestEntity":{"type":"object","properties":{"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme Onboarding"},"projectId":{"type":"integer","description":"The unique identifier for the project.","format":"int64","example":204}},"description":"Project associated with the time entry"},"TimeEntryPublicAPIRequest":{"required":["date","minutes"],"type":"object","properties":{"timeEntryId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","format":"int64","readOnly":true,"example":201},"date":{"type":"string","description":"Date of the time entry in format YYYY-MM-DD","example":"2023-03-28"},"minutes":{"maximum":1440,"minimum":1,"type":"integer","description":"Duration of the time entry in minutes","format":"int32","example":250},"activityName":{"type":"string","description":"Name of the adhoc activity being performed","example":"Pre-Sales campaign"},"project":{"$ref":"#/components/schemas/TimeEntryProjectPublicAPIRequestEntity"},"task":{"$ref":"#/components/schemas/TimeEntryTaskPublicAPI"},"projectPhase":{"$ref":"#/components/schemas/TimeEntryPhasePublicAPIRequestEntity"},"billable":{"type":"boolean","description":"Whether the time entry is billable. Defaults to true","example":true,"default":true},"user":{"$ref":"#/components/schemas/TimesheetsUserPublicAPI"},"notes":{"type":"string","description":"Notes for the time entry","example":"Working on API integration"},"category":{"$ref":"#/components/schemas/TimeEntryCategoryPublicAPI"},"fields":{"type":"array","description":"The custom fields can be set during the time-entry creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/FieldPublicRequestAPIEntity"}}}},"TimesheetsUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"Email ID","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"User ID","format":"int64","example":201},"firstName":{"type":"string","description":"First name","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"Last name","readOnly":true,"example":"Doe"}},"description":"User associated with the time entry"},"TaskPublicAssigneeAPIResponseEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"archived":{"type":"boolean","description":"The field `archived` denotes whether the task is archived or not. The task if archived will not be available in all search requests.","example":false},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"createdAt":{"type":"integer","description":"The time when the task was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the task was last updated. Any changes that's related to the task are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskResponseEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/TaskFieldPublicResponseAPIEntity"}},"assignees":{"$ref":"#/components/schemas/AssigneePublicAPI"},"followers":{"$ref":"#/components/schemas/TaskFollowersPublicResponse"},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"TaskAddFollowersPublicRequest":{"type":"object","properties":{"members":{"type":"array","description":"The list includes both `team members` and `customers` assigned to the task.","items":{"$ref":"#/components/schemas/TaskAssigneeUserPublicAPI"}}}},"TaskAssigneeUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The user's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the customer. `userId` will take precedence if both `emailId` and `userId` are provided.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The list includes both `team members` and `customers` assigned to the task."},"TaskPublicDependenciesAPIResponseEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"archived":{"type":"boolean","description":"The field `archived` denotes whether the task is archived or not. The task if archived will not be available in all search requests.","example":false},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"createdAt":{"type":"integer","description":"The time when the task was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the task was last updated. Any changes that's related to the task are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskResponseEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/TaskFieldPublicResponseAPIEntity"}},"dependencies":{"type":"array","description":"Task Dependencies allow you to define relationships between tasks that are dependent on each other.\nNote: Rocketlane allows you to have finish to start task dependencies. This means that dependent tasks are meant to start after the dependencies are marked as Complete.","items":{"$ref":"#/components/schemas/TaskPublicLiteAPIResponseEntity"}},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"TaskDependencyPredecessorPublicRequest":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","format":"int64","example":201}},"description":"Task Dependencies allow you to define relationships between tasks that are dependent on each other.","example":201},"TaskDependencyPublicAPI":{"required":["dependencies"],"type":"object","properties":{"dependencies":{"type":"array","description":"Task Dependencies allow you to define relationships between tasks that are dependent on each other.","example":201,"items":{"$ref":"#/components/schemas/TaskDependencyPredecessorPublicRequest"}}}},"TaskAssigneePlaceholderPublicAPIRequestEntity":{"type":"object","properties":{"placeholderId":{"type":"integer","description":"The unique identifier for the placeholder.","format":"int64","example":201},"placeholderName":{"type":"string","description":"The name of the placeholder.","readOnly":true,"example":"Customer Success"},"role":{"$ref":"#/components/schemas/RoleResponsePublicAPI"}},"description":" Rocketlane's placeholders are associated with roles. Based on the kind of roles and expertise that are needed to execute a task, placeholders can be added as assignees to templates as well as projects. Eventually, you can resolve placeholders by replacing them with team members according to their availability and role.\nNote: If the project is not built using sources, this value will be ignored but the mappings are retained and can be used in the future"},"TaskAssigneePublicRequestAPI":{"type":"object","properties":{"members":{"type":"array","description":"The list includes both `team members` and `customers` assigned to the task.","items":{"$ref":"#/components/schemas/TaskAssigneeUserPublicAPI"}},"placeholders":{"type":"array","description":" Rocketlane's placeholders are associated with roles. Based on the kind of roles and expertise that are needed to execute a task, placeholders can be added as assignees to templates as well as projects. Eventually, you can resolve placeholders by replacing them with team members according to their availability and role.\nNote: If the project is not built using sources, this value will be ignored but the mappings are retained and can be used in the future","items":{"$ref":"#/components/schemas/TaskAssigneePlaceholderPublicAPIRequestEntity"}}}},"TaskPublicMovePhaseAPIResponseEntity":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"archived":{"type":"boolean","description":"The field `archived` denotes whether the task is archived or not. The task if archived will not be available in all search requests.","example":false},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"createdAt":{"type":"integer","description":"The time when the task was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the task was last updated. Any changes that's related to the task are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskResponseEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/TaskFieldPublicResponseAPIEntity"}},"phase":{"$ref":"#/components/schemas/TaskPhasePublicLiteAPIResponseEntity"},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"MovePhasePublicAPI":{"required":["phase"],"type":"object","properties":{"phase":{"$ref":"#/components/schemas/MoveTaskPhasePublicAPI"}}},"MoveTaskPhasePublicAPI":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The phases's unique, system-generated identifier, which can be used to identify the phase globally.","format":"int64","example":201},"phaseName":{"type":"string","description":"Phase Name","readOnly":true,"example":"Go live"}},"description":"The phase to which the task will be moved, associating the task with this phase."},"ProjectPublicAPITaskRequestEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The `identifier` of the project is generated by the system and can be used to identify the project globally.","format":"int64","example":201}},"description":"The `project` associated with task needs to be specified here and it is mandatory for the task to get created and map accordingly."},"TaskFollowersPublicRequest":{"type":"object","properties":{"members":{"type":"array","description":"The list includes both `team members` and `customers` assigned to the task.","items":{"$ref":"#/components/schemas/TaskAssigneeUserPublicAPI"}}},"description":"The task followers can be either `members` (team members or customers) or `placeholders`."},"TaskImportSourcePublicRequest":{"required":["startDate","templateId"],"type":"object","properties":{"templateId":{"type":"integer","description":"Task Template ID to import from","format":"int64","example":151532},"startDate":{"type":"string","description":"Start date for scheduling the imported task","format":"date","example":"2025-05-14T00:00:00.000Z"}},"description":"Source information for importing a task from a template"},"TaskParentPublicRequestAPI":{"type":"object","properties":{"taskId":{"type":"integer","description":"The unique identifier for the parent task.","format":"int64","example":201}},"description":"Parent task id","example":201},"TaskPhasePublicAPIRequestEntity":{"type":"object","properties":{"phaseId":{"type":"integer","description":"The unique identifier for the phase.","format":"int64","example":201},"phaseName":{"type":"string","description":"The name of the phase.","readOnly":true,"example":"Go live"}},"description":"The `phase` that needs to be associated with the task can be mentioned here. Note: The `phase` needs to be associated with the `project` and thus failing the task creation process."},"TaskPublicAPIRequestEntity":{"required":["project","taskName"],"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"taskPrivateNote":{"type":"string","description":"The `privateNote` for the task is intended exclusively for team members. The note's content should be in `HTML` format to prevent any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"type":{"type":"string","description":"The type of the task if specified will be available here. There are two options: `MILESTONE` or `TASK`. If a task is not explicitly marked as a milestone, it takes the default value as `TASK`. Milestones refer to critical tasks in the project that include an inbuilt CSAT capability that allows customers to offer CSAT evaluations depending on the task's execution.","example":"MILESTONE","enum":["TASK","MILESTONE"]},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskRequestEntity"},"phase":{"$ref":"#/components/schemas/TaskPhasePublicAPIRequestEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicRequest"},"fields":{"type":"array","description":"The custom fields can be set during the task creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/FieldPublicRequestAPIEntity"}},"assignees":{"$ref":"#/components/schemas/TaskAssigneePublicRequestAPI"},"followers":{"$ref":"#/components/schemas/TaskFollowersPublicRequest"},"parent":{"$ref":"#/components/schemas/TaskParentPublicRequestAPI"},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","example":"task_8171"},"source":{"$ref":"#/components/schemas/TaskImportSourcePublicRequest"},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}}},"ProjectPublicAPISpaceRequestEntity":{"required":["projectId"],"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier of the project associated with space.","format":"int64","example":201}},"description":"The `project` where the `space` exists."},"SpacePublicRequestEntity":{"required":["project","spaceName"],"type":"object","properties":{"spaceId":{"minimum":1,"type":"integer","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","format":"int64","readOnly":true,"example":201},"spaceName":{"type":"string","description":"The name of the space.","example":"Shared space"},"project":{"$ref":"#/components/schemas/ProjectPublicAPISpaceRequestEntity"},"private":{"type":"boolean","description":"Describes the privacy of the space i.e. if it is private or shared.","example":true,"default":false}}},"SpacePublicAPISpaceTabRequestEntity":{"type":"object","properties":{"spaceId":{"minimum":1,"type":"integer","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","format":"int64","example":201},"spaceName":{"type":"string","description":"The name of the space.","readOnly":true,"example":"General space"}},"description":"Information about the space to which the space document belongs to."},"SpaceTabImportPublicAPIRequestEntity":{"type":"object","properties":{"templateId":{"type":"integer","description":"The unique identifier for the template.","format":"int64","example":201},"templateName":{"type":"string","description":"The name of the template.","readOnly":true,"example":"Meeting Notes"}},"description":"Sources denote the document templates based on which the document is created"},"SpaceTabPublicRequestAPIEntity":{"required":["space","spaceDocumentType"],"type":"object","properties":{"spaceDocumentId":{"minimum":1,"type":"integer","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","format":"int64","readOnly":true,"example":201},"spaceDocumentName":{"type":"string","description":"The name of the space document.By default, the name is 'Untitled'.","example":"Sample file"},"space":{"$ref":"#/components/schemas/SpacePublicAPISpaceTabRequestEntity"},"spaceDocumentType":{"type":"string","description":"Defines the type of the space document. This could be a Rocketlane document or an embedded document.","example":"ROCKETLANE_DOCUMENT","enum":["ROCKETLANE_DOCUMENT","EMBEDDED_DOCUMENT"]},"url":{"type":"string","description":"The url that is embedded in the space document.","example":"https://www.google.com"},"source":{"$ref":"#/components/schemas/SpaceTabImportPublicAPIRequestEntity"}}},"PlaceholderMappingPublicAPIResponseEntity":{"type":"object","properties":{"placeholder":{"$ref":"#/components/schemas/ProjectPlaceholderResponsePublicAPI"},"placeholderStatus":{"type":"string","description":"The status of the placeholder: ASSIGNED or UNASSIGNED","example":"ASSIGNED","enum":["ASSIGNED","UNASSIGNED"]},"user":{"$ref":"#/components/schemas/PlaceholderMappingUserPublicAPIResponseEntity"},"hourlyCostRate":{"type":"number","description":"Latest hourly cost rate for the placeholder","example":100},"costRateCurrency":{"type":"string","description":"Currency for the cost rate","example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"hourlyBillRate":{"type":"number","description":"Latest hourly Bill rate for the placeholder","example":200},"billRateCurrency":{"type":"string","description":"Currency for the bill rate","example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]}},"description":"The list of placeholders and the user mappings."},"PlaceholderMappingUserPublicAPIResponseEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The member's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the member.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the project owner.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the project owner.","readOnly":true,"example":"Doe"},"role":{"type":"string","description":"Role name of the user assigned to the placeholder","readOnly":true,"example":"Project Manager"}},"description":"The member from the project to assign/replace the placeholder with."},"ProjectPlaceholderResponsePublicAPI":{"type":"object","properties":{"placeholderId":{"type":"integer","description":"The placeholder's unique, system-generated identifier, which can be used to identify the placeholder globally.","format":"int64","example":201},"placeholderName":{"type":"string","description":"The name of the placeholder.","readOnly":true,"example":"Customer Success"}},"description":"Placeholder"},"ProjectPublicPlaceholdersAPIResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the project was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicResponse"},"teamMembers":{"$ref":"#/components/schemas/ProjectResponseMembersResponse"},"status":{"$ref":"#/components/schemas/ProjectStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/ProjectFieldPublicResponseAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"partnerCompanies":{"type":"array","description":"The `partners` field contains list of partner companies.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIResponseEntity"}},"archived":{"type":"boolean","description":"The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.","example":false},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS","GROUP"]},"createdBy":{"$ref":"#/components/schemas/ProjectPublicCreatedByResponse"},"updatedBy":{"$ref":"#/components/schemas/ProjectPublicUpdatedByResponse"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"financials":{"$ref":"#/components/schemas/ProjectFinancialsPublicResponse"},"placeholders":{"type":"array","description":"The list of placeholders and the user mappings.","items":{"$ref":"#/components/schemas/PlaceholderMappingPublicAPIResponseEntity"}}}},"PlaceholderRemoveMappingPublicAPIRequestEntity":{"required":["placeholderId"],"type":"object","properties":{"placeholderId":{"type":"integer","description":"The unique identifier for the placeholder.","format":"int64","example":201}}},"ProjectPublicTeamMembersAPIResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the project was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicResponse"},"teamMembers":{"$ref":"#/components/schemas/ProjectResponseMembersResponse"},"status":{"$ref":"#/components/schemas/ProjectStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/ProjectFieldPublicResponseAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"partnerCompanies":{"type":"array","description":"The `partners` field contains list of partner companies.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIResponseEntity"}},"archived":{"type":"boolean","description":"The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.","example":false},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS","GROUP"]},"createdBy":{"$ref":"#/components/schemas/ProjectPublicCreatedByResponse"},"updatedBy":{"$ref":"#/components/schemas/ProjectPublicUpdatedByResponse"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"financials":{"$ref":"#/components/schemas/ProjectFinancialsPublicResponse"}}},"ProjectUsersPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team members from your organization working on the project."},"RemoveMembersPublicAPIRequestEntity":{"required":["members"],"type":"object","properties":{"members":{"type":"array","description":"The team members from your organization working on the project.","items":{"$ref":"#/components/schemas/ProjectUsersPublicAPI"}}}},"ProjectPublicImportTemplateAPIResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the project was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicResponse"},"teamMembers":{"$ref":"#/components/schemas/ProjectResponseMembersResponse"},"status":{"$ref":"#/components/schemas/ProjectStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/ProjectFieldPublicResponseAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"partnerCompanies":{"type":"array","description":"The `partners` field contains list of partner companies.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIResponseEntity"}},"archived":{"type":"boolean","description":"The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.","example":false},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS","GROUP"]},"createdBy":{"$ref":"#/components/schemas/ProjectPublicCreatedByResponse"},"updatedBy":{"$ref":"#/components/schemas/ProjectPublicUpdatedByResponse"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"financials":{"$ref":"#/components/schemas/ProjectFinancialsPublicResponse"},"sources":{"type":"array","description":"Sources denotes the project templates involved in creation/ imported post creation of the project.","readOnly":true,"items":{"$ref":"#/components/schemas/ImportPublicAPIResponseEntity"}}}},"ProjectImportPublicAPIRequestEntity":{"required":["startDate","templateId"],"type":"object","properties":{"prefix":{"type":"string","description":"A prefix can be used to distinguish which phase or task corresponds to which template when adding more than one source to a project.","example":"APAC"},"startDate":{"type":"string","description":"The date on which the template goes into effect for the project.","format":"date","example":"2023-03-28"},"templateId":{"type":"integer","description":"The unique identifier for the template.","format":"int64","example":201}}},"ExampleAPIResponsePlaceholders":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/PlaceholderPublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationPlaceholders"}}},"ExamplePaginationPlaceholders":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/placeholders?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"PlaceholderPublicResponseForExample":{"type":"object","properties":{"placeholderId":{"minimum":1,"type":"integer","description":"The placeholder's unique, system-generated identifier, which can be used to identify the placeholder globally.","format":"int64","readOnly":true,"example":201},"placeholderName":{"type":"string","description":"The name of the placeholder.","example":"Customer Success"},"project":{"$ref":"#/components/schemas/ProjectPublicAPIPlaceholderResponseEntity"},"role":{"$ref":"#/components/schemas/RolePublicAPIPlaceholderResponseEntity"},"placeholderType":{"type":"string","description":"The type of the placeholder.","enum":["NATIVE","EXTERNAL"]},"createdAt":{"type":"integer","description":"The time when the placeholder was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the placeholder was updated. The referenced time will be in epoch millis.","format":"int64","example":1681319726000}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ProjectPublicAPIPlaceholderResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme onboarding"}},"description":"The project of the placeholder."},"RolePublicAPIPlaceholderResponseEntity":{"type":"object","properties":{"roleId":{"minimum":1,"type":"integer","description":"The role's unique, system-generated identifier, which can be used to identify the role globally.","format":"int64","readOnly":true,"example":201},"roleName":{"type":"string","description":"The name of the role.","readOnly":true,"example":"Customer Success"}},"description":"The role of the placeholder."},"PlaceholderMappingPublicAPIRequestEntity":{"required":["placeholderId","user"],"type":"object","properties":{"placeholderId":{"type":"integer","description":"The unique identifier for the placeholder.","format":"int64","example":201},"user":{"$ref":"#/components/schemas/PlaceholderMappingUserPublicAPIRequestEntity"}}},"PlaceholderMappingUserPublicAPIRequestEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The member's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the member.","format":"int64","example":201}},"description":"The member from the project to assign/replace the placeholder with. If the placeholder's type is `CUSTOMER`, then the assigning user needs to be a customer user."},"ProjectAddMembersPublicRequest":{"type":"object","properties":{"members":{"type":"array","description":"The project team members.","items":{"$ref":"#/components/schemas/ProjectVendorUserPublicAPI"}},"customers":{"type":"array","description":"The project customers.","items":{"$ref":"#/components/schemas/ProjectCustomerUserPublicAPI"}}}},"CustomerCompanyProjectPublicRequest":{"type":"object","properties":{"companyName":{"type":"string","description":"The name of the customer company","example":"Acme Inc"},"companyId":{"minimum":1,"type":"integer","description":"The company's unique, system-generated identifier, which can be used to identify the company globally.","format":"int64","readOnly":true,"example":201}},"description":"This field is required to identify the `customer` as part of the request. The customer's name is case-sensitive, and an exact match is required for further processing. It should be noted that once the customer information is entered, it cannot be modified during the project's lifespan."},"FixedFeeFinancialsPublicRequest":{"required":["fixedFee"],"type":"object","properties":{"fixedFee":{"minimum":0,"type":"number","description":"The project fee for the Fixed fee contract type project.","format":"double","example":100.25}},"description":"This section addresses the financial aspects of the Fixed Fee contract type projects and its associated fields."},"MembersPublicAPI":{"type":"object","properties":{"members":{"type":"array","description":"The team members from your organization who will be working on the project.","items":{"$ref":"#/components/schemas/ProjectVendorUserPublicAPI"}},"customers":{"type":"array","description":"The customer stakeholders involved in the project.","items":{"$ref":"#/components/schemas/ProjectCustomerUserPublicAPI"}},"customerChampion":{"$ref":"#/components/schemas/ProjectCustomerChampionUserPublicAPI"}},"description":"The teamMembers field can be used to specify the project members, customers and customerChampion. Once the project is created, an invite will be emailed to all the `teamMembers` specified."},"ProjectFinancialDetailsPublicRequest":{"required":["contractType"],"type":"object","properties":{"contractType":{"minimum":1,"type":"string","description":"The contract type or the billing method for the project financials.","enum":["FIXED_FEE","TIME_AND_MATERIAL","NON_BILLABLE","SUBSCRIPTION"]},"fixedFeeContract":{"$ref":"#/components/schemas/FixedFeeFinancialsPublicRequest"},"timeAndMaterialContract":{"$ref":"#/components/schemas/TimeAndMaterialFinancialsPublicRequest"},"subscriptionContract":{"$ref":"#/components/schemas/SubscriptionFinancialsPublicRequest"}},"description":"This section addresses the financial aspects of the projects and the associated fields.","example":1000},"ProjectOwnerUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The project owner's email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for project owner.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the project owner.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the project owner.","readOnly":true,"example":"Doe"}},"description":"The project owner is mandatory to be specified along with the project creation. The owner gets access to everything in the project and can be used to control the activities that happens in the project. Project owner will receive project invite email based on their notification configuration"},"ProjectPartnerCompanyPublicAPIRequestEntity":{"type":"object","properties":{"companyName":{"type":"string","description":"Company Name","example":"Modert Inc"},"companyId":{"type":"integer","description":"The id of partner company","format":"int64","example":201}},"description":"The `partners` field is used to specify partner companies."},"ProjectPublicAPIRequestEntity":{"required":["customer","owner","projectName"],"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The `identifier` of the project is generated by the system and can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The `name` of the project. The name specified will be displayed everywhere else and can be used for filtering purposes.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both `startDate` and `dueDate` are specified, the latter must be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBERS` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS"]},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicAPI"},"teamMembers":{"$ref":"#/components/schemas/MembersPublicAPI"},"status":{"$ref":"#/components/schemas/ProjectPublicStatusRequest"},"fields":{"type":"array","description":"The custom fields can be set during the project creation with the help of `fields`. The `fieldValue` can be either a string or a number or an array and it has to comply with the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how to assign `fieldValue` based on their `field_type`.","items":{"$ref":"#/components/schemas/ProjectFieldPublicRequestAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicRequest"},"partners":{"type":"array","description":"The `partners` field is used to specify partner companies.","items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIRequestEntity"}},"sources":{"type":"array","description":"Sources denotes the project templates involved in creation/ imported post creation of the `project`.","items":{"$ref":"#/components/schemas/ProjectImportPublicAPIRequestEntity"}},"assignProjectOwner":{"type":"boolean","description":"When a project is created, you can use this param to automatically assign any unassigned tasks to the **project owner**. Note: If the project hasn't been created using sources, this value will be skipped.","example":false},"placeholders":{"type":"array","description":"Rocketlane's placeholders are associated with roles. Based on the kind of roles and expertise that are needed to execute a task, placeholders can be added as assignees to templates as well as projects. Eventually, you can resolve placeholders by replacing them with team members according to their availability and role.\nNote: If the project is not built using sources, this value will be ignored but the mappings are retained and can be used in the future.","items":{"$ref":"#/components/schemas/PlaceholderMappingPublicAPIRequestEntity"}},"annualizedRecurringRevenue":{"type":"integer","description":"Indicates the value of the recurring revenue of the customer's subscriptions for a single calendar year.","format":"int64","example":10000},"projectFee":{"type":"integer","description":"The total fee that is charged for the project.","format":"int64","example":100000},"autoAllocation":{"type":"boolean","description":"The field autoAllocation defines whether Auto Allocation is enabled for the project or not. If auto allocation is enabled, instead of adding it manually, the allocations are computed from the tasks duration, effort and the assignees specified in the project.","example":false},"autoCreateCompany":{"type":"boolean","description":"The field auto create company defines whether company should be created as part of the project creation. If the field is set to true, then if the company exists we re-use the company and proceed further. Else we will create a new company.","example":false},"budgetedHours":{"minimum":0,"type":"number","description":"Budgeted hours represent the total hours allocated for project execution. This value can be edited at any point throughout the project's duration. You can enter the budgeted hours in decimal form, including both hours and minutes, with up to two decimal places of precision. Eg: 1.65 hrs = 1h 39m(1.65h * 60m = 99m).","format":"double","example":10.5},"financials":{"$ref":"#/components/schemas/ProjectFinancialDetailsPublicRequest"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","example":"pr_8171"}}},"ProjectRateCardPublicRequest":{"minimum":1,"type":"object","properties":{"rateCardId":{"minimum":1,"type":"integer","description":"The `rateCardId` is the unique identifier of the rate card","format":"int64","example":21}},"description":"Rate cards allow you to standardise bill rates to be charged depending on the roles of the project's resources. If the rate card chosen does not include the bill rates for the project's currency, then the project will not have a rate card set.","example":173},"SubscriptionFinancialsPublicRequest":{"required":["noOfPeriods","periodBudget","periodMinutes","subscriptionFrequency","subscriptionStartDate"],"type":"object","properties":{"subscriptionFrequency":{"type":"string","description":"Refers to the interval at which a subscription renews or takes place, such as on a monthly, quarterly, or yearly basis.","example":"MONTHLY","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"]},"subscriptionStartDate":{"type":"string","description":"The subscription start date is the date when the subscription interval begins. The format for the subscription start date is YYYY-MM-DD.","example":"2023-03-28"},"periodMinutes":{"minimum":1,"type":"integer","description":"Period minutes refer to the budgeted minutes for each subscription period.","format":"int32","example":60},"periodBudget":{"type":"number","description":"Period budget represents the fixed budget of every subscription period.","format":"double","example":10000},"noOfPeriods":{"minimum":1,"type":"integer","description":"Represents the number of periods in a subscription.","format":"int32","example":10}},"description":"This section addresses the financial aspects of the Subscription contract type projects and its associated fields."},"TimeAndMaterialFinancialsPublicRequest":{"type":"object","properties":{"rateCard":{"$ref":"#/components/schemas/ProjectRateCardPublicRequest"},"projectBudget":{"minimum":0,"type":"number","description":"The project budget allocated for the Time & Material contract type project.","format":"double","example":100.25}},"description":"This section addresses the financial aspects of the Time & Material contract type projects and its associated fields."},"PhasePublicAPIRequestEntity":{"required":["dueDate","phaseName","project","startDate"],"type":"object","properties":{"phaseId":{"minimum":1,"type":"integer","description":"The `identifier` of the phase is generated by the system and can be used to identify the phase globally.","format":"int64","readOnly":true,"example":201},"phaseName":{"type":"string","description":"The `name` of the phase. The name specified will be displayed everywhere else and can be used for filtering purposes.","example":"Kick off"},"project":{"$ref":"#/components/schemas/ProjectPublicAPIPhaseRequestEntity"},"startDate":{"type":"string","description":"On this date the phase's execution officially begins. The start date is required. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the phase's execution is planned to be completed. The due date is required and cannot be left blank. The `dueDate` must be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"status":{"$ref":"#/components/schemas/PhaseStatusPublicRequest"},"private":{"type":"boolean","description":"Describes the privacy of the phase i.e. if it is private or shared.","example":true}}},"ProjectPublicAPIPhaseRequestEntity":{"required":["projectId"],"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The `identifier` of the project is generated by the system and can be used to identify the project globally.","format":"int64","example":201}},"description":"The `project` associated with phase needs to be specified here and it is mandatory for the phase to get created and map accordingly."},"FieldOptionUpdatePublicRequest":{"required":["optionValue"],"type":"object","properties":{"optionValue":{"type":"integer","description":"The optionValue is the unique identifier and is unique for each field.","format":"int32","example":3},"optionColor":{"type":"string","description":"The optionColor reflects the color of the options for the single or multiple choice field.","example":"RED","enum":["RED","YELLOW","GREEN","TEAL","CYAN","BLUE","PURPLE","MAGENTA","GRAY","COOL_GRAY"]},"optionLabel":{"type":"string","description":"The optionLabel reflects the name of the options for the single or multiple choice field.","example":"High"}}},"FieldOptionPublicRequest":{"required":["optionColor","optionLabel"],"type":"object","properties":{"optionColor":{"type":"string","description":"The optionColor reflects the color of the options for the single or multiple choice field.","example":"RED","enum":["RED","YELLOW","GREEN","TEAL","CYAN","BLUE","PURPLE","MAGENTA","GRAY","COOL_GRAY"]},"optionLabel":{"type":"string","description":"The optionLabel reflects the name of the options for the single or multiple choice field.","example":"High"}}},"FieldPublicRequest":{"required":["fieldLabel","fieldType","objectType"],"type":"object","properties":{"fieldId":{"minimum":0,"type":"integer","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the field.","example":"Priority"},"fieldDescription":{"type":"string","description":"The description of the field.","example":"Priority of the bug."},"fieldType":{"type":"string","description":"This defines type of the field. Refer [Custom Fields](https://developer.rocketlane.com/v1.0/docs/custom-fields) for further information","example":"MULTI_LINE_TEXT","enum":["TEXT","MULTI_LINE_TEXT","YES_OR_NO","DATE","SINGLE_CHOICE","MULTIPLE_CHOICE","SINGLE_USER","MULTIPLE_USER","NUMBER","NOTE","RATING"]},"objectType":{"type":"string","description":"This defines type of object that is associated with the field. This could be `TASK`, `PROJECT` or `USER`.","example":"PROJECT","enum":["PROJECT","TASK","USER"]},"fieldOptions":{"type":"array","description":"The fieldOptions params define the value and label for the different options available for `SINGLE_CHOICE` and `MULTIPLE_CHOICE` fields.","items":{"$ref":"#/components/schemas/FieldOptionPublicRequest"}},"ratingScale":{"type":"string","description":"The number of stars in the Rating Scale when Field Type is `RATING`.","example":"THREE","enum":["THREE","FIVE","SEVEN","TEN"]},"enabled":{"type":"boolean","description":"This depicts if the field is enabled or not. Only those fields which are enabled will reflect in the account.","example":false,"default":true},"private":{"type":"boolean","description":"This depicts if the field is private or not.","example":false}}},"ConversationMembersAPI":{"type":"object","properties":{"conversationId":{"minimum":1,"type":"integer","description":"Conversation ID","format":"int64","readOnly":true,"example":201},"members":{"type":"array","description":"Conversation Members","items":{"$ref":"#/components/schemas/UserPublicAPI"}}}},"UserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"Email ID","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"User ID","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"First name","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"Last name","readOnly":true,"example":"Doe"}},"description":"Conversation Members"},"ConversationMemberPublicAPIRequestEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"Conversation members"},"ConversationPublicRequestAPIEntity":{"required":["name","source"],"type":"object","properties":{"name":{"type":"string","description":"Conversation name","example":"General chat"},"description":{"type":"string","description":"Conversation description","example":"This is the starting of the General chat"},"source":{"$ref":"#/components/schemas/ConversationSourcePublicAPIRequestEntity"},"allMembers":{"type":"boolean","description":"Conversation all members inclusion","example":true},"members":{"type":"array","description":"Conversation members","items":{"$ref":"#/components/schemas/ConversationMemberPublicAPIRequestEntity"}},"private":{"type":"boolean","description":"Conversation privacy","example":true}}},"ConversationSourcePublicAPIRequestEntity":{"required":["sourceId","sourceType"],"type":"object","properties":{"sourceId":{"minimum":1,"type":"integer","description":"Source Id attached to the conversation","format":"int64","example":201},"sourceType":{"type":"string","description":"Source Type attached to the conversation","example":"PROJECT_CONVERSATION","enum":["PROJECT_CONVERSATION"]}},"description":"Source associated with the conversation"},"CommentAttachmentPublicAPIRequestEntity":{"required":["file"],"type":"object","properties":{"attachmentId":{"type":"integer","description":"Attachment ID","format":"int64","example":201},"file":{"type":"string","format":"binary"}},"description":"List of attachments associated with the comment"},"CommentPublicAPIRequestEntity":{"required":["content","source"],"type":"object","properties":{"content":{"type":"string","description":"Content of the comment","example":"This is a comment"},"source":{"$ref":"#/components/schemas/CommentSourcePublicAPIRequestEntity"},"attachments":{"type":"array","description":"List of attachments associated with the comment","items":{"$ref":"#/components/schemas/CommentAttachmentPublicAPIRequestEntity"}},"private":{"type":"boolean"}}},"CommentSourcePublicAPIRequestEntity":{"required":["sourceId","sourceType"],"type":"object","properties":{"sourceId":{"minimum":1,"type":"integer","description":"Source Id attached to the comment","format":"int64","example":201},"sourceType":{"type":"string","description":"Source Type attached to the comment","example":"PROJECT_CONVERSATIONS","enum":["TASK","PROJECT_CONVERSATIONS"]}},"description":"Source associated with the comment"},"FieldUsersPublicAPIResponse":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The custom user field’s unique, system-generated identifier, which can be used to identify the role globally.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the custom user field.","readOnly":true,"example":"MRR"},"fieldValue":{"type":"string","description":" The fieldValue is the value provided while creation or updating the user information. The fieldValue can be a string, an integer, or an number array and it will match the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with user.","readOnly":true,"example":"1000"},"fieldValueLabel":{"type":"string","description":"The `fieldValueLabel` is the value provided while creation or updating in a String format.","readOnly":true,"example":"1000"}},"description":"Custom user fields can be created and their values set during user creation. These values can also be added or edited later. The field value can be a string, number, or array, and must align with the field type. Refer [e xamples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with user."},"PermissionUsersPublicAPIResponse":{"type":"object","properties":{"permissionId":{"minimum":1,"type":"integer","description":"The unique system-generated identifier for permission, which can be used to identify the permission globally.","format":"int64","readOnly":true,"example":933},"permissionName":{"type":"string","description":"The name of the permission.","readOnly":true,"example":"Account Admin"}},"description":"The Permission of the user."},"RoleUsersPublicAPIResponse":{"type":"object","properties":{"roleId":{"minimum":1,"type":"integer","description":"The role's unique, system-generated identifier, which can be used to identify the role globally.","format":"int64","readOnly":true,"example":136},"roleName":{"type":"string","description":"The name of the role.","readOnly":true,"example":"Customer Success"}},"description":"The role of the user."},"UsersCompanyPublicAPIResponse":{"type":"object","properties":{"companyId":{"type":"integer","description":"The company's unique, system-generated identifier, which can be used to identify the company globally.","format":"int64","readOnly":true,"example":116},"companyName":{"type":"string","description":"The name of the company of the user.","readOnly":true,"example":"Modert"}},"description":"The company of the user."},"UsersCreatedByResponse":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the information of the user."},"UsersHolidayCalendarPublicAPIResponse":{"type":"object","properties":{"calenderId":{"type":"integer","description":"The unique system-generated identifier for calendar, which can be used to identify the permission globally.","format":"int64","readOnly":true,"example":93},"calenderName":{"type":"string","description":"The name of the calendar.","readOnly":true,"example":"India Holiday Calendar"}},"description":"The Holiday calendar of the user."},"UsersPublicAPIResponse":{"type":"object","properties":{"userId":{"minimum":1,"type":"integer","description":"The user's unique, system-generated identifier, which can be used to identify the user globally.","format":"int64","readOnly":true,"example":201},"email":{"minimum":1,"type":"string","description":"The email identifier of the user.","readOnly":true,"example":"johndoe@rocketlane.com"},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"},"type":{"minimum":1,"type":"string","description":"The type of the user.","readOnly":true,"example":"TEAM_MEMBER","enum":["TEAM_MEMBER","PARTNER","CUSTOMER","EXTERNAL_PARTNER"]},"status":{"type":"string","description":"The status of the user.","readOnly":true,"example":"ACTIVE","enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"]},"role":{"$ref":"#/components/schemas/RoleUsersPublicAPIResponse"},"company":{"$ref":"#/components/schemas/UsersCompanyPublicAPIResponse"},"permission":{"$ref":"#/components/schemas/PermissionUsersPublicAPIResponse"},"fields":{"type":"array","description":"Custom user fields can be created and their values set during user creation. These values can also be added or edited later. The field value can be a string, number, or array, and must align with the field type. Refer [e xamples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with user.","items":{"$ref":"#/components/schemas/FieldUsersPublicAPIResponse"}},"capacityInMinutes":{"minimum":5,"type":"integer","description":"The capacity of user, should be multiples of 5, default value is capacity configured in profile.","format":"int32","example":2400},"holidayCalendar":{"$ref":"#/components/schemas/UsersHolidayCalendarPublicAPIResponse"},"profilePictureUrl":{"type":"string","description":"The URL of the user's profile picture.","example":"https://s3.amazonaws.com/rocketlane-profile-pic-public/_default/ftue/John.jpg"},"createdAt":{"type":"integer","description":"The time when the user was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/UsersCreatedByResponse"},"updatedAt":{"type":"integer","description":"The time when the user's information was updated. Any changes that's related to the user are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedBy":{"$ref":"#/components/schemas/UsersCreatedByResponse"}}},"ExampleAPIResponseUsers":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/UsersPublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationUsers"}}},"ExamplePaginationUsers":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/users?includeFields=capacityInMinutes&status.eq=ACTIVE&sortBy=status&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"UsersPublicResponseForExample":{"type":"object","properties":{"userId":{"minimum":1,"type":"integer","description":"The user's unique, system-generated identifier, which can be used to identify the user globally.","format":"int64","readOnly":true,"example":201},"email":{"minimum":1,"type":"string","description":"The email identifier of the user.","readOnly":true,"example":"johndoe@rocketlane.com"},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"},"type":{"minimum":1,"type":"string","description":"The type of the user.","readOnly":true,"example":"TEAM_MEMBER","enum":["TEAM_MEMBER","PARTNER","CUSTOMER","EXTERNAL_PARTNER"]},"status":{"type":"string","description":"The status of the user.","readOnly":true,"example":"ACTIVE","enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"]},"role":{"$ref":"#/components/schemas/RoleUsersPublicAPIResponse"},"company":{"$ref":"#/components/schemas/UsersCompanyPublicAPIResponse"},"permission":{"$ref":"#/components/schemas/PermissionUsersPublicAPIResponse"},"fields":{"type":"array","description":"Custom user fields can be created and their values set during user creation. These values can also be added or edited later. The field value can be a string, number, or array, and must align with the field type. Refer [e xamples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with user.","items":{"$ref":"#/components/schemas/FieldUsersPublicAPIResponse"}},"capacityInMinutes":{"minimum":5,"type":"integer","description":"The capacity of user, should be multiples of 5, default value is capacity configured in profile.","format":"int32","example":2400},"holidayCalendar":{"$ref":"#/components/schemas/UsersHolidayCalendarPublicAPIResponse"},"profilePictureUrl":{"type":"string","description":"The URL of the user's profile picture.","example":"https://s3.amazonaws.com/rocketlane-profile-pic-public/_default/ftue/John.jpg"},"createdAt":{"type":"integer","description":"The time when the user was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/UsersCreatedByResponse"},"updatedAt":{"type":"integer","description":"The time when the user's information was updated. Any changes that's related to the user are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedBy":{"$ref":"#/components/schemas/UsersCreatedByResponse"}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseTimeOffs":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/TimeOffPublicAPIResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationTimeOffs"}}},"ExamplePaginationTimeOffs":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/time-offs?includeFields=note&sortBy=start&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"TimeOffPublicAPIResponseForExample":{"type":"object","properties":{"timeOffId":{"minimum":1,"type":"integer","description":"The unique `identifier` of the time-off is generated by the system and used to identify the time-off globally.","format":"int64","readOnly":true,"example":201},"user":{"$ref":"#/components/schemas/TimeOffUserPublicAPIResponseEntity"},"note":{"type":"string","description":"The note or comment about the time-off.","example":"Sick leave."},"startDate":{"type":"string","description":"The time-off start date. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"endDate":{"type":"string","description":"The time-off end date. The `endDate` must be on or after the `startDate`, formatted as _YYYY-MM-DD_.","example":"2023-03-28"},"durationInMinutes":{"type":"integer","description":"The `durationInmMinutes` per day for applied time off interval. For `FULL_DAY` time off, the duration is calculated as `CAPACITY_IN_MINUTES / WORKING_DAYS_OF_WEEK`, while for `HALF_DAY` time off, it is calculated as `(CAPACITY_IN_MINUTES / WORKING_DAYS_OF_WEEK) / 2`. These calculations are based on the user's defined capacity.","format":"int32","example":50},"type":{"type":"string","description":"The `type` of the time-off.","example":"FULL_DAY","enum":["FULL_DAY","HALF_DAY","CUSTOM"]},"notifyUsers":{"$ref":"#/components/schemas/TImeOffNotifyUsersPublicAPIResponse"},"createdAt":{"type":"integer","description":"The timestamp when the time-off was created, represented in epoch milliseconds.\n","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TimeOffCreatedByPublicResponse"}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseTimeEntries":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/TimeEntryPublicAPIResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationTimeEntries"}}},"ExamplePaginationTimeEntries":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/time-entries?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"TimeEntryPublicAPIResponseForExample":{"type":"object","properties":{"timeEntryId":{"minimum":1,"type":"integer","description":"The unique, system-generated identifier, which can be used to identify the time entry globally.","format":"int64","readOnly":true,"example":201},"date":{"type":"string","description":"Date of the time entry in format YYYY-MM-DD","example":"2023-03-28"},"minutes":{"maximum":1440,"minimum":1,"type":"integer","description":"Duration of the time entry in minutes","format":"int32","example":250},"activityName":{"type":"string","description":"Name of the adhoc activity being performed","example":"Pre-Sales campaign"},"project":{"$ref":"#/components/schemas/TimeEntryProjectPublicAPIResponseEntity"},"task":{"$ref":"#/components/schemas/TimeEntryTaskPublicAPI"},"projectPhase":{"$ref":"#/components/schemas/TimeEntryPhasePublicAPIResponseEntity"},"createdAt":{"type":"integer","description":"Timestamp of creation time of the entry in epoch milliseconds","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"Timestamp of last updated time of the entry in epoch milliseconds","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TimeEntryCreatedByPublicResponse"},"updatedBy":{"$ref":"#/components/schemas/TimeEntryUpdatedByPublicResponse"},"billable":{"type":"boolean","description":"Whether the time entry is billable. Defaults to true","example":true,"default":true},"user":{"$ref":"#/components/schemas/UserPublicAPIResponseEntity"},"notes":{"type":"string","description":"Notes for the time entry","example":"Working on API integration"},"category":{"$ref":"#/components/schemas/TimeEntryCategoryPublicAPI"},"sourceType":{"type":"string","description":"Type of source of the time entry Eg: Task, Adhoc (Activity), Milestone","readOnly":true,"example":"Task","enum":["GOOGLE_CALENDAR","OUTLOOK_CALENDAR","TASK","PROJECT","PHASE","ADHOC","MILESTONE"]},"status":{"type":"string","description":"Status of the time entry","enum":["NOT_SUBMITTED","SUBMITTED","APPROVED","REJECTED"]},"submittedBy":{"$ref":"#/components/schemas/TimeEntrySubmittedByPublicResponse"},"submittedAt":{"type":"integer","description":"Time of submission for time entry\n\nNote: This field may be null, even when the time entry is in an APPROVED or REJECTED state, as time entries can be approved or rejected without an explicit submission step.","format":"int64","readOnly":true,"example":1681319726000},"approvedBy":{"$ref":"#/components/schemas/TimeEntryApprovedByPublicResponse"},"approvedAt":{"type":"integer","description":"Time of approval for time entry","format":"int64","readOnly":true,"example":1681319726000},"rejectedBy":{"$ref":"#/components/schemas/TimeEntryRejectedByPublicResponse"},"rejectedAt":{"type":"integer","description":"Time of rejection for time entry","format":"int64","readOnly":true,"example":1681319726000},"deleted":{"type":"boolean","description":"Whether the time entry is deleted.","example":true},"costRate":{"$ref":"#/components/schemas/TimeEntryCostRatePublicAPI"},"billRate":{"$ref":"#/components/schemas/TimeEntryBillRatePublicAPI"},"fields":{"type":"array","description":"Custom fields associated with the time entry","items":{"$ref":"#/components/schemas/TimeEntryFieldPublicResponseAPIEntity"}}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseTimeEntryCategories":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/TimeEntryCategoryPublicForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationTimeEntryCategories"}}},"ExamplePaginationTimeEntryCategories":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/time-entries/categories?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"TimeEntryCategoryPublicForExample":{"type":"object","properties":{"categoryName":{"type":"string","description":"The name of the category.","readOnly":true,"example":"Pre-sales"},"categoryId":{"type":"integer","description":"The unique identifier for the category.","format":"int64","example":8}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseTasks":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/TaskPublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationTasks"}}},"ExamplePaginationTasks":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/tasks?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"TaskPublicResponseForExample":{"type":"object","properties":{"taskId":{"minimum":1,"type":"integer","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","format":"int64","readOnly":true,"example":201},"taskName":{"type":"string","description":"The **name** of the task.","example":"Kick off"},"taskDescription":{"type":"string","description":"The `description` of the task. The description body needs to be in **html** format to avoid any formatting issues in the application.","example":"

Schedule Kick off meeting with the stakeholders involved.

"},"startDate":{"type":"string","description":"The date when a task starts its execution. It can be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The date when a task completes its execution. It can be empty. If both `startDate` and `dueDate` are specified for a given task, it is necessary that the latter should be on or after the given `startDate`. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"archived":{"type":"boolean","description":"The field `archived` denotes whether the task is archived or not. The task if archived will not be available in all search requests.","example":false},"effortInMinutes":{"type":"integer","description":"The effort is the expected time required to complete the task. The value is determined in minutes.","format":"int32","example":3000},"progress":{"type":"integer","description":"The task's progress, if indicated, will be available here and ranges in value from 0 to 100. The task's status can be used in place of this field, however progress can offer more precise data.","format":"int32","example":50},"atRisk":{"type":"boolean","description":"Indicates whether the task has been marked as At Risk. This parameter is used to indicate that immediate action is necessary to unblock the task's execution.","example":true},"createdAt":{"type":"integer","description":"The time when the task was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the task was last updated. Any changes that's related to the task are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/TaskCreatedByUserPublicAPI"},"project":{"$ref":"#/components/schemas/ProjectPublicAPITaskResponseEntity"},"status":{"$ref":"#/components/schemas/TaskStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/TaskFieldPublicResponseAPIEntity"}},"startDateActual":{"type":"string","description":"The date on which the task status is changed to **In Progress**. The status can be either the default (**In Progress**) status or a custom status that is categorized as **In Progress**. It can be null for tasks that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date on which the task status is changed to **Completed**. The status can be either the default status **Completed** or a custom status that is categorized as **Completed**. It will be null if the task is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"type":{"type":"string","description":"The type of the task if specified will be available here. There are two options: `MILESTONE` or `TASK`. If a task is not explicitly marked as a milestone, it takes the default value as `TASK`. Milestones refer to critical tasks in the project that include an inbuilt CSAT capability that allows customers to offer CSAT evaluations depending on the task's execution.","example":"MILESTONE","enum":["TASK","MILESTONE"]},"phase":{"$ref":"#/components/schemas/TaskPhasePublicLiteAPIResponseEntity"},"assignees":{"$ref":"#/components/schemas/AssigneePublicAPI"},"followers":{"$ref":"#/components/schemas/TaskFollowersPublicResponse"},"dependencies":{"type":"array","description":"Task Dependencies allow you to define relationships between tasks that are dependent on each other.\nNote: Rocketlane allows you to have finish to start task dependencies. This means that dependent tasks are meant to start after the dependencies are marked as Complete.","items":{"$ref":"#/components/schemas/TaskPublicLiteAPIResponseEntity"}},"parent":{"$ref":"#/components/schemas/TaskPublicLiteAPIResponseEntity"},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","readOnly":true,"example":"task_8171"},"billable":{"type":"boolean","description":"Indicates whether the task is billable or non billable.","example":true},"timeEntryCategory":{"$ref":"#/components/schemas/TaskPublicTimeEntryCategoryResponse"},"financialsBudgets":{"type":"array","description":"The Financials budget in which the task's time entry is added.","items":{"$ref":"#/components/schemas/TaskPublicProjectFinancialsBudgetResponse"}},"csatEnabled":{"type":"boolean","description":"In case of milestone tasks, this field determines if a CSAT survey will be sent out on completion of the task"},"priority":{"$ref":"#/components/schemas/TaskPriorityPublicResponse"},"taskPrivateNote":{"type":"string","description":"The `privateNote` for the task is intended exclusively for team members. The note's content should be in `HTML` format to prevent any formatting issues in the application."},"private":{"type":"boolean","description":"This depicts if the task is private or not.","example":false}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseSpaces":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/SpacePublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationSpaces"}}},"ExamplePaginationSpaces":{"type":"object","properties":{"pageSize":{"type":"integer","description":"The size of current page","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content","example":true},"totalRecordCount":{"type":"integer","description":"The total size of the contents","format":"int64","example":10398},"nextPage":{"type":"string","description":"The url for next page","example":"https://api.rocketlane.com/api/1.0/spaces?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"The page token used to go to next page","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"SpacePublicResponseForExample":{"type":"object","properties":{"spaceId":{"minimum":1,"type":"integer","description":"The space's unique, system-generated identifier, which can be used to identify the space globally.","format":"int64","readOnly":true,"example":201},"spaceName":{"type":"string","description":"The name of the space.","example":"Shared space"},"project":{"$ref":"#/components/schemas/ProjectPublicAPISpaceResponseEntity"},"createdAt":{"type":"integer","description":"The timestamp when the space was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/SpaceCreatedByUserPublicAPI"},"updatedAt":{"type":"integer","description":"The timestamp when the space was last updated.","format":"int64","example":1681319726000},"updatedBy":{"$ref":"#/components/schemas/SpaceUpdatedByUserPublicAPI"},"private":{"type":"boolean","description":"Describes the privacy of the space i.e. if it is private or shared.","example":true}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseSpaceTabs":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/SpaceTabPublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationSpaceTabs"}}},"ExamplePaginationSpaceTabs":{"type":"object","properties":{"pageSize":{"type":"integer","description":"The size of current page","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content","example":true},"totalRecordCount":{"type":"integer","description":"The total size of the contents","format":"int64","example":10398},"nextPage":{"type":"string","description":"The url for next page","example":"https://api.rocketlane.com/api/1.0/space-documents?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"The page token used to go to next page","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"SpaceTabPublicResponseForExample":{"type":"object","properties":{"spaceDocumentId":{"minimum":1,"type":"integer","description":"The space document's unique, system-generated identifier, which can be used to identify the space document globally.","format":"int64","readOnly":true,"example":201},"spaceDocumentName":{"type":"string","description":"The name of the space document.","example":"Sample file","default":"Untitled"},"space":{"$ref":"#/components/schemas/SpacePublicAPISpaceTabResponseEntity"},"spaceDocumentType":{"type":"string","description":"Defines the type of the space document. This could be a Rocketlane document or an embedded document.","example":"ROCKETLANE_DOCUMENT","enum":["ROCKETLANE_DOCUMENT","EMBEDDED_DOCUMENT"]},"url":{"type":"string","description":"The url that is embedded in the space document.","example":"https://www.google.com"},"source":{"$ref":"#/components/schemas/SpaceTabSourcePublicResponse"},"createdAt":{"type":"integer","description":"The timestamp when the space document was created.","format":"int64","example":1680616174929},"createdBy":{"$ref":"#/components/schemas/SpaceTabCreatedByUserPublicAPI"},"updatedAt":{"type":"integer","description":"The timestamp when the space document was last updated.","format":"int64","example":1680616174929},"updatedBy":{"$ref":"#/components/schemas/SpaceTabUpdatedByUserPublicAPI"},"private":{"type":"boolean","description":"Describes the privacy of the space i.e. if it is private or shared.","example":true}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"AllocationCreatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who created the allocation."},"AllocationUpdatedByUserPublicAPI":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"}},"description":"The team member who updated the allocation"},"AllocationUserPublicAPIResponseEntity":{"type":"object","properties":{"emailId":{"type":"string","description":"The team members email identifier.","example":"john.doe@rocketlane.com"},"userId":{"type":"integer","description":"The unique identifier for the user.","format":"int64","readOnly":true,"example":201},"firstName":{"type":"string","description":"The first name of the user.","readOnly":true,"example":"John"},"lastName":{"type":"string","description":"The last name of the user.","readOnly":true,"example":"Doe"},"role":{"$ref":"#/components/schemas/RoleResponsePublicAPI"}},"description":"The team member associated for the allocation if chosen `allocationFor` is `TEAM_MEMBER`.","readOnly":true},"ExampleAPIResponseResourceAllocations":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/ResourceAllocationPublicAPIResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationResourceAllocations"}}},"ExamplePaginationResourceAllocations":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/resource-allocations?includeFields=role&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"PlaceholderResponsePublicAPI":{"type":"object","properties":{"placeholderId":{"type":"integer","description":"The placeholder's unique, system-generated identifier, which can be used to identify the placeholder globally.","format":"int64","example":201},"placeholderName":{"type":"string","description":"The name of the placeholder.","readOnly":true,"example":"Customer Success"},"role":{"$ref":"#/components/schemas/RoleResponsePublicAPI"}},"description":"The placeholder associated for the allocation if chosen `allocationFor` is `PLACEHOLDER`.","readOnly":true},"ProjectPublicAPIAllocationResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","readOnly":true,"example":"Acme onboarding"}},"description":"The `project` associated with resource allocation.","readOnly":true},"ResourceAllocationPublicAPIResponseForExample":{"type":"object","properties":{"startDate":{"type":"string","description":"The date when a allocation started. The format for the start date is _YYYY-MM-DD_.","readOnly":true,"example":"2023-03-28"},"endDate":{"type":"string","description":"The date when a allocation ended. The format for the start date is _YYYY-MM-DD_.","readOnly":true,"example":"2023-03-28"},"secondsPerDay":{"type":"integer","description":"The seconds created per day.","format":"int32","readOnly":true,"example":45000},"minutesPerDay":{"type":"integer","description":"The minutes created per day.","format":"int32","readOnly":true,"example":750},"hoursPerDay":{"type":"integer","description":"The hours created per day.","format":"int32","readOnly":true,"example":12},"duration":{"$ref":"#/components/schemas/ResourceAllocationTotalDurationPublicResponse"},"allocationType":{"type":"string","description":"Type of allocation to be made.","readOnly":true,"default":"HARD","enum":["SOFT","HARD"]},"allocationFor":{"type":"string","description":"To whom allocation is for","readOnly":true,"enum":["TEAM_MEMBER","PLACEHOLDER"]},"project":{"$ref":"#/components/schemas/ProjectPublicAPIAllocationResponseEntity"},"tasks":{"type":"array","description":"The `task(s)` associated with resource allocation.","readOnly":true,"items":{"$ref":"#/components/schemas/ResourceAllocationTaskPublicAPIEntity"}},"member":{"$ref":"#/components/schemas/AllocationUserPublicAPIResponseEntity"},"placeholder":{"$ref":"#/components/schemas/PlaceholderResponsePublicAPI"},"createdAt":{"type":"integer","description":"The time when the allocation was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the allocation was last updated. Any changes that's related to the allocation are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/AllocationCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/AllocationUpdatedByUserPublicAPI"}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ResourceAllocationTaskPublicAPIEntity":{"type":"object","properties":{"taskName":{"type":"string","description":"The task's unique, system-generated **identifier**, which can be used to identify the task globally.","readOnly":true,"example":"Kickoff meeting"},"taskId":{"type":"integer","description":"The **name** of the task.","format":"int64","example":201}},"description":"The `task(s)` associated with resource allocation.","readOnly":true},"ResourceAllocationTotalDurationPublicResponse":{"type":"object","properties":{"daysConsider":{"type":"integer","description":"No. of week days considered for computing the `minutes`, `hours`, `seconds`. This is calculated for range between allocation's `startDate` and `endDate`.","format":"int32","readOnly":true,"example":1},"seconds":{"type":"integer","description":"The total allocation seconds for entire start date and end date.","format":"int32","readOnly":true,"example":45000},"minutes":{"type":"integer","description":"The total allocation minutes for entire start date and end date.","format":"int32","readOnly":true,"example":750},"hours":{"type":"integer","description":"The total allocation hours for entire start date and end date.","format":"int32","readOnly":true,"example":12}},"description":"Total seconds, minutes, hours for the allocation. This is calculated for range between allocation's `startDate` and `endDate`.","readOnly":true},"ExampleAPIResponseProjects":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/ProjectPublicAPIResponseExampleEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationProjects"}}},"ExamplePaginationProjects":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/projects?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"ProjectPublicAPIResponseExampleEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"},"startDate":{"type":"string","description":"On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the project was created. The referenced time will be in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.","format":"int64","readOnly":true,"example":1681319726000},"owner":{"$ref":"#/components/schemas/ProjectOwnerUserPublicResponse"},"teamMembers":{"$ref":"#/components/schemas/ProjectResponseMembersResponse"},"status":{"$ref":"#/components/schemas/ProjectStatusPublicResponse"},"fields":{"type":"array","description":"Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/ProjectFieldPublicResponseAPIEntity"}},"customer":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"partnerCompanies":{"type":"array","description":"The `partners` field contains list of partner companies.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPartnerCompanyPublicAPIResponseEntity"}},"archived":{"type":"boolean","description":"The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.","example":false},"visibility":{"type":"string","description":"Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.","example":"EVERYONE","enum":["EVERYONE","MEMBERS","GROUP"]},"createdBy":{"$ref":"#/components/schemas/ProjectPublicCreatedByResponse"},"updatedBy":{"$ref":"#/components/schemas/ProjectPublicUpdatedByResponse"},"currency":{"type":"string","description":"The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"financials":{"$ref":"#/components/schemas/ProjectFinancialsPublicResponse"},"startDateActual":{"type":"string","description":"The date on which the project status is changed to in progress. The status can be either the default said status (in progress) or custom statuses that are categorised as in progress. It can be null for projects that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date when project status gets changed to completed. The status can be either the default provided status (completed) or a custom status that is labelled under the Completed category. It will be null if the project is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"annualizedRecurringRevenue":{"type":"integer","description":"Indicates the value of the recurring revenue of the customer's subscriptions for a single calendar year.","format":"int64","example":10000},"projectFee":{"type":"integer","description":"The total fee that is charged for the project.","format":"int64","example":100000},"budgetedHours":{"type":"number","description":"Budgeted hours represent the total hours allocated for project execution. This value can be edited at any point throughout the project's duration. You can enter the budgeted hours in decimal form, including both hours and minutes, with up to two decimal places of precision. Eg: 1.65 hrs = 1h 39m(1.65h * 60m = 99m).","format":"double","readOnly":true,"example":10.5},"percentageBudgetedHoursConsumed":{"type":"number","description":"The budgeted hours consumed percentage.","format":"double","readOnly":true,"example":42},"percentageBudgetConsumed":{"type":"number","description":"The budget consumed percentage.","format":"double","readOnly":true,"example":42},"trackedHours":{"type":"integer","description":"The number of hours tracked as part of `submitted` time-entries are captured here and computed in hours.","format":"int32","readOnly":true,"example":530},"trackedMinutes":{"type":"number","description":"The number of minutes tracked as part of `submitted` time-entries are captured here and computed in minutes.","format":"double","readOnly":true,"example":530},"allocatedHours":{"type":"integer","description":"If the project has `allocations` against say users or placeholders, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"allocatedMinutes":{"type":"number","description":"If the project has `allocations` against say users or placeholders, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"billableHours":{"type":"integer","description":"If the project has time entries tracked under billable, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"billableMinutes":{"type":"number","description":"If the project has time entries tracked under billable, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"nonBillableHours":{"type":"integer","description":"If the project has time entries tracked under non-billable, it is collected and computed in hours.","format":"int32","readOnly":true,"example":500},"nonBillableMinutes":{"type":"number","description":"If the project has time entries tracked under non-billable, it is collected and computed in minutes.","format":"double","readOnly":true,"example":500},"remainingHours":{"type":"integer","description":"Number of hours left to complete the project or task based on tracked and budgeted hours.","format":"int32","readOnly":true,"example":530},"remainingMinutes":{"type":"integer","description":"Number of minutes left to complete the project or task and complements RemainingHours.","format":"int32","readOnly":true,"example":530},"progressPercentage":{"type":"integer","description":"The progress percentage is computed based on the number of tasks that are completed vs the total number of tasks in the project. This can be used to track how much the project has progressed over time.","format":"int32","readOnly":true,"example":42},"currentPhases":{"type":"array","description":"The phases that are currently marked as in progress are available here.","readOnly":true,"items":{"$ref":"#/components/schemas/ProjectPhasePublicLiteAPIResponseEntity"}},"autoAllocation":{"type":"boolean","description":"The field autoAllocation defines whether Auto Allocation is enabled for the project or not. If auto allocation is enabled, instead of adding it manually, the allocations are computed from the tasks duration, effort and the assignees specified in the project.","example":false},"sources":{"type":"array","description":"Sources denotes the project templates involved in creation/ imported post creation of the project.","readOnly":true,"items":{"$ref":"#/components/schemas/ImportPublicAPIResponseEntity"}},"plannedDurationInDays":{"type":"integer","description":"The difference between `startDate` and `dueDate` is computed and stored in days as `plannedDurationInDays`.","format":"int32","readOnly":true,"example":24},"inferredProgress":{"type":"string","description":"The `inferredProgress` can be used to know whether the project's progress is as per the expectation. For eg: the value `ON_TRACK` specifies that the project is in good state and not further action would be necessary to track the progress of it, whereas the value `RUNNING_LATE` means that the project state deviates from the original plan and needs immediate attention.","readOnly":true,"example":"RUNNING_LATE","enum":["ON_TRACK","AHEAD_OF_TIME","RUNNING_LATE","NONE"]},"projectAgeInDays":{"type":"integer","description":"If both the project actual dates (`startDateActual` and `dueDateActual`) are available, the difference is computed and shown in days. If `dueDateActual` isn't available, then the value is computed by the difference of today's date and the available date under `startDateActual`. The value will be null or not present if `startDateActual` is not available.","format":"int32","readOnly":true,"example":38},"customersInvited":{"type":"integer","description":"Reflects the number of customers that have been invited to the project.","format":"int32","readOnly":true,"example":5},"customersJoined":{"type":"integer","description":"CustomersJoined tracks the actual number of customers who joined the project after being invited. It is mostly used to track customer engagement.","format":"int32","readOnly":true,"example":12},"externalReferenceId":{"type":"string","description":"An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.","readOnly":true,"example":"pr_8171"}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponsePhases":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/PhasePublicAPIResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationPhases"}}},"ExamplePaginationPhases":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/phases?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"PhasePublicAPIResponseForExample":{"type":"object","properties":{"phaseId":{"minimum":1,"type":"integer","description":"The phases's unique, system-generated identifier, which can be used to identify the phase globally.","format":"int64","readOnly":true,"example":201},"phaseName":{"type":"string","description":"The name of the phase.","example":"Kick off"},"project":{"$ref":"#/components/schemas/ProjectPublicAPIPhaseResponseEntity"},"startDate":{"type":"string","description":"On this date the phase's execution officially begins. . The due date is mandatory. The format for the start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDate":{"type":"string","description":"The day on which the phase's execution is planned to be completed. The due date is mandatory. The dueDate must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.","example":"2023-03-28"},"startDateActual":{"type":"string","description":"The date on which the phase status is changed to in progress. The status can be either the default said status (in progress) or custom statuses that are categorised as in progress. It can be null for phases that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.","example":"2023-03-28"},"dueDateActual":{"type":"string","description":"The date when phase status gets changed to completed. The status can be either the default provided status (completed) or a custom status that is labelled under the Completed category. It will be null if the phase is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.","example":"2023-03-28"},"createdAt":{"type":"integer","description":"The time when the phase was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the phase was last updated. Any changes that's related to the phase are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"createdBy":{"$ref":"#/components/schemas/PhaseCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/PhaseUpdatedByUserPublicAPI"},"status":{"$ref":"#/components/schemas/PhaseStatusPublicResponse"},"private":{"type":"boolean","description":"Describes the privacy of the phase i.e. if it is private or shared.","example":true}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseInvoicePayments":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/PaymentRecordPublicAPIResponseEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationInvoicePayments"}}},"ExamplePaginationInvoicePayments":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/invoices/123/payments?pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"PaymentRecordPublicAPIResponseEntity":{"type":"object","properties":{"paymentId":{"type":"integer","description":"The unique identifier for the payment record.","format":"int64","readOnly":true,"example":201},"paymentRecordType":{"type":"string","description":"The identifier for payment type (e.g WRITE_OFF,PAID)","readOnly":true,"example":"PAID","enum":["PAID","WRITE_OFF"]},"currency":{"type":"string","description":"Currency of the invoice amount","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"paymentDate":{"type":"string","description":"The date when the payment was made.","example":"2023-03-28"},"amount":{"type":"number","description":"The amount of the payment.","example":1000},"notes":{"type":"string","description":"Additional notes or comments regarding the payment."}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseInvoiceLineItems":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/InvoiceLineItemResponseEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationInvoiceLineItems"}}},"ExamplePaginationInvoiceLineItems":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/invoices/123/lines?pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"InvoiceLineItemResponseEntity":{"type":"object","properties":{"invoiceLineItemId":{"type":"integer","description":"The unique identifier for the invoice line item.","format":"int64","readOnly":true,"example":123},"description":{"type":"string","description":"Description of the line item or service provided.","example":"Development services for Q1"},"quantity":{"type":"number","description":"The quantity of the item or service.","example":10},"unitPrice":{"type":"number","description":"The unit price for the item or service.","example":100},"amount":{"type":"number","description":"The total amount for this line item (quantity * unit price).","example":1000},"sourceId":{"type":"integer","description":"The unique identifier of the source entity (e.g., project ID) that this line item is associated with.","format":"int64","readOnly":true,"example":456},"sourceType":{"type":"string","description":"The type of source entity that this line item is associated with (e.g., PROJECT).","readOnly":true,"example":"PROJECT","enum":["PROJECT"]},"taxCode":{"$ref":"#/components/schemas/TaxCodePublicAPIResponseEntity"},"taxComponents":{"type":"array","description":"List of tax components that make up this tax code.","readOnly":true,"items":{"$ref":"#/components/schemas/TaxComponentPublicAPIResponseEntity"}}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"TaxCodePublicAPIResponseEntity":{"type":"object","properties":{"taxCodeId":{"type":"integer","description":"The unique identifier for the tax code","format":"int64","readOnly":true,"example":456},"taxCodeName":{"type":"string","description":"The name of the tax code","readOnly":true,"example":"GST 18%"},"taxCodeRate":{"type":"number","description":"The tax rate percentage for the tax code","readOnly":true,"example":18},"taxCodeAmount":{"type":"number","description":"The tax amount calculated for this tax code","readOnly":true,"example":180}},"description":"Tax code information for this line item.","readOnly":true},"TaxComponentPublicAPIResponseEntity":{"type":"object","properties":{"taxComponentId":{"type":"integer","description":"The unique identifier for the tax component","format":"int64","readOnly":true,"example":123},"taxComponentName":{"type":"string","description":"The name of the tax component","readOnly":true,"example":"GST"},"taxComponentRate":{"type":"number","description":"The tax rate percentage for the tax component","readOnly":true,"example":18},"taxComponentAmount":{"type":"number","description":"The tax amount calculated for this tax component","readOnly":true,"example":180},"taxComponentType":{"type":"string","description":"The type of tax component (e.g., GST, VAT, etc.)","readOnly":true,"example":"GST"}},"description":"List of tax components that make up this tax code.","readOnly":true},"InvoiceAttachmentPublicAPIResponseEntity":{"type":"object","properties":{"attachmentId":{"type":"integer","description":"Attachment ID","format":"int64","example":201},"attachmentName":{"type":"string","description":"Attachment Name","example":"test_upload.png"},"createdAt":{"type":"integer","description":"Attachment Created timestamp","format":"int64","example":1680616174929},"location":{"type":"string","description":"Attachment Location","example":"https://rocketlane.com/attachments/0/db83eb19-0bbf-4a37-b4e2-cd1b96708c73/test_upload.png"},"thumbLocation":{"type":"string","description":"Attachment Thumb location","example":"https://rocketlane.com/attachments/0/db83eb19-0bbf-4a37-b4e2-cd1b96708c73/thumb_test_upload.png"},"visibility":{"type":"boolean","description":"Attachment Visibility","example":false}},"description":"List of attachments associated with the invoice"},"InvoiceFieldPublicResponseEntity":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The unique identifier for the field.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The label of the field.","readOnly":true,"example":"MRR"},"fieldValue":{"type":"object","description":"The `fieldValue` is the value provided while creation or updating. The fieldValue can be a string, an integer, or an array and it must match the type of the field. Refer [e xamples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with task.","readOnly":true,"example":1000},"fieldValueLabel":{"type":"string","description":"The `fieldValueLabel` is the value provided while creation or updating in a String format.","readOnly":true,"example":"1000"}},"description":"Fields lists the custom invoice fields whose values were provided during invoice creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response."},"InvoiceProjectPublicAPIResponseEntity":{"type":"object","properties":{"projectId":{"minimum":1,"type":"integer","description":"The project's unique, system-generated identifier, which can be used to identify the project globally.","format":"int64","readOnly":true,"example":201},"projectName":{"type":"string","description":"The name of the project.","example":"Acme onboarding"}},"description":"List of projects mapped to this invoice"},"InvoicePublicAPIResponseEntity":{"type":"object","properties":{"invoiceId":{"minimum":1,"type":"integer","description":"Unique identifier of the invoice","format":"int64","readOnly":true,"example":201},"invoiceNumber":{"type":"string","description":"Invoice number assigned to this invoice","example":"INV-2024-001"},"dateOfIssue":{"type":"string","description":"Date when the invoice was issued. The format for the issue date is _YYYY-MM-DD_","example":"2023-03-28"},"dueDate":{"type":"string","description":"Due date for the invoice payment. The format for the due date is _YYYY-MM-DD_","example":"2023-03-28"},"currency":{"type":"string","description":"Currency of the invoice amount","readOnly":true,"example":"USD","enum":["AFN","ALL","DZD","ARS","AMD","AUD","AZN","BHD","BDT","BYN","BZD","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","XAF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CZK","DKK","DJF","DOP","EGP","ERN","EEK","ETB","EUR","GEL","GHS","GTQ","GNF","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KWD","LVL","LBP","LYD","LTL","MOP","MKD","MGA","MYR","MUR","MXN","MDL","MAD","MZN","MMK","NAD","NPR","TWD","NZD","NIO","NGN","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SAR","RSD","SGD","SOS","ZAR","KRW","LKR","SDG","SEK","CHF","SYP","TZS","THB","TOP","TTD","TND","TRY","USD","UGX","UAH","AED","UYU","UZS","VEF","VND","XOF","YER","ZMK","ZWL"]},"status":{"type":"string","description":"Current status of the invoice","example":"DRAFT"},"amount":{"type":"number","description":"Total amount of the invoice including tax","readOnly":true,"example":1000.25},"tax":{"type":"number","description":"Tax amount applied to the invoice","example":100.25},"subTotal":{"type":"number","description":"Total amount of the invoice excluding tax","readOnly":true,"example":1000.25},"amountOutstanding":{"type":"number","description":"Balance amount remaining to be paid","readOnly":true,"example":500.25},"amountPaid":{"type":"number","description":"Total amount paid for this invoice","readOnly":true,"example":500.25},"amountWrittenOff":{"type":"number","description":"Total amount written off for this invoice","readOnly":true,"example":500.25},"notes":{"type":"string","description":"Notes or additional information about the invoice","example":"This is the default address"},"createdAt":{"type":"integer","description":"Timestamp when the invoice was created","format":"int64","readOnly":true,"example":1681319726000},"updatedAt":{"type":"integer","description":"Timestamp when the invoice was last updated","format":"int64","readOnly":true,"example":1681319726000},"createdBy":{"$ref":"#/components/schemas/ProjectVendorUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/ProjectVendorUserPublicAPI"},"company":{"$ref":"#/components/schemas/CustomerCompanyProjectPublicResponse"},"projects":{"type":"array","description":"List of projects mapped to this invoice","items":{"$ref":"#/components/schemas/InvoiceProjectPublicAPIResponseEntity"}},"fields":{"type":"array","description":"Fields lists the custom invoice fields whose values were provided during invoice creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.","items":{"$ref":"#/components/schemas/InvoiceFieldPublicResponseEntity"}},"attachments":{"type":"array","description":"List of attachments associated with the invoice","items":{"$ref":"#/components/schemas/InvoiceAttachmentPublicAPIResponseEntity"}}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseInvoices":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/InvoicePublicAPIResponseEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationInvoices"}}},"ExamplePaginationInvoices":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/invoices?pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"ExampleAPIResponseFields":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/FieldModelPublicResponseForExample"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationFields"}}},"ExamplePaginationFields":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/fields?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"FieldModelPublicResponseForExample":{"type":"object","properties":{"fieldId":{"minimum":1,"type":"integer","description":"The field's unique, system-generated identifier, which can be used to identify the field globally.","format":"int64","readOnly":true,"example":201},"fieldLabel":{"type":"string","description":"The fieldLabel is the name of the custom field","readOnly":true,"example":"MRR"},"fieldDescription":{"type":"string","description":"The description of the field","example":"Priority of the bug."},"fieldType":{"type":"string","description":"This defines type of the field. Refer [Custom Fields](https://developer.rocketlane.com/v1.0/docs/custom-fields) for further information","readOnly":true,"example":"MULTI_LINE_TEXT","enum":["TEXT","MULTI_LINE_TEXT","YES_OR_NO","DATE","SINGLE_CHOICE","MULTIPLE_CHOICE","SINGLE_USER","MULTIPLE_USER","NUMBER","NOTE","RATING"]},"objectType":{"type":"string","description":"This defines type of object that is associated with the field. This could be `TASK`, `PROJECT` or `USER`.","readOnly":true,"example":"TASK"},"fieldOptions":{"type":"array","description":"The fieldOptions params define the value and label for the different options available for `SINGLE_CHOICE` and `MULTIPLE_CHOICE` fields.","readOnly":true,"items":{"$ref":"#/components/schemas/OptionsPublicAPIResponseEntity"}},"ratingScale":{"type":"string","description":"The number of stars in the Rating Scale when Field Type is `RATING`.","example":"THREE","enum":["THREE","FIVE","SEVEN","TEN"]},"createdBy":{"$ref":"#/components/schemas/FieldCreatedByUserPublicAPI"},"updatedBy":{"$ref":"#/components/schemas/FieldUpdatedByUserPublicAPI"},"createdAt":{"type":"integer","description":"The time when the field was created. The referenced time will be in epoch millis.","format":"int64","example":1681319726000},"updatedAt":{"type":"integer","description":"The time when the field was last updated. Any changes that's related to the field are captured and specified here in epoch millis.","format":"int64","example":1681319726000},"enabled":{"type":"boolean","description":"This depicts if the field is enabled or not. Only those fields which are enabled will reflect in the account.","example":false},"private":{"type":"boolean","description":"This depicts if the field is private or not.","example":false}},"description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response."},"ExampleAPIResponseConversations":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/ConversationPublicResponseAPIEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationConversations"}}},"ExamplePaginationConversations":{"type":"object","properties":{"pageSize":{"type":"integer","description":"Denotes the page size mentioned in the current request (limit). It defaults to 100 if left blank.","format":"int32","example":100},"hasMore":{"type":"boolean","description":"Tells us if there is more content.","example":true},"totalRecordCount":{"type":"integer","description":"Denotes the total resources matching the filters.","format":"int64","example":10398},"nextPage":{"type":"string","description":"Denotes an API URL, which can be conveniently called to perform the subsequent search call to get to the next page.","example":"https://api.rocketlane.com/api/1.0/projects/1/conversations?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02"},"nextPageToken":{"type":"string","description":"Denotes a unique token that points to the next page of resources. To get results from subsequent pages, you can use the nextPageToken available in the response under pagination. This token is valid for 15 minutes.","example":"e4a3dd8e-e338-11ed-b5ea-0242ac120002"}},"description":"Responses that return multiple objects will be paginated. The pagination params define how pages are structured and how to traverse through pages."},"ExampleAPIResponseComments":{"type":"object","properties":{"data":{"type":"array","description":"Reflects all the default and custom fields and their values for the object searched, in an array format. If the includeFields param is utilised in the request body, it will return a customised response.","items":{"$ref":"#/components/schemas/CommentPublicResponseAPIEntity"}},"pagination":{"$ref":"#/components/schemas/ExamplePaginationConversations"}}}},"securitySchemes":{"api-key":{"type":"apiKey","name":"api-key","in":"header"}}},"x-readme":{"proxy-enabled":false,"explorer-enabled":true,"samples-enabled":true}}