Files
headroom/backend/.scribe/endpoints.cache/05.yaml
Santhosh Janardhanan b9775f2f5a docs(api): regenerate Scribe API documentation
Update auto-generated API documentation:
- New endpoints: ProjectMonthPlan, Reports, Roles
- Updated endpoint docs for Allocations and Projects
- Regenerated Scribe index with new endpoints

Documentation now reflects enhanced-allocation features.
2026-03-08 18:23:11 -04:00

496 lines
13 KiB
YAML

## Autogenerated by Scribe. DO NOT MODIFY.
name: 'Resource Allocation'
description: |-
Endpoints for managing resource allocations.
endpoints:
-
custom: []
httpMethods:
- GET
uri: api/allocations
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'List allocations / Get allocation matrix'
description: 'Get all allocations, optionally filtered by month.'
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters: []
cleanUrlParameters: []
queryParameters:
month:
custom: []
name: month
description: 'Filter by month (YYYY-MM format).'
required: false
example: 2026-02
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanQueryParameters:
month: 2026-02
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
custom: []
status: 200
content: |-
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440001",
"team_member_id": "550e8400-e29b-41d4-a716-446655440002",
"month": "2026-02",
"allocated_hours": 40.00
}
]
}
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null
-
custom: []
httpMethods:
- POST
uri: api/allocations
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'Create a new allocation'
description: 'Allocate hours for a team member to a project for a specific month.'
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters: []
cleanUrlParameters: []
queryParameters: []
cleanQueryParameters: []
bodyParameters:
project_id:
custom: []
name: project_id
description: 'Project UUID.'
required: true
example: 550e8400-e29b-41d4-a716-446655440001
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
team_member_id:
custom: []
name: team_member_id
description: 'Team member UUID.'
required: true
example: 550e8400-e29b-41d4-a716-446655440002
type: string
enumValues: []
exampleWasSpecified: true
nullable: true
deprecated: false
month:
custom: []
name: month
description: 'Month (YYYY-MM format).'
required: true
example: 2026-02
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
allocated_hours:
custom: []
name: allocated_hours
description: 'Hours to allocate (must be >= 0).'
required: true
example: '40'
type: numeric
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanBodyParameters:
project_id: 550e8400-e29b-41d4-a716-446655440001
team_member_id: 550e8400-e29b-41d4-a716-446655440002
month: 2026-02
allocated_hours: '40'
fileParameters: []
responses:
-
custom: []
status: 201
content: |-
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440001",
"team_member_id": "550e8400-e29b-41d4-a716-446655440002",
"month": "2026-02",
"allocated_hours": 40.00
}
}
headers: []
description: ''
-
custom: []
status: 422
content: '{"message":"Validation failed","errors":{"allocated_hours":["Allocated hours must be greater than or equal to 0"]}}'
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null
-
custom: []
httpMethods:
- GET
uri: 'api/allocations/{id}'
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'Get a single allocation'
description: 'Get details of a specific allocation by ID.'
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters:
id:
custom: []
name: id
description: 'Allocation UUID.'
required: true
example: 550e8400-e29b-41d4-a716-446655440000
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanUrlParameters:
id: 550e8400-e29b-41d4-a716-446655440000
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
custom: []
status: 200
content: |-
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440001",
"team_member_id": "550e8400-e29b-41d4-a716-446655440002",
"month": "2026-02",
"allocated_hours": 40.00
}
}
headers: []
description: ''
-
custom: []
status: 404
content: '{"message": "Allocation not found"}'
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null
-
custom: []
httpMethods:
- PUT
- PATCH
uri: 'api/allocations/{id}'
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'Update an allocation'
description: "Update an existing allocation's hours."
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters:
id:
custom: []
name: id
description: 'Allocation UUID.'
required: true
example: 550e8400-e29b-41d4-a716-446655440000
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanUrlParameters:
id: 550e8400-e29b-41d4-a716-446655440000
queryParameters: []
cleanQueryParameters: []
bodyParameters:
allocated_hours:
custom: []
name: allocated_hours
description: 'Hours to allocate (must be >= 0).'
required: true
example: '60'
type: numeric
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanBodyParameters:
allocated_hours: '60'
fileParameters: []
responses:
-
custom: []
status: 200
content: |-
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440001",
"team_member_id": "550e8400-e29b-41d4-a716-446655440002",
"month": "2026-02",
"allocated_hours": 60.00
}
}
headers: []
description: ''
-
custom: []
status: 404
content: '{"message": "Allocation not found"}'
headers: []
description: ''
-
custom: []
status: 422
content: '{"message":"Validation failed","errors":{"allocated_hours":["Allocated hours must be greater than or equal to 0"]}}'
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null
-
custom: []
httpMethods:
- DELETE
uri: 'api/allocations/{id}'
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'Delete an allocation'
description: 'Remove an allocation.'
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters:
id:
custom: []
name: id
description: 'Allocation UUID.'
required: true
example: 550e8400-e29b-41d4-a716-446655440000
type: string
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
cleanUrlParameters:
id: 550e8400-e29b-41d4-a716-446655440000
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
custom: []
status: 200
content: '{"message": "Allocation deleted successfully"}'
headers: []
description: ''
-
custom: []
status: 404
content: '{"message": "Allocation not found"}'
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null
-
custom: []
httpMethods:
- POST
uri: api/allocations/bulk
metadata:
custom: []
groupName: 'Resource Allocation'
groupDescription: |-
Endpoints for managing resource allocations.
subgroup: ''
subgroupDescription: ''
title: 'Bulk create allocations'
description: 'Create or update multiple allocations in a single request.'
authenticated: true
deprecated: false
headers:
Content-Type: application/json
Accept: application/json
urlParameters: []
cleanUrlParameters: []
queryParameters: []
cleanQueryParameters: []
bodyParameters:
allocations:
custom: []
name: allocations
description: 'Array of allocations.'
required: true
example:
-
project_id: ...
team_member_id: ...
month: 2026-02
allocated_hours: 40
type: 'string[]'
enumValues: []
exampleWasSpecified: true
nullable: false
deprecated: false
'allocations[].project_id':
custom: []
name: 'allocations[].project_id'
description: 'Must be a valid UUID. The <code>id</code> of an existing record in the projects table.'
required: true
example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
deprecated: false
'allocations[].team_member_id':
custom: []
name: 'allocations[].team_member_id'
description: 'Must be a valid UUID. The <code>id</code> of an existing record in the team_members table.'
required: true
example: 6b72fe4a-5b40-307c-bc24-f79acf9a1bb9
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
deprecated: false
'allocations[].month':
custom: []
name: 'allocations[].month'
description: 'Must be a valid date in the format <code>Y-m</code>.'
required: true
example: 2026-02
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
deprecated: false
'allocations[].allocated_hours':
custom: []
name: 'allocations[].allocated_hours'
description: 'Must be at least 0.'
required: true
example: 77
type: number
enumValues: []
exampleWasSpecified: false
nullable: false
deprecated: false
cleanBodyParameters:
allocations:
-
project_id: ...
team_member_id: ...
month: 2026-02
allocated_hours: 40
fileParameters: []
responses:
-
custom: []
status: 201
content: |-
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440001",
"team_member_id": "550e8400-e29b-41d4-a716-446655440002",
"month": "2026-02",
"allocated_hours": 40.00
}
]
}
headers: []
description: ''
responseFields: []
auth: []
controller: null
method: null
route: null