swagger: '2.0' info: description: REST API for ChartHop version: V1.0.0 title: ChartHop access timeoffAdjustment API contact: name: ChartHop url: https://www.charthop.com email: support@charthop.com host: localhost schemes: - https - http consumes: - application/json produces: - application/json tags: - name: timeoffAdjustment paths: /v1/org/{orgId}/timeoff/adjustment: get: tags: - timeoffAdjustment summary: Get all time off balance adjustments for an organization operationId: listAdjustments consumes: - application/json produces: - application/json parameters: - name: orgId in: path description: Organization ID required: true type: string responses: '200': description: List of time off adjustments retrieved successfully schema: type: array items: $ref: '#/definitions/TimeOffBalanceAdjustment' '403': description: Permission denied '404': description: Organization not found post: tags: - timeoffAdjustment summary: Create a time off balance adjustment operationId: createAdjustment consumes: - application/json produces: - application/json parameters: - name: orgId in: path description: Organization ID required: true type: string - name: body in: body description: Time off adjustment data required: true schema: $ref: '#/definitions/CreateTimeOffBalanceAdjustment' responses: '201': description: Time off adjustment created successfully schema: $ref: '#/definitions/TimeOffBalanceAdjustment' '400': description: Invalid input '403': description: Permission denied '404': description: Organization not found /v1/org/{orgId}/timeoff/adjustment/{adjustmentId}: get: tags: - timeoffAdjustment summary: Get a specific time off balance adjustment by ID operationId: getAdjustment consumes: - application/json produces: - application/json parameters: - name: orgId in: path description: Organization ID required: true type: string - name: adjustmentId in: path description: Time off adjustment ID required: true type: string responses: '200': description: Time off adjustment retrieved successfully schema: $ref: '#/definitions/TimeOffBalanceAdjustment' '403': description: Permission denied '404': description: Time off adjustment not found patch: tags: - timeoffAdjustment summary: Update an existing time off balance adjustment operationId: updateAdjustment consumes: - application/json produces: - application/json parameters: - name: orgId in: path description: Organization ID required: true type: string - name: adjustmentId in: path description: Time off adjustment ID required: true type: string - name: body in: body description: Time off adjustment update data required: true schema: $ref: '#/definitions/UpdateTimeOffBalanceAdjustment' responses: '204': description: Time off adjustment updated successfully '400': description: Invalid input '403': description: Permission denied '404': description: Time off adjustment not found delete: tags: - timeoffAdjustment summary: Delete a time off balance adjustment operationId: deleteAdjustment consumes: - application/json produces: - application/json parameters: - name: orgId in: path description: Organization ID required: true type: string - name: adjustmentId in: path description: Time off adjustment ID required: true type: string responses: '204': description: Time off adjustment deleted successfully '403': description: Permission denied '404': description: Time off adjustment not found definitions: CreateTimeOffBalanceAdjustment: type: object required: - timeOffPolicyId - date - personId - days properties: timeOffPolicyId: type: string description: policy id to tie the balance to example: 588f7ee98f138b19220041a7 date: type: string format: date description: date of adjustment personId: type: string description: person to tie the balance adjustment to example: 588f7ee98f138b19220041a7 days: type: number description: balance adjustment TimeOffBalanceAdjustment: type: object required: - id - orgId - timeOffPolicyId - date - personId - days properties: id: type: string description: Globally unique id of time off example: 588f7ee98f138b19220041a7 orgId: type: string description: Org that the time off belongs to example: 588f7ee98f138b19220041a7 timeOffPolicyId: type: string description: policy id to tie the balance to example: 588f7ee98f138b19220041a7 date: type: string format: date description: date of adjustment personId: type: string description: person to tie the balance adjustment to example: 588f7ee98f138b19220041a7 days: type: number description: balance adjustment createId: type: string description: created by user id example: 588f7ee98f138b19220041a7 createBehalfId: type: string description: created on behalf of user id example: 588f7ee98f138b19220041a7 createAttribution: $ref: '#/definitions/Attribution' createAt: type: string description: created timestamp example: '2017-01-24T13:57:52Z' updateId: type: string description: last updated by user id example: 588f7ee98f138b19220041a7 updateBehalfId: type: string description: last updated on behalf of user id example: 588f7ee98f138b19220041a7 updateAttribution: $ref: '#/definitions/Attribution' updateAt: type: string description: last updated timestamp example: '2017-01-24T13:57:52Z' deleteId: type: string description: deleted by user id example: 588f7ee98f138b19220041a7 deleteBehalfId: type: string description: deleted on behalf of user id example: 588f7ee98f138b19220041a7 deleteAttribution: $ref: '#/definitions/Attribution' deleteAt: type: string description: deleted timestamp example: '2017-01-24T13:57:52Z' UpdateTimeOffBalanceAdjustment: type: object properties: days: type: number description: balance adjustment Attribution: type: object properties: principalUserId: type: string example: 588f7ee98f138b19220041a7 agentUserIds: type: array items: type: string example: 588f7ee98f138b19220041a7 eventId: type: string example: 588f7ee98f138b19220041a7 aiChatId: type: string example: 588f7ee98f138b19220041a7 aiToolUseId: type: string channel: type: string enum: - WEB - MOBILE - SLACK - TEAMS - MCP