InfraNotes Finance Project · v0.6.0
Welcome
Select a document from the sidebar to read it.
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Base URLs:
- http://localhost:8082
get_api_analytics_portfolio
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/analytics/portfolio',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/analytics/portfolio \
-H 'Accept: application/json'
GET /api/analytics/portfolio
Get portfolio metrics
Retrieve aggregated metrics across all projects for the tenant
Example responses
200 Response
{
"active_projects": 0,
"at_risk_projects": 0,
"average_cpi": 0,
"average_health_score": 0,
"average_spi": 0,
"bottom_performers": [
{
"budget_used_pct": 0,
"cpi": 0,
"health_score": 0,
"project_id": [
0
],
"project_name": "string",
"spi": 0,
"status": "string"
}
],
"budget_distribution": {
"property1": {
"AmountMinor": 0,
"Currency": "string"
},
"property2": {
"AmountMinor": 0,
"Currency": "string"
}
},
"calculated_at": "2019-08-24T14:15:22Z",
"completed_projects": 0,
"critical_projects": 0,
"healthy_projects": 0,
"on_hold_projects": 0,
"portfolio_roi": 0,
"resource_utilization": {
"active_team_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_team_members": 0,
"underutilized_members": 0,
"utilization_rate": 0
},
"tenant_id": [
0
],
"top_performers": [
{
"budget_used_pct": 0,
"cpi": 0,
"health_score": 0,
"project_id": [
0
],
"project_name": "string",
"spi": 0,
"status": "string"
}
],
"total_actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_projects": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » active_projects | integer(int32) | true | none | none |
| » at_risk_projects | integer(int32) | true | none | none |
| » average_cpi | number | true | none | none |
| » average_health_score | number | true | none | none |
| » average_spi | number | true | none | none |
| » bottom_performers | [object] | false | none | none |
| »» budget_used_pct | number | true | none | none |
| »» cpi | number | true | none | none |
| »» health_score | number | true | none | none |
| »» project_id | [integer] | true | none | none |
| »» project_name | string | false | none | none |
| »» spi | number | true | none | none |
| »» status | string | true | none | none |
| » budget_distribution | object | false | none | none |
| »» additionalProperties | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » calculated_at | string(date-time) | true | none | none |
| » completed_projects | integer(int32) | true | none | none |
| » critical_projects | integer(int32) | true | none | none |
| » healthy_projects | integer(int32) | true | none | none |
| » on_hold_projects | integer(int32) | true | none | none |
| » portfolio_roi | number | true | none | none |
| » resource_utilization | object¦null | false | none | none |
| »» active_team_members | integer(int32) | true | none | none |
| »» average_allocation | number | true | none | none |
| »» overallocated_members | integer(int32) | true | none | none |
| »» total_team_members | integer(int32) | true | none | none |
| »» underutilized_members | integer(int32) | true | none | none |
| »» utilization_rate | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » top_performers | [object] | false | none | none |
| »» budget_used_pct | number | true | none | none |
| »» cpi | number | true | none | none |
| »» health_score | number | true | none | none |
| »» project_id | [integer] | true | none | none |
| »» project_name | string | false | none | none |
| »» spi | number | true | none | none |
| »» status | string | true | none | none |
| » total_actual_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_projects | integer(int32) | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
post_api_analytics_projects_project_id_forecast
Code samples
const inputBody = '{
"period": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/analytics/projects/{project_id}/forecast',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/analytics/projects/{project_id}/forecast \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/analytics/projects/{project_id}/forecast
Generate project financial forecast
Generate financial forecast for a project (3, 6, or 12 months). Requires project-finance:analytics:view scope.
Body parameter
{
"period": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_id | path | string | true | Project UUID |
| body | body | object | true | none |
| » period | body | string | true | none |
Example responses
201 Response
{
"assumptions": [
"string"
],
"budget_risk_probability": 0,
"completion_probability": 0,
"confidence_level": 0,
"forecast_end_date": "2019-08-24T14:15:22Z",
"generated_at": "2019-08-24T14:15:22Z",
"monthly_projections": [
{
"cumulative_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"cumulative_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"month": "2019-08-24T14:15:22Z",
"projected_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_profit": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
],
"period": "string",
"project_id": [
0
],
"projected_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_cpi": 0,
"projected_profit": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_spi": 0,
"tenant_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » assumptions | [string] | false | none | none |
| » budget_risk_probability | number | true | none | none |
| » completion_probability | number | true | none | none |
| » confidence_level | number | true | none | none |
| » forecast_end_date | string(date-time) | true | none | none |
| » generated_at | string(date-time) | true | none | none |
| » monthly_projections | [object] | false | none | none |
| »» cumulative_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» cumulative_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» month | string(date-time) | true | none | none |
| »» projected_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» projected_profit | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» projected_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » period | string | true | none | none |
| » project_id | [integer] | true | none | none |
| » projected_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » projected_cpi | number | true | none | none |
| » projected_profit | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » projected_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » projected_spi | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_analytics_projects_project_id_health
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/analytics/projects/{project_id}/health',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/analytics/projects/{project_id}/health \
-H 'Accept: application/json'
GET /api/analytics/projects/{project_id}/health
Get project health metrics
Retrieve comprehensive health metrics for a specific project
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_id | path | string | true | Project UUID |
Example responses
200 Response
{
"budget_metrics": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_pct": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_to_complete": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
},
"calculated_at": "2019-08-24T14:15:22Z",
"cash_flow_metrics": {
"burn_rate": {
"AmountMinor": 0,
"Currency": "string"
},
"cash_flow_margin": 0,
"net_cash_flow": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"runway_months": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"health_score": {
"budget_variance_score": 0,
"cash_flow_score": 0,
"composite_score": 0,
"cpi_score": 0,
"risk_score": 0,
"spi_score": 0
},
"performance_indicators": {
"cpi": 0,
"earned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"planned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"spi": 0,
"to_complete_performance": 0
},
"project_id": [
0
],
"risk_metrics": {
"critical_issues": 0,
"mitigation_actions": 0,
"open_issues": 0,
"risk_factors": {
"property1": {},
"property2": {}
},
"risk_level": "string",
"risk_score": 0
},
"schedule_metrics": {
"actual_duration_days": 0,
"actual_end_date": "2019-08-24T14:15:22Z",
"actual_start_date": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"on_time_delivery_probability": 0,
"planned_duration_days": 0,
"planned_end_date": "2019-08-24T14:15:22Z",
"planned_start_date": "2019-08-24T14:15:22Z",
"schedule_variance_days": 0,
"schedule_variance_pct": 0
},
"tenant_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » budget_metrics | object¦null | false | none | none |
| »» actual_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» allocated_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» budget_utilization | number | true | none | none |
| »» budget_variance | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» budget_variance_pct | number | true | none | none |
| »» committed_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» estimate_at_completion | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» estimate_to_complete | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» remaining_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » calculated_at | string(date-time) | true | none | none |
| » cash_flow_metrics | object¦null | false | none | none |
| »» burn_rate | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» cash_flow_margin | number | true | none | none |
| »» net_cash_flow | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» recognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» revenue_recognition_pct | number | true | none | none |
| »» runway_months | number | true | none | none |
| »» total_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» unrecognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » health_score | object¦null | false | none | none |
| »» budget_variance_score | number | true | none | none |
| »» cash_flow_score | number | true | none | none |
| »» composite_score | number | true | none | none |
| »» cpi_score | number | true | none | none |
| »» risk_score | number | true | none | none |
| »» spi_score | number | true | none | none |
| » performance_indicators | object¦null | false | none | none |
| »» cpi | number | true | none | none |
| »» earned_value | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» planned_value | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» spi | number | true | none | none |
| »» to_complete_performance | number | true | none | none |
| » project_id | [integer] | true | none | none |
| » risk_metrics | object¦null | false | none | none |
| »» critical_issues | integer(int32) | true | none | none |
| »» mitigation_actions | integer(int32) | true | none | none |
| »» open_issues | integer(int32) | true | none | none |
| »» risk_factors | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» risk_level | string | true | none | none |
| »» risk_score | number | true | none | none |
| » schedule_metrics | object¦null | false | none | none |
| »» actual_duration_days | integer(int32) | true | none | none |
| »» actual_end_date | string(date-time)¦null | false | none | none |
| »» actual_start_date | string(date-time)¦null | false | none | none |
| »» completion_percent | number | true | none | none |
| »» on_time_delivery_probability | number | true | none | none |
| »» planned_duration_days | integer(int32) | true | none | none |
| »» planned_end_date | string(date-time)¦null | false | none | none |
| »» planned_start_date | string(date-time)¦null | false | none | none |
| »» schedule_variance_days | integer(int32) | true | none | none |
| »» schedule_variance_pct | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
post_api_approvals
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"metadata": {
"property1": {},
"property2": {}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/approvals \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/approvals
Request approval
Create a new approval request for budget allocations, invoices, scope changes, etc. Requires project-finance:approval:request scope.
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"metadata": {
"property1": {},
"property2": {}
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » amount | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » description | body | string | true | none |
| » entity_id | body | [integer] | true | none |
| » entity_type | body | string | true | none |
| » metadata | body | object | false | none |
| »» additionalProperties | body | object | false | none |
Example responses
201 Response
{
"amount_minor": 0,
"approved_at": "string",
"approver_id": [
0
],
"created_at": "string",
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"id": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"notes": "string",
"rejected_at": "string",
"requester_id": [
0
],
"status": "string",
"tenant_id": [
0
],
"updated_at": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount_minor | integer(int64)¦null | false | none | none |
| » approved_at | string¦null | false | none | none |
| » approver_id | [integer]¦null | false | none | none |
| » created_at | string | true | none | none |
| » description | string | true | none | none |
| » entity_id | [integer] | true | none | none |
| » entity_type | string | true | none | none |
| » id | [integer] | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » notes | string | false | none | none |
| » rejected_at | string¦null | false | none | none |
| » requester_id | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_approvals_check-required
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/check-required?entity_type=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/approvals/check-required?entity_type=string \
-H 'Accept: application/json'
GET /api/approvals/check-required
Check if approval is required
Check if approval is required for a specific entity type and amount. Requires project-finance:approval:view scope.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| amount_minor | query | integer | false | Amount in minor units (cents) |
| entity_type | query | string | true | Entity type |
Example responses
200 Response
{
"required": true
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » required | boolean | true | none | none |
get_api_approvals_entity_entity_type_entity_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/entity/{entity_type}/{entity_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/approvals/entity/{entity_type}/{entity_id} \
-H 'Accept: application/json'
GET /api/approvals/entity/{entity_type}/{entity_id}
Get approval status for entity
Retrieve the approval status for a specific entity (budget, invoice, scope change, etc.). Requires project-finance:approval:view scope.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| entity_id | path | string | true | Entity UUID |
| entity_type | path | string | true | Entity type (budget_allocation, progress_invoice, milestone_invoice, scope_change, cost_center_allocation) |
Example responses
200 Response
{
"amount_minor": 0,
"approved_at": "string",
"approver_id": [
0
],
"created_at": "string",
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"id": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"notes": "string",
"rejected_at": "string",
"requester_id": [
0
],
"status": "string",
"tenant_id": [
0
],
"updated_at": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Approval not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount_minor | integer(int64)¦null | false | none | none |
| » approved_at | string¦null | false | none | none |
| » approver_id | [integer]¦null | false | none | none |
| » created_at | string | true | none | none |
| » description | string | true | none | none |
| » entity_id | [integer] | true | none | none |
| » entity_type | string | true | none | none |
| » id | [integer] | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » notes | string | false | none | none |
| » rejected_at | string¦null | false | none | none |
| » requester_id | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
get_api_approvals_pending
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/pending',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/approvals/pending \
-H 'Accept: application/json'
GET /api/approvals/pending
Get pending approvals
Retrieve all pending approval requests for the tenant. Requires project-finance:approval:view scope.
Example responses
200 Response
[
{
"amount_minor": 0,
"approved_at": "string",
"approver_id": [
0
],
"created_at": "string",
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"id": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"notes": "string",
"rejected_at": "string",
"requester_id": [
0
],
"status": "string",
"tenant_id": [
0
],
"updated_at": "string"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount_minor | integer(int64)¦null | false | none | none |
| » approved_at | string¦null | false | none | none |
| » approver_id | [integer]¦null | false | none | none |
| » created_at | string | true | none | none |
| » description | string | true | none | none |
| » entity_id | [integer] | true | none | none |
| » entity_type | string | true | none | none |
| » id | [integer] | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » notes | string | false | none | none |
| » rejected_at | string¦null | false | none | none |
| » requester_id | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string | true | none | none |
post_api_approvals_id_approve
Code samples
const inputBody = '{
"notes": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/{id}/approve',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/approvals/{id}/approve \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/approvals/{id}/approve
Approve approval request
Approve a pending approval request. Requires project-finance:approval:approve scope.
Body parameter
{
"notes": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Approval Request UUID |
| body | body | object | true | none |
| » notes | body | string | true | none |
Example responses
201 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Approval request not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_approvals_id_cancel
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/{id}/cancel',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/approvals/{id}/cancel \
-H 'Accept: application/json'
POST /api/approvals/{id}/cancel
Cancel approval request
Cancel a pending approval request. Requires project-finance:approval:request scope.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Approval Request UUID |
Example responses
201 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Approval request not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_approvals_id_reject
Code samples
const inputBody = '{
"notes": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/approvals/{id}/reject',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/approvals/{id}/reject \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/approvals/{id}/reject
Reject approval request
Reject a pending approval request with a reason. Requires project-finance:approval:approve scope.
Body parameter
{
"notes": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Approval Request UUID |
| body | body | object | true | none |
| » notes | body | string | true | none |
Example responses
201 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Approval request not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_compliance_reports_audit-trail
Code samples
const inputBody = '{
"end_date": "2019-08-24T14:15:22Z",
"event_types": [
"string"
],
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/compliance/reports/audit-trail',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/compliance/reports/audit-trail \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/compliance/reports/audit-trail
Generate audit trail report
Generate an audit trail report for compliance and auditing purposes. Requires project-finance:compliance:view scope.
Body parameter
{
"end_date": "2019-08-24T14:15:22Z",
"event_types": [
"string"
],
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » end_date | body | string(date-time) | true | none |
| » event_types | body | [string] | false | none |
| » project_id | body | [integer]¦null | false | none |
| » start_date | body | string(date-time) | true | none |
| » user_id | body | [integer]¦null | false | none |
Example responses
201 Response
{
"audit_entries": [
{
"action": "string",
"aggregate_id": [
0
],
"aggregate_type": "string",
"changes": {
"property1": {},
"property2": {}
},
"correlation_id": "string",
"entry_id": [
0
],
"event_id": "string",
"event_type": "string",
"ip_address": "string",
"metadata": {
"property1": {},
"property2": {}
},
"resource_id": [
0
],
"resource_type": "string",
"tenant_id": [
0
],
"timestamp": "2019-08-24T14:15:22Z",
"user_agent": "string",
"user_id": [
0
]
}
],
"event_types": {
"property1": 0,
"property2": 0
},
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"tenant_id": [
0
],
"total_entries": 0,
"unique_users": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » audit_entries | [object] | false | none | none |
| »» action | string | true | none | none |
| »» aggregate_id | [integer] | true | none | none |
| »» aggregate_type | string | true | none | none |
| »» changes | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» correlation_id | string | false | none | none |
| »» entry_id | [integer] | true | none | none |
| »» event_id | string | true | none | none |
| »» event_type | string | true | none | none |
| »» ip_address | string | false | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» resource_id | [integer] | true | none | none |
| »» resource_type | string | true | none | none |
| »» tenant_id | [integer] | true | none | none |
| »» timestamp | string(date-time) | true | none | none |
| »» user_agent | string | false | none | none |
| »» user_id | [integer] | true | none | none |
| » event_types | object | false | none | none |
| »» additionalProperties | integer(int32) | false | none | none |
| » generated_at | string(date-time) | true | none | none |
| » generated_by | [integer] | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » project_id | [integer]¦null | false | none | none |
| » report_id | string | true | none | none |
| » report_period | object | true | none | none |
| »» end_date | string(date-time) | true | none | none |
| »» label | string | true | none | none |
| »» start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_entries | integer(int32) | true | none | none |
| » unique_users | integer(int32) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_compliance_reports_gdpr-article-30
Code samples
const inputBody = '{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/compliance/reports/gdpr-article-30',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/compliance/reports/gdpr-article-30 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/compliance/reports/gdpr-article-30
Generate GDPR Article 30 compliance report
Generate a GDPR Article 30 compliance report documenting records of processing activities. Requires project-finance:compliance:view scope.
Body parameter
{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » end_date | body | string(date-time) | true | none |
| » project_id | body | [integer]¦null | false | none |
| » start_date | body | string(date-time) | true | none |
Example responses
201 Response
{
"data_processing_activities": [
{
"activity_id": "string",
"activity_name": "string",
"data_categories": [
"string"
],
"metadata": {
"property1": {},
"property2": {}
},
"purpose": "string",
"recipients": [
"string"
],
"retention_period": "string",
"security_measures": [
"string"
],
"transfers": [
"string"
]
}
],
"data_subjects": [
"string"
],
"framework": "string",
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"legal_basis": "string",
"metadata": {
"property1": {},
"property2": {}
},
"organizational_measures": [
"string"
],
"personal_data_categories": [
"string"
],
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"retention_justification": "string",
"retention_period": "string",
"technical_measures": [
"string"
],
"tenant_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data_processing_activities | [object] | false | none | none |
| »» activity_id | string | true | none | none |
| »» activity_name | string | true | none | none |
| »» data_categories | [string] | false | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» purpose | string | true | none | none |
| »» recipients | [string] | false | none | none |
| »» retention_period | string | true | none | none |
| »» security_measures | [string] | false | none | none |
| »» transfers | [string] | false | none | none |
| » data_subjects | [string] | false | none | none |
| » framework | string | true | none | none |
| » generated_at | string(date-time) | true | none | none |
| » generated_by | [integer] | true | none | none |
| » legal_basis | string | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » organizational_measures | [string] | false | none | none |
| » personal_data_categories | [string] | false | none | none |
| » project_id | [integer]¦null | false | none | none |
| » report_id | string | true | none | none |
| » report_period | object | true | none | none |
| »» end_date | string(date-time) | true | none | none |
| »» label | string | true | none | none |
| »» start_date | string(date-time) | true | none | none |
| » retention_justification | string | true | none | none |
| » retention_period | string | true | none | none |
| » technical_measures | [string] | false | none | none |
| » tenant_id | [integer] | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_compliance_reports_sox-404
Code samples
const inputBody = '{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/compliance/reports/sox-404',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/compliance/reports/sox-404 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/compliance/reports/sox-404
Generate SOX-404 compliance report
Generate a SOX 404 compliance report documenting internal controls over financial reporting. Requires project-finance:compliance:view scope.
Body parameter
{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » end_date | body | string(date-time) | true | none |
| » project_id | body | [integer]¦null | false | none |
| » start_date | body | string(date-time) | true | none |
Example responses
201 Response
{
"budget_controls": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"change_order_controls": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"compliance_attestations": [
{
"attestation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"entity_id": [
0
],
"entity_type": "string",
"evaluation_id": "string",
"framework": "string",
"operation_type": "string",
"passed_rules": 0,
"result": true,
"rulepack_id": "string",
"rulepack_version": "string",
"signed_digest": "string",
"total_rules": 0
}
],
"control_effectiveness": 0,
"deficient_controls": 0,
"effective_controls": 0,
"expense_approvals": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"framework": "string",
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"revenue_recognition": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"tenant_id": [
0
],
"total_controls": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » budget_controls | [object] | false | none | none |
| »» attestation_ids | [string] | false | none | none |
| »» control_description | string | true | none | none |
| »» control_id | string | true | none | none |
| »» control_name | string | true | none | none |
| »» control_type | string | true | none | none |
| »» deficiencies | [string] | false | none | none |
| »» evidence_count | integer(int32) | true | none | none |
| »» evidence_type | string | true | none | none |
| »» frequency | string | true | none | none |
| »» is_effective | boolean | true | none | none |
| »» last_executed | string(date-time) | true | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» owner | [integer] | true | none | none |
| » change_order_controls | [object] | false | none | none |
| »» attestation_ids | [string] | false | none | none |
| »» control_description | string | true | none | none |
| »» control_id | string | true | none | none |
| »» control_name | string | true | none | none |
| »» control_type | string | true | none | none |
| »» deficiencies | [string] | false | none | none |
| »» evidence_count | integer(int32) | true | none | none |
| »» evidence_type | string | true | none | none |
| »» frequency | string | true | none | none |
| »» is_effective | boolean | true | none | none |
| »» last_executed | string(date-time) | true | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» owner | [integer] | true | none | none |
| » compliance_attestations | [object] | false | none | none |
| »» attestation_id | string | true | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» entity_id | [integer] | true | none | none |
| »» entity_type | string | true | none | none |
| »» evaluation_id | string | true | none | none |
| »» framework | string | true | none | none |
| »» operation_type | string | true | none | none |
| »» passed_rules | integer(int32) | true | none | none |
| »» result | boolean | true | none | none |
| »» rulepack_id | string | true | none | none |
| »» rulepack_version | string | true | none | none |
| »» signed_digest | string | false | none | none |
| »» total_rules | integer(int32) | true | none | none |
| » control_effectiveness | number | true | none | none |
| » deficient_controls | integer(int32) | true | none | none |
| » effective_controls | integer(int32) | true | none | none |
| » expense_approvals | [object] | false | none | none |
| »» attestation_ids | [string] | false | none | none |
| »» control_description | string | true | none | none |
| »» control_id | string | true | none | none |
| »» control_name | string | true | none | none |
| »» control_type | string | true | none | none |
| »» deficiencies | [string] | false | none | none |
| »» evidence_count | integer(int32) | true | none | none |
| »» evidence_type | string | true | none | none |
| »» frequency | string | true | none | none |
| »» is_effective | boolean | true | none | none |
| »» last_executed | string(date-time) | true | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» owner | [integer] | true | none | none |
| » framework | string | true | none | none |
| » generated_at | string(date-time) | true | none | none |
| » generated_by | [integer] | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » project_id | [integer]¦null | false | none | none |
| » report_id | string | true | none | none |
| » report_period | object | true | none | none |
| »» end_date | string(date-time) | true | none | none |
| »» label | string | true | none | none |
| »» start_date | string(date-time) | true | none | none |
| » revenue_recognition | [object] | false | none | none |
| »» attestation_ids | [string] | false | none | none |
| »» control_description | string | true | none | none |
| »» control_id | string | true | none | none |
| »» control_name | string | true | none | none |
| »» control_type | string | true | none | none |
| »» deficiencies | [string] | false | none | none |
| »» evidence_count | integer(int32) | true | none | none |
| »» evidence_type | string | true | none | none |
| »» frequency | string | true | none | none |
| »» is_effective | boolean | true | none | none |
| »» last_executed | string(date-time) | true | none | none |
| »» metadata | object | false | none | none |
| »»» additionalProperties | object | false | none | none |
| »» owner | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_controls | integer(int32) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_cost-centers_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/cost-centers/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/cost-centers/{id} \
-H 'Accept: application/json'
DELETE /api/cost-centers/{id}
Delete cost center
Delete a cost center
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Cost Center UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_cost-centers_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/cost-centers/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/cost-centers/{id} \
-H 'Accept: application/json'
GET /api/cost-centers/{id}
Get cost center by ID
Retrieve a specific cost center by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Cost Center UUID |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » code | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » currency | string | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
put_api_cost-centers_id
Code samples
const inputBody = '{
"description": "string",
"is_active": true,
"name": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/cost-centers/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/cost-centers/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/cost-centers/{id}
Update cost center
Update an existing cost center
Body parameter
{
"description": "string",
"is_active": true,
"name": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Cost Center UUID |
| body | body | object | true | none |
| » description | body | string¦null | false | none |
| » is_active | body | boolean¦null | false | none |
| » name | body | string¦null | false | none |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » code | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » currency | string | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_cost-centers_id_allocate-budget
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/cost-centers/{id}/allocate-budget',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/cost-centers/{id}/allocate-budget \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/cost-centers/{id}/allocate-budget
Allocate budget to cost center
Allocate additional budget to a cost center
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Cost Center UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » code | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » currency | string | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_project_finance_id_cost-centers
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/cost-centers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{project_finance_id}/cost-centers \
-H 'Accept: application/json'
GET /api/project-finance/{project_finance_id}/cost-centers
List cost centers by project finance ID
Retrieve all cost centers for a specific project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
Example responses
200 Response
[
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » code | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » currency | string | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_project-finance_project_finance_id_cost-centers
Code samples
const inputBody = '{
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"description": "string",
"name": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/cost-centers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{project_finance_id}/cost-centers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{project_finance_id}/cost-centers
Create cost center
Create a new cost center for a project finance record
Body parameter
{
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"description": "string",
"name": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » allocated_budget | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » code | body | string | true | none |
| » description | body | string | true | none |
| » name | body | string | true | none |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » code | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » currency | string | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_export
Code samples
const inputBody = '{
"end_date": "2019-08-24T14:15:22Z",
"format": "string",
"include_phases": true,
"include_scopes": true,
"include_team": true,
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/export',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/export \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/export
Export project financial data
Export project financial data in JSON, CSV, or Excel format. Supports project-specific or portfolio-wide exports. Requires project-finance:read scope.
Body parameter
{
"end_date": "2019-08-24T14:15:22Z",
"format": "string",
"include_phases": true,
"include_scopes": true,
"include_team": true,
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » end_date | body | string(date-time)¦null | false | none |
| » format | body | string | true | none |
| » include_phases | body | boolean | true | none |
| » include_scopes | body | boolean | true | none |
| » include_team | body | boolean | true | none |
| » project_id | body | [integer]¦null | false | none |
| » start_date | body | string(date-time)¦null | false | none |
Example responses
201 Response
{
"download_url": "string",
"expires_at": "2019-08-24T14:15:22Z",
"export_id": "string",
"file_size": 0,
"format": "string",
"generated_at": "2019-08-24T14:15:22Z",
"record_count": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » download_url | string | false | none | none |
| » expires_at | string(date-time) | true | none | none |
| » export_id | string | true | none | none |
| » file_size | integer(int64) | true | none | none |
| » format | string | true | none | none |
| » generated_at | string(date-time) | true | none | none |
| » record_count | integer(int32) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_milestones_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/milestones/{id} \
-H 'Accept: application/json'
DELETE /api/milestones/{id}
Delete milestone
Delete a milestone
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_milestones_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/milestones/{id} \
-H 'Accept: application/json'
GET /api/milestones/{id}
Get milestone by ID
Retrieve a specific milestone by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
Example responses
200 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
put_api_milestones_id
Code samples
const inputBody = '{
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/milestones/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/milestones/{id}
Update milestone
Update an existing milestone
Body parameter
{
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
| body | body | object | true | none |
| » description | body | string¦null | false | none |
| » due_date | body | string(date-time)¦null | false | none |
| » name | body | string¦null | false | none |
Example responses
200 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_milestones_id_cancel
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}/cancel',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/milestones/{id}/cancel \
-H 'Accept: application/json'
POST /api/milestones/{id}/cancel
Cancel milestone
Mark a milestone as cancelled
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
Example responses
201 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_milestones_id_complete
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/milestones/{id}/complete \
-H 'Accept: application/json'
POST /api/milestones/{id}/complete
Complete milestone
Mark a milestone as completed
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
Example responses
201 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_milestones_id_invoice
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}/invoice',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/milestones/{id}/invoice \
-H 'Accept: application/json'
POST /api/milestones/{id}/invoice
Create invoice for milestone
Create an invoice for a completed milestone using saga orchestration pattern
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
Example responses
201 Response
{
"correlation_id": "string",
"created_at": "string",
"id": "string",
"request_id": "string",
"saga_type": "string",
"status": "string",
"tenant_id": "string",
"updated_at": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » correlation_id | string | true | none | none |
| » created_at | string | true | none | none |
| » id | string | true | none | none |
| » request_id | string | true | none | none |
| » saga_type | string | true | none | none |
| » status | string | true | none | none |
| » tenant_id | string | true | none | none |
| » updated_at | string | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_milestones_id_progress
Code samples
const inputBody = '{
"completion_percent": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/milestones/{id}/progress',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/milestones/{id}/progress \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/milestones/{id}/progress
Update milestone progress
Update the completion percentage of a milestone
Body parameter
{
"completion_percent": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Milestone UUID |
| body | body | object | true | none |
| » completion_percent | body | number | true | none |
Example responses
201 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_project_finance_id_milestones
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/milestones',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{project_finance_id}/milestones \
-H 'Accept: application/json'
GET /api/project-finance/{project_finance_id}/milestones
List milestones by project finance ID
Retrieve all milestones for a specific project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
Example responses
200 Response
[
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_project-finance_project_finance_id_milestones
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string",
"sequence": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/milestones',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{project_finance_id}/milestones \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{project_finance_id}/milestones
Create milestone
Create a new milestone for a project finance record
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string",
"sequence": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » description | body | string¦null | false | none |
| » due_date | body | string(date-time)¦null | false | none |
| » name | body | string | true | none |
| » sequence | body | integer(int32) | true | none |
Example responses
201 Response
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » amount | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » billed_at | string(date-time)¦null | false | none | none |
| » completed_at | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string¦null | false | none | none |
| » due_date | string(date-time)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » invoice_id | integer(int64)¦null | false | none | none |
| » invoice_number | string¦null | false | none | none |
| » name | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_phases_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/phases/{id} \
-H 'Accept: application/json'
DELETE /api/phases/{id}
Delete phase
Delete a phase
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_phases_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/phases/{id} \
-H 'Accept: application/json'
GET /api/phases/{id}
Get phase by ID
Retrieve a specific phase by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
put_api_phases_id
Code samples
const inputBody = '{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"status": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/phases/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/phases/{id}
Update phase
Update an existing phase
Body parameter
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"status": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
| body | body | object | true | none |
| » actual_cost | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » actual_end | body | string(date-time)¦null | false | none |
| » actual_start | body | string(date-time)¦null | false | none |
| » name | body | string¦null | false | none |
| » phase_budget | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » planned_end | body | string(date-time)¦null | false | none |
| » planned_start | body | string(date-time)¦null | false | none |
| » status | body | string¦null | false | none |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_phases_id_complete
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/phases/{id}/complete \
-H 'Accept: application/json'
POST /api/phases/{id}/complete
Complete phase
Mark a phase as completed
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_phases_id_progress
Code samples
const inputBody = '{
"percent": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}/progress',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/phases/{id}/progress \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/phases/{id}/progress
Update phase progress
Update the progress percentage of a phase
Body parameter
{
"percent": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
| body | body | object | true | none |
| » percent | body | number | true | none |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_phases_id_start
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/phases/{id}/start',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/phases/{id}/start \
-H 'Accept: application/json'
POST /api/phases/{id}/start
Start phase
Mark a phase as started
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Phase UUID |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_project_finance_id_phases
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/phases',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{project_finance_id}/phases \
-H 'Accept: application/json'
GET /api/project-finance/{project_finance_id}/phases
List phases by project finance ID
Retrieve all phases for a specific project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
Example responses
200 Response
[
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_project-finance_project_finance_id_phases
Code samples
const inputBody = '{
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"sequence": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/phases',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{project_finance_id}/phases \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{project_finance_id}/phases
Create phase
Create a new phase for a project finance record
Body parameter
{
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"sequence": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » name | body | string | true | none |
| » phase_budget | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » planned_end | body | string(date-time) | true | none |
| » planned_start | body | string(date-time) | true | none |
| » sequence | body | integer(int32) | true | none |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » actual_end | string(date-time)¦null | false | none | none |
| » actual_start | string(date-time)¦null | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » id | [integer] | true | none | none |
| » name | string | true | none | none |
| » phase_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » planned_end | string(date-time) | true | none | none |
| » planned_start | string(date-time) | true | none | none |
| » progress_percent | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » sequence | integer(int32) | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance \
-H 'Accept: application/json'
GET /api/project-finance
List project finance records
Retrieve a paginated list of project finance records for the tenant
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of items per page (max 100) |
| offset | query | integer | false | Number of items to skip |
Example responses
200 Response
{
"data": [
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_next": true,
"has_prev": true,
"page": 0,
"pages": 0,
"per_page": 0,
"total": 0
}
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | [object] | false | none | none |
| »» actual_cost | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» allocated_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» budget_variance | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» budget_variance_percent | object | true | none | none |
| »»» value | number | true | none | none |
| »» committed_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» cost_performance_index | object | true | none | none |
| »»» value | number | true | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» estimate_at_completion | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» estimate_to_complete | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» financial_health_score | object | true | none | none |
| »»» score | number | true | none | none |
| »» health_status | string | true | none | none |
| »» id | [integer] | true | none | none |
| »» parent_id | [integer]¦null | false | none | none |
| »» project_id | [integer] | true | none | none |
| »» recognized_revenue | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» revenue_model | string | true | none | none |
| »» risk_level | string | true | none | none |
| »» schedule_performance_index | object | true | none | none |
| »»» value | number | true | none | none |
| »» tenant_id | [integer] | true | none | none |
| »» total_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» total_revenue | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» updated_at | string(date-time) | true | none | none |
| » pagination | object | true | none | none |
| »» has_next | boolean | true | none | none |
| »» has_prev | boolean | true | none | none |
| »» page | integer(int32) | true | none | none |
| »» pages | integer(int32) | true | none | none |
| »» per_page | integer(int32) | true | none | none |
| »» total | integer(int32) | true | none | none |
post_api_project-finance
Code samples
const inputBody = '{
"project_id": [
0
],
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance
Create project finance record
Creates a new project finance record with budget tracking and revenue model
Body parameter
{
"project_id": [
0
],
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » project_id | body | [integer] | true | none |
| » revenue_model | body | string | true | none |
| » total_budget | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
201 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_project-finance_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/project-finance/{id} \
-H 'Accept: application/json'
DELETE /api/project-finance/{id}
Delete project finance
Delete a project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project finance not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
get_api_project-finance_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{id} \
-H 'Accept: application/json'
GET /api/project-finance/{id}
Get project finance by ID
Retrieve a specific project finance record by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project finance not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
put_api_project-finance_id
Code samples
const inputBody = '{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/project-finance/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/project-finance/{id}
Update project finance
Update an existing project finance record
Body parameter
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » actual_cost | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » allocated_budget | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » committed_budget | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » revenue_model | body | string¦null | false | none |
| » total_budget | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » total_revenue | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project finance not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
post_api_project-finance_id_allocate-budget
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/allocate-budget',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{id}/allocate-budget \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{id}/allocate-budget
Allocate budget
Allocate budget to a project finance record
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
post_api_project-finance_id_bill-progress
Code samples
const inputBody = '{
"progress_percent": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/bill-progress',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{id}/bill-progress \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{id}/bill-progress
Create progress-based invoice
Create an invoice based on project progress percentage using saga orchestration pattern
Body parameter
{
"progress_percent": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » progress_percent | body | number | true | none |
Example responses
201 Response
{
"correlation_id": "string",
"created_at": "string",
"id": "string",
"request_id": "string",
"saga_type": "string",
"status": "string",
"tenant_id": "string",
"updated_at": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » correlation_id | string | true | none | none |
| » created_at | string | true | none | none |
| » id | string | true | none | none |
| » request_id | string | true | none | none |
| » saga_type | string | true | none | none |
| » status | string | true | none | none |
| » tenant_id | string | true | none | none |
| » updated_at | string | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_id_children
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/children',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{id}/children \
-H 'Accept: application/json'
GET /api/project-finance/{id}/children
List child projects
Retrieve all child project finance records for a given parent project
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Parent Project Finance UUID |
Example responses
200 Response
{
"children": [
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » children | [object] | false | none | none |
| »» actual_cost | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» allocated_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» budget_variance | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» budget_variance_percent | object | true | none | none |
| »»» value | number | true | none | none |
| »» committed_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» cost_performance_index | object | true | none | none |
| »»» value | number | true | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» estimate_at_completion | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» estimate_to_complete | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» financial_health_score | object | true | none | none |
| »»» score | number | true | none | none |
| »» health_status | string | true | none | none |
| »» id | [integer] | true | none | none |
| »» parent_id | [integer]¦null | false | none | none |
| »» project_id | [integer] | true | none | none |
| »» recognized_revenue | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» revenue_model | string | true | none | none |
| »» risk_level | string | true | none | none |
| »» schedule_performance_index | object | true | none | none |
| »»» value | number | true | none | none |
| »» tenant_id | [integer] | true | none | none |
| »» total_budget | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» total_revenue | object | true | none | none |
| »»» amount | number | true | none | none |
| »»» currency | string | true | none | none |
| »» updated_at | string(date-time) | true | none | none |
post_api_project-finance_id_commit-budget
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/commit-budget',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{id}/commit-budget \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{id}/commit-budget
Commit budget
Commit budget for a project finance record
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
put_api_project-finance_id_parent
Code samples
const inputBody = '{
"parent_id": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/parent',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/project-finance/{id}/parent \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/project-finance/{id}/parent
Set parent project
Set or update the parent project for hierarchical project structures. Set parent_id to null to remove parent.
Body parameter
{
"parent_id": [
0
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » parent_id | body | [integer]¦null | false | none |
Example responses
200 Response
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_project-finance_id_recognize-revenue
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/recognize-revenue',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{id}/recognize-revenue \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{id}/recognize-revenue
Recognize revenue
Recognize revenue for a project finance record
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
post_api_project-finance_id_record-cost
Code samples
const inputBody = '{
"amount": {
"amount": 0,
"currency": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{id}/record-cost',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{id}/record-cost \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{id}/record-cost
Record actual cost
Record actual cost for a project finance record
Body parameter
{
"amount": {
"amount": 0,
"currency": "string"
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » amount | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_project-finance_portfolio_capacity
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/portfolio/capacity',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/portfolio/capacity \
-H 'Accept: application/json'
GET /api/project-finance/portfolio/capacity
Get portfolio capacity metrics
Retrieve aggregated capacity planning metrics across all projects in the portfolio
Example responses
200 Response
{
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"overall_utilization_percent": 0,
"overallocated_members": 0,
"project_capacities": {
"property1": {
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
},
"property2": {
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
}
},
"projects_count": 0,
"total_allocation_percent": 0,
"total_members": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » active_members | integer(int32) | true | none | none |
| » available_capacity_percent | number | true | none | none |
| » average_allocation | number | true | none | none |
| » calculated_at | string(date-time) | true | none | none |
| » overall_utilization_percent | number | true | none | none |
| » overallocated_members | integer(int32) | true | none | none |
| » project_capacities | object | false | none | none |
| »» additionalProperties | object¦null | false | none | none |
| »»» active_members | integer(int32) | true | none | none |
| »»» available_capacity_percent | number | true | none | none |
| »»» average_allocation | number | true | none | none |
| »»» calculated_at | string(date-time) | true | none | none |
| »»» member_allocations | [object] | false | none | none |
| »»»» capacity_percent | number | true | none | none |
| »»»» is_active | boolean | true | none | none |
| »»»» is_billable | boolean | true | none | none |
| »»»» role | string | true | none | none |
| »»»» user_id | [integer] | true | none | none |
| »»» overallocated_members | integer(int32) | true | none | none |
| »»» project_finance_id | [integer] | true | none | none |
| »»» total_allocation_percent | number | true | none | none |
| »»» total_members | integer(int32) | true | none | none |
| »»» utilization_percent | number | true | none | none |
| » projects_count | integer(int32) | true | none | none |
| » total_allocation_percent | number | true | none | none |
| » total_members | integer(int32) | true | none | none |
get_api_project-finance_project_projectID_capacity
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/project/{projectID}/capacity',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/project/{projectID}/capacity \
-H 'Accept: application/json'
GET /api/project-finance/project/{projectID}/capacity
Get project capacity metrics
Retrieve capacity planning metrics for a specific project including team member allocations and utilization
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| projectID | path | string | true | Project UUID |
Example responses
200 Response
{
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » active_members | integer(int32) | true | none | none |
| » available_capacity_percent | number | true | none | none |
| » average_allocation | number | true | none | none |
| » calculated_at | string(date-time) | true | none | none |
| » member_allocations | [object] | false | none | none |
| »» capacity_percent | number | true | none | none |
| »» is_active | boolean | true | none | none |
| »» is_billable | boolean | true | none | none |
| »» role | string | true | none | none |
| »» user_id | [integer] | true | none | none |
| » overallocated_members | integer(int32) | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » total_allocation_percent | number | true | none | none |
| » total_members | integer(int32) | true | none | none |
| » utilization_percent | number | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
get_api_project-finance_portfolio_dashboard
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/portfolio/dashboard',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/portfolio/dashboard \
-H 'Accept: application/json'
GET /api/project-finance/portfolio/dashboard
Get portfolio dashboard
Retrieve aggregated dashboard metrics across all projects in the portfolio with optional filtering by status, billing model, currency, client, or team
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| billing_model | query | string | false | Filter by revenue/billing model (FIXED_PRICE, TIME_AND_MATERIALS, MILESTONE_BASED, RETAINER) |
| client_id | query | integer | false | Filter by client ID |
| currency | query | string | false | Filter by currency code (e.g., USD, EUR) |
| status | query | string | false | Filter by project status |
| team_id | query | string | false | Filter by team UUID |
Example responses
200 Response
{
"active_projects": 0,
"completed_projects": 0,
"financial_summary": {
"at_risk_projects": 0,
"average_budget_utilization": 0,
"average_health_score": 0,
"average_profit_margin": 0,
"critical_projects": 0,
"healthy_projects": 0,
"total_actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"total_allocated": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"last_updated": "2019-08-24T14:15:22Z",
"on_hold_projects": 0,
"project_alerts": [
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"project_id": [
0
],
"resolved_at": "2019-08-24T14:15:22Z",
"severity": "string"
}
],
"projects_by_status": {
"property1": 0,
"property2": 0
},
"revenue_by_month": {
"property1": {
"AmountMinor": 0,
"Currency": "string"
},
"property2": {
"AmountMinor": 0,
"Currency": "string"
}
},
"tenant_id": [
0
],
"top_performing_projects": [
{
"budget_utilization": 0,
"health_score": 0,
"health_status": "string",
"profit_margin": 0,
"project_finance_id": [
0
],
"project_id": [
0
],
"project_name": "string",
"status": "string"
}
],
"total_costs": {
"AmountMinor": 0,
"Currency": "string"
},
"total_profit_margin": 0,
"total_projects": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » active_projects | integer(int32) | true | none | none |
| » completed_projects | integer(int32) | true | none | none |
| » financial_summary | object | true | none | none |
| »» at_risk_projects | integer(int32) | true | none | none |
| »» average_budget_utilization | number | true | none | none |
| »» average_health_score | number | true | none | none |
| »» average_profit_margin | number | true | none | none |
| »» critical_projects | integer(int32) | true | none | none |
| »» healthy_projects | integer(int32) | true | none | none |
| »» total_actual_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_allocated | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_recognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » last_updated | string(date-time) | true | none | none |
| » on_hold_projects | integer(int32) | true | none | none |
| » project_alerts | [object] | false | none | none |
| »» category | string | true | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» message | string | true | none | none |
| »» project_id | [integer] | true | none | none |
| »» resolved_at | string(date-time)¦null | false | none | none |
| »» severity | string | true | none | none |
| » projects_by_status | object | false | none | none |
| »» additionalProperties | integer(int32) | false | none | none |
| » revenue_by_month | object | false | none | none |
| »» additionalProperties | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » top_performing_projects | [object] | false | none | none |
| »» budget_utilization | number | true | none | none |
| »» health_score | number | true | none | none |
| »» health_status | string | true | none | none |
| »» profit_margin | number | true | none | none |
| »» project_finance_id | [integer] | true | none | none |
| »» project_id | [integer] | true | none | none |
| »» project_name | string | false | none | none |
| »» status | string | true | none | none |
| » total_costs | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_profit_margin | number | true | none | none |
| » total_projects | integer(int32) | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
get_api_project-finance_project_projectID_dashboard
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/project/{projectID}/dashboard',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/project/{projectID}/dashboard \
-H 'Accept: application/json'
GET /api/project-finance/project/{projectID}/dashboard
Get project financial dashboard
Retrieve comprehensive financial dashboard metrics for a specific project including budget, revenue, team, and milestone metrics
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| projectID | path | string | true | Project UUID |
Example responses
200 Response
{
"alerts": [
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"project_id": [
0
],
"resolved_at": "2019-08-24T14:15:22Z",
"severity": "string"
}
],
"budget_metrics": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_percent": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
},
"currency": "string",
"financial_summary": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"profit_margin": 0,
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"health_score": 0,
"health_status": "string",
"last_updated": "2019-08-24T14:15:22Z",
"milestone_metrics": {
"completed_milestones": 0,
"completion_percent": 0,
"overdue_milestones": 0,
"pending_milestones": 0,
"total_milestones": 0
},
"project_finance_id": [
0
],
"project_id": [
0
],
"project_name": "string",
"revenue_metrics": {
"billed_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"outstanding_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"paid_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"revenue_model": "string",
"risk_level": "string",
"status": "string",
"team_metrics": {
"active_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_members": 0,
"utilization_percent": 0
},
"tenant_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » alerts | [object] | false | none | none |
| »» category | string | true | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» message | string | true | none | none |
| »» project_id | [integer] | true | none | none |
| »» resolved_at | string(date-time)¦null | false | none | none |
| »» severity | string | true | none | none |
| » budget_metrics | object | true | none | none |
| »» actual_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» allocated_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» budget_utilization | number | true | none | none |
| »» budget_variance | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» budget_variance_percent | number | true | none | none |
| »» committed_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» estimate_at_completion | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» remaining_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » currency | string | true | none | none |
| » financial_summary | object | true | none | none |
| »» actual_cost | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» allocated_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» budget_utilization | number | true | none | none |
| »» profit_margin | number | true | none | none |
| »» recognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_budget | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» total_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » health_score | number | true | none | none |
| » health_status | string | true | none | none |
| » last_updated | string(date-time) | true | none | none |
| » milestone_metrics | object | true | none | none |
| »» completed_milestones | integer(int32) | true | none | none |
| »» completion_percent | number | true | none | none |
| »» overdue_milestones | integer(int32) | true | none | none |
| »» pending_milestones | integer(int32) | true | none | none |
| »» total_milestones | integer(int32) | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » project_id | [integer] | true | none | none |
| » project_name | string | false | none | none |
| » revenue_metrics | object | true | none | none |
| »» billed_amount | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» outstanding_amount | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» paid_amount | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» recognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» revenue_recognition_pct | number | true | none | none |
| »» total_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| »» unrecognized_revenue | object¦null | false | none | none |
| »»» AmountMinor | integer(int64) | true | none | none |
| »»» Currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » status | string | true | none | none |
| » team_metrics | object | true | none | none |
| »» active_members | integer(int32) | true | none | none |
| »» average_allocation | number | true | none | none |
| »» overallocated_members | integer(int32) | true | none | none |
| »» total_members | integer(int32) | true | none | none |
| »» utilization_percent | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
get_api_project-finance_templates
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/templates \
-H 'Accept: application/json'
GET /api/project-finance/templates
List project templates
Retrieve all project templates for the tenant (includes public templates)
Example responses
200 Response
[
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"created_by": [
0
],
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_currency": "string",
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"id": [
0
],
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
},
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": [
0
],
"usage_count": 0
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » category | string | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » created_by | [integer] | true | none | none |
| » default_budget | object¦null | false | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » default_currency | string | true | none | none |
| » default_revenue_model | string | true | none | none |
| » description | string | false | none | none |
| » estimated_duration_days | integer(int32)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » is_public | boolean | true | none | none |
| » name | string | true | none | none |
| » template_data | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » updated_by | [integer] | true | none | none |
| » usage_count | integer(int32) | true | none | none |
post_api_project-finance_templates
Code samples
const inputBody = '{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/templates \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/templates
Create project template
Create a new project template with default settings
Body parameter
{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » category | body | string | true | none |
| » default_budget | body | object¦null | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » default_revenue_model | body | string | true | none |
| » description | body | string | true | none |
| » estimated_duration_days | body | integer(int32)¦null | false | none |
| » is_public | body | boolean | true | none |
| » name | body | string | true | none |
| » template_data | body | object | false | none |
| »» additionalProperties | body | object | false | none |
Example responses
201 Response
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"created_by": [
0
],
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_currency": "string",
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"id": [
0
],
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
},
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": [
0
],
"usage_count": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » category | string | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » created_by | [integer] | true | none | none |
| » default_budget | object¦null | false | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » default_currency | string | true | none | none |
| » default_revenue_model | string | true | none | none |
| » description | string | false | none | none |
| » estimated_duration_days | integer(int32)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » is_public | boolean | true | none | none |
| » name | string | true | none | none |
| » template_data | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » updated_by | [integer] | true | none | none |
| » usage_count | integer(int32) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_project-finance_templates_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/project-finance/templates/{id} \
-H 'Accept: application/json'
DELETE /api/project-finance/templates/{id}
Delete project template
Delete a project template
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Template UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project template not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
get_api_project-finance_templates_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/templates/{id} \
-H 'Accept: application/json'
GET /api/project-finance/templates/{id}
Get project template by ID
Retrieve a specific project template by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Template UUID |
Example responses
200 Response
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"created_by": [
0
],
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_currency": "string",
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"id": [
0
],
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
},
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": [
0
],
"usage_count": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project template not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » category | string | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » created_by | [integer] | true | none | none |
| » default_budget | object¦null | false | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » default_currency | string | true | none | none |
| » default_revenue_model | string | true | none | none |
| » description | string | false | none | none |
| » estimated_duration_days | integer(int32)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » is_public | boolean | true | none | none |
| » name | string | true | none | none |
| » template_data | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » updated_by | [integer] | true | none | none |
| » usage_count | integer(int32) | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
put_api_project-finance_templates_id
Code samples
const inputBody = '{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/project-finance/templates/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/project-finance/templates/{id}
Update project template
Update an existing project template
Body parameter
{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Template UUID |
| body | body | object | true | none |
| » category | body | string¦null | false | none |
| » default_budget | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » default_revenue_model | body | string¦null | false | none |
| » description | body | string¦null | false | none |
| » estimated_duration_days | body | integer(int32)¦null | false | none |
| » is_public | body | boolean¦null | false | none |
| » name | body | string¦null | false | none |
| » template_data | body | object¦null | false | none |
| »» additionalProperties | body | object | false | none |
Example responses
200 Response
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"created_by": [
0
],
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_currency": "string",
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"id": [
0
],
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
},
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": [
0
],
"usage_count": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project template not found | Inline |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » category | string | false | none | none |
| » created_at | string(date-time) | true | none | none |
| » created_by | [integer] | true | none | none |
| » default_budget | object¦null | false | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » default_currency | string | true | none | none |
| » default_revenue_model | string | true | none | none |
| » description | string | false | none | none |
| » estimated_duration_days | integer(int32)¦null | false | none | none |
| » id | [integer] | true | none | none |
| » is_public | boolean | true | none | none |
| » name | string | true | none | none |
| » template_data | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » updated_by | [integer] | true | none | none |
| » usage_count | integer(int32) | true | none | none |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
post_api_project-finance_templates_id_apply
Code samples
const inputBody = '{
"project_finance_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/templates/{id}/apply',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/templates/{id}/apply \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/templates/{id}/apply
Apply project template
Apply a template to a project finance record
Body parameter
{
"project_finance_id": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Project Template UUID |
| body | body | object | true | none |
| » project_finance_id | body | string | true | none |
Example responses
201 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Project template not found | Inline |
| default | Default | none | None |
Status Code 404
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » code | string | true | none | Error code identifier |
| » details | object | false | none | Additional error details |
| » message | string | true | none | Human-readable error message |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_project_finance_id_scope-changes
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/scope-changes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{project_finance_id}/scope-changes \
-H 'Accept: application/json'
GET /api/project-finance/{project_finance_id}/scope-changes
List scope changes by project finance ID
Retrieve all scope changes for a specific project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
Example responses
200 Response
[
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_project-finance_project_finance_id_scope-changes
Code samples
const inputBody = '{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"requested_by": [
0
],
"timeline_impact": 0,
"title": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/scope-changes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{project_finance_id}/scope-changes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{project_finance_id}/scope-changes
Create scope change
Create a new scope change request for a project finance record
Body parameter
{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"requested_by": [
0
],
"timeline_impact": 0,
"title": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » budget_impact | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » change_type | body | string | true | none |
| » description | body | string | true | none |
| » requested_by | body | [integer] | true | none |
| » timeline_impact | body | integer(int32) | true | none |
| » title | body | string | true | none |
Example responses
201 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_scope-changes_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/scope-changes/{id} \
-H 'Accept: application/json'
DELETE /api/scope-changes/{id}
Delete scope change
Delete a scope change
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_scope-changes_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/scope-changes/{id} \
-H 'Accept: application/json'
GET /api/scope-changes/{id}
Get scope change by ID
Retrieve a specific scope change by its ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
Example responses
200 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
put_api_scope-changes_id
Code samples
const inputBody = '{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"timeline_impact": 0,
"title": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/scope-changes/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/scope-changes/{id}
Update scope change
Update an existing scope change
Body parameter
{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"timeline_impact": 0,
"title": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
| body | body | object | true | none |
| » budget_impact | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » change_type | body | string¦null | false | none |
| » description | body | string¦null | false | none |
| » timeline_impact | body | integer(int32)¦null | false | none |
| » title | body | string¦null | false | none |
Example responses
200 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
post_api_scope-changes_id_approve
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}/approve',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/scope-changes/{id}/approve \
-H 'Accept: application/json'
POST /api/scope-changes/{id}/approve
Approve scope change
Approve a submitted scope change
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
Example responses
201 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_scope-changes_id_reject
Code samples
const inputBody = '{
"reason": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}/reject',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/scope-changes/{id}/reject \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/scope-changes/{id}/reject
Reject scope change
Reject a submitted scope change with a reason
Body parameter
{
"reason": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
| body | body | object | true | none |
| » reason | body | string | false | none |
Example responses
201 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
post_api_scope-changes_id_submit
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/scope-changes/{id}/submit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/scope-changes/{id}/submit \
-H 'Accept: application/json'
POST /api/scope-changes/{id}/submit
Submit scope change
Submit a scope change for review
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Scope Change UUID |
Example responses
201 Response
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » approved_at | string(date-time)¦null | false | none | none |
| » approved_by | [integer]¦null | false | none | none |
| » budget_impact | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » change_type | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » description | string | true | none | none |
| » id | [integer] | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » rejected_at | string(date-time)¦null | false | none | none |
| » rejected_by | [integer]¦null | false | none | none |
| » rejection_reason | string¦null | false | none | none |
| » requested_at | string(date-time) | true | none | none |
| » requested_by | [integer] | true | none | none |
| » status | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timeline_impact | integer(int32) | true | none | none |
| » title | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
get_api_project-finance_project_finance_id_team
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/team',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/project-finance/{project_finance_id}/team \
-H 'Accept: application/json'
GET /api/project-finance/{project_finance_id}/team
List team members by project finance ID
Retrieve all team members for a specific project finance record
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
Example responses
200 Response
[
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_hours | number | true | none | none |
| » capacity_percent | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » end_date | string(date-time)¦null | false | none | none |
| » estimated_hours | number | true | none | none |
| » hourly_rate | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » labor_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » role | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » user_id | [integer] | true | none | none |
post_api_project-finance_project_finance_id_team
Code samples
const inputBody = '{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/project-finance/{project_finance_id}/team',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/project-finance/{project_finance_id}/team \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/project-finance/{project_finance_id}/team
Add team member
Add a new team member to a project finance record
Body parameter
{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_finance_id | path | string | true | Project Finance UUID |
| body | body | object | true | none |
| » capacity_percent | body | number | true | none |
| » end_date | body | string(date-time)¦null | false | none |
| » hourly_rate | body | object | true | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » is_billable | body | boolean | true | none |
| » role | body | string | true | none |
| » start_date | body | string(date-time) | true | none |
| » user_id | body | [integer] | true | none |
Example responses
201 Response
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_hours | number | true | none | none |
| » capacity_percent | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » end_date | string(date-time)¦null | false | none | none |
| » estimated_hours | number | true | none | none |
| » hourly_rate | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » labor_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » role | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » user_id | [integer] | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
delete_api_team_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/team/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE http://localhost:8082/api/team/{id} \
-H 'Accept: application/json'
DELETE /api/team/{id}
Delete team member
Remove a team member from the project
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Team Member UUID |
Example responses
204 Response
{}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
get_api_team_id
Code samples
const headers = {
'Accept':'application/json'
};
fetch('http://localhost:8082/api/team/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET http://localhost:8082/api/team/{id} \
-H 'Accept: application/json'
GET /api/team/{id}
Get team member by ID
Retrieve a specific team member by their ID
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Team Member UUID |
Example responses
200 Response
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_hours | number | true | none | none |
| » capacity_percent | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » end_date | string(date-time)¦null | false | none | none |
| » estimated_hours | number | true | none | none |
| » hourly_rate | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » labor_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » role | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » user_id | [integer] | true | none | none |
put_api_team_id
Code samples
const inputBody = '{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/team/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT http://localhost:8082/api/team/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/team/{id}
Update team member
Update an existing team member
Body parameter
{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Team Member UUID |
| body | body | object | true | none |
| » capacity_percent | body | number¦null | false | none |
| » end_date | body | string(date-time)¦null | false | none |
| » hourly_rate | body | object¦null | false | none |
| »» amount | body | number | true | none |
| »» currency | body | string | true | none |
| » is_billable | body | boolean¦null | false | none |
| » role | body | string¦null | false | none |
| » start_date | body | string(date-time)¦null | false | none |
Example responses
200 Response
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_hours | number | true | none | none |
| » capacity_percent | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » end_date | string(date-time)¦null | false | none | none |
| » estimated_hours | number | true | none | none |
| » hourly_rate | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » labor_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » role | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » user_id | [integer] | true | none | none |
post_api_team_id_log-hours
Code samples
const inputBody = '{
"hours": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('http://localhost:8082/api/team/{id}/log-hours',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST http://localhost:8082/api/team/{id}/log-hours \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/team/{id}/log-hours
Log hours for team member
Record hours worked by a team member
Body parameter
{
"hours": 0
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | Team Member UUID |
| body | body | object | true | none |
| » hours | body | number | true | none |
Example responses
201 Response
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| default | Default | none | None |
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » actual_hours | number | true | none | none |
| » capacity_percent | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » end_date | string(date-time)¦null | false | none | none |
| » estimated_hours | number | true | none | none |
| » hourly_rate | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » id | [integer] | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » labor_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » role | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| » user_id | [integer] | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 201 | Location | string | uri | URI of the newly created resource |
Schemas
{
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_pct": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_to_complete": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| allocated_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| budget_utilization | number | true | none | none |
| budget_variance | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| budget_variance_pct | number | true | none | none |
| committed_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| estimate_at_completion | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| estimate_to_complete | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| remaining_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"burn_rate": {
"AmountMinor": 0,
"Currency": "string"
},
"cash_flow_margin": 0,
"net_cash_flow": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"runway_months": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| burn_rate | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| cash_flow_margin | number | true | none | none |
| net_cash_flow | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| recognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| revenue_recognition_pct | number | true | none | none |
| runway_months | number | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| unrecognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"assumptions": [
"string"
],
"budget_risk_probability": 0,
"completion_probability": 0,
"confidence_level": 0,
"forecast_end_date": "2019-08-24T14:15:22Z",
"generated_at": "2019-08-24T14:15:22Z",
"monthly_projections": [
{
"cumulative_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"cumulative_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"month": "2019-08-24T14:15:22Z",
"projected_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_profit": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
],
"period": "string",
"project_id": [
0
],
"projected_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_cpi": 0,
"projected_profit": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_spi": 0,
"tenant_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| assumptions | [string] | false | none | none |
| budget_risk_probability | number | true | none | none |
| completion_probability | number | true | none | none |
| confidence_level | number | true | none | none |
| forecast_end_date | string(date-time) | true | none | none |
| generated_at | string(date-time) | true | none | none |
| monthly_projections | [object] | false | none | none |
| » cumulative_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » cumulative_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » month | string(date-time) | true | none | none |
| » projected_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » projected_profit | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » projected_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| period | string | true | none | none |
| project_id | [integer] | true | none | none |
| projected_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| projected_cpi | number | true | none | none |
| projected_profit | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| projected_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| projected_spi | number | true | none | none |
| tenant_id | [integer] | true | none | none |
{
"budget_variance_score": 0,
"cash_flow_score": 0,
"composite_score": 0,
"cpi_score": 0,
"risk_score": 0,
"spi_score": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_variance_score | number | true | none | none |
| cash_flow_score | number | true | none | none |
| composite_score | number | true | none | none |
| cpi_score | number | true | none | none |
| risk_score | number | true | none | none |
| spi_score | number | true | none | none |
{
"cumulative_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"cumulative_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"month": "2019-08-24T14:15:22Z",
"projected_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_profit": {
"AmountMinor": 0,
"Currency": "string"
},
"projected_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| cumulative_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| cumulative_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| month | string(date-time) | true | none | none |
| projected_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| projected_profit | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| projected_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"cpi": 0,
"earned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"planned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"spi": 0,
"to_complete_performance": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| cpi | number | true | none | none |
| earned_value | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| planned_value | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| spi | number | true | none | none |
| to_complete_performance | number | true | none | none |
{
"active_projects": 0,
"at_risk_projects": 0,
"average_cpi": 0,
"average_health_score": 0,
"average_spi": 0,
"bottom_performers": [
{
"budget_used_pct": 0,
"cpi": 0,
"health_score": 0,
"project_id": [
0
],
"project_name": "string",
"spi": 0,
"status": "string"
}
],
"budget_distribution": {
"property1": {
"AmountMinor": 0,
"Currency": "string"
},
"property2": {
"AmountMinor": 0,
"Currency": "string"
}
},
"calculated_at": "2019-08-24T14:15:22Z",
"completed_projects": 0,
"critical_projects": 0,
"healthy_projects": 0,
"on_hold_projects": 0,
"portfolio_roi": 0,
"resource_utilization": {
"active_team_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_team_members": 0,
"underutilized_members": 0,
"utilization_rate": 0
},
"tenant_id": [
0
],
"top_performers": [
{
"budget_used_pct": 0,
"cpi": 0,
"health_score": 0,
"project_id": [
0
],
"project_name": "string",
"spi": 0,
"status": "string"
}
],
"total_actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_projects": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_projects | integer(int32) | true | none | none |
| at_risk_projects | integer(int32) | true | none | none |
| average_cpi | number | true | none | none |
| average_health_score | number | true | none | none |
| average_spi | number | true | none | none |
| bottom_performers | [object] | false | none | none |
| » budget_used_pct | number | true | none | none |
| » cpi | number | true | none | none |
| » health_score | number | true | none | none |
| » project_id | [integer] | true | none | none |
| » project_name | string | false | none | none |
| » spi | number | true | none | none |
| » status | string | true | none | none |
| budget_distribution | object | false | none | none |
| » additionalProperties | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| calculated_at | string(date-time) | true | none | none |
| completed_projects | integer(int32) | true | none | none |
| critical_projects | integer(int32) | true | none | none |
| healthy_projects | integer(int32) | true | none | none |
| on_hold_projects | integer(int32) | true | none | none |
| portfolio_roi | number | true | none | none |
| resource_utilization | object¦null | false | none | none |
| » active_team_members | integer(int32) | true | none | none |
| » average_allocation | number | true | none | none |
| » overallocated_members | integer(int32) | true | none | none |
| » total_team_members | integer(int32) | true | none | none |
| » underutilized_members | integer(int32) | true | none | none |
| » utilization_rate | number | true | none | none |
| tenant_id | [integer] | true | none | none |
| top_performers | [object] | false | none | none |
| » budget_used_pct | number | true | none | none |
| » cpi | number | true | none | none |
| » health_score | number | true | none | none |
| » project_id | [integer] | true | none | none |
| » project_name | string | false | none | none |
| » spi | number | true | none | none |
| » status | string | true | none | none |
| total_actual_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_projects | integer(int32) | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"budget_metrics": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_pct": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_to_complete": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
},
"calculated_at": "2019-08-24T14:15:22Z",
"cash_flow_metrics": {
"burn_rate": {
"AmountMinor": 0,
"Currency": "string"
},
"cash_flow_margin": 0,
"net_cash_flow": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"runway_months": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"health_score": {
"budget_variance_score": 0,
"cash_flow_score": 0,
"composite_score": 0,
"cpi_score": 0,
"risk_score": 0,
"spi_score": 0
},
"performance_indicators": {
"cpi": 0,
"earned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"planned_value": {
"AmountMinor": 0,
"Currency": "string"
},
"spi": 0,
"to_complete_performance": 0
},
"project_id": [
0
],
"risk_metrics": {
"critical_issues": 0,
"mitigation_actions": 0,
"open_issues": 0,
"risk_factors": {
"property1": {},
"property2": {}
},
"risk_level": "string",
"risk_score": 0
},
"schedule_metrics": {
"actual_duration_days": 0,
"actual_end_date": "2019-08-24T14:15:22Z",
"actual_start_date": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"on_time_delivery_probability": 0,
"planned_duration_days": 0,
"planned_end_date": "2019-08-24T14:15:22Z",
"planned_start_date": "2019-08-24T14:15:22Z",
"schedule_variance_days": 0,
"schedule_variance_pct": 0
},
"tenant_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_metrics | object¦null | false | none | none |
| » actual_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » allocated_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » budget_utilization | number | true | none | none |
| » budget_variance | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » budget_variance_pct | number | true | none | none |
| » committed_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » estimate_at_completion | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » estimate_to_complete | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » remaining_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| calculated_at | string(date-time) | true | none | none |
| cash_flow_metrics | object¦null | false | none | none |
| » burn_rate | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » cash_flow_margin | number | true | none | none |
| » net_cash_flow | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » recognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » revenue_recognition_pct | number | true | none | none |
| » runway_months | number | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » unrecognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| health_score | object¦null | false | none | none |
| » budget_variance_score | number | true | none | none |
| » cash_flow_score | number | true | none | none |
| » composite_score | number | true | none | none |
| » cpi_score | number | true | none | none |
| » risk_score | number | true | none | none |
| » spi_score | number | true | none | none |
| performance_indicators | object¦null | false | none | none |
| » cpi | number | true | none | none |
| » earned_value | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » planned_value | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » spi | number | true | none | none |
| » to_complete_performance | number | true | none | none |
| project_id | [integer] | true | none | none |
| risk_metrics | object¦null | false | none | none |
| » critical_issues | integer(int32) | true | none | none |
| » mitigation_actions | integer(int32) | true | none | none |
| » open_issues | integer(int32) | true | none | none |
| » risk_factors | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » risk_level | string | true | none | none |
| » risk_score | number | true | none | none |
| schedule_metrics | object¦null | false | none | none |
| » actual_duration_days | integer(int32) | true | none | none |
| » actual_end_date | string(date-time)¦null | false | none | none |
| » actual_start_date | string(date-time)¦null | false | none | none |
| » completion_percent | number | true | none | none |
| » on_time_delivery_probability | number | true | none | none |
| » planned_duration_days | integer(int32) | true | none | none |
| » planned_end_date | string(date-time)¦null | false | none | none |
| » planned_start_date | string(date-time)¦null | false | none | none |
| » schedule_variance_days | integer(int32) | true | none | none |
| » schedule_variance_pct | number | true | none | none |
| tenant_id | [integer] | true | none | none |
{
"budget_used_pct": 0,
"cpi": 0,
"health_score": 0,
"project_id": [
0
],
"project_name": "string",
"spi": 0,
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_used_pct | number | true | none | none |
| cpi | number | true | none | none |
| health_score | number | true | none | none |
| project_id | [integer] | true | none | none |
| project_name | string | false | none | none |
| spi | number | true | none | none |
| status | string | true | none | none |
{
"active_team_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_team_members": 0,
"underutilized_members": 0,
"utilization_rate": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_team_members | integer(int32) | true | none | none |
| average_allocation | number | true | none | none |
| overallocated_members | integer(int32) | true | none | none |
| total_team_members | integer(int32) | true | none | none |
| underutilized_members | integer(int32) | true | none | none |
| utilization_rate | number | true | none | none |
{
"critical_issues": 0,
"mitigation_actions": 0,
"open_issues": 0,
"risk_factors": {
"property1": {},
"property2": {}
},
"risk_level": "string",
"risk_score": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| critical_issues | integer(int32) | true | none | none |
| mitigation_actions | integer(int32) | true | none | none |
| open_issues | integer(int32) | true | none | none |
| risk_factors | object | false | none | none |
| » additionalProperties | object | false | none | none |
| risk_level | string | true | none | none |
| risk_score | number | true | none | none |
{
"actual_duration_days": 0,
"actual_end_date": "2019-08-24T14:15:22Z",
"actual_start_date": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"on_time_delivery_probability": 0,
"planned_duration_days": 0,
"planned_end_date": "2019-08-24T14:15:22Z",
"planned_start_date": "2019-08-24T14:15:22Z",
"schedule_variance_days": 0,
"schedule_variance_pct": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_duration_days | integer(int32) | true | none | none |
| actual_end_date | string(date-time)¦null | false | none | none |
| actual_start_date | string(date-time)¦null | false | none | none |
| completion_percent | number | true | none | none |
| on_time_delivery_probability | number | true | none | none |
| planned_duration_days | integer(int32) | true | none | none |
| planned_end_date | string(date-time)¦null | false | none | none |
| planned_start_date | string(date-time)¦null | false | none | none |
| schedule_variance_days | integer(int32) | true | none | none |
| schedule_variance_pct | number | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
{
"project_finance_id": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| project_finance_id | string | true | none | none |
{
"notes": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| notes | string | true | none | none |
{
"amount_minor": 0,
"approved_at": "string",
"approver_id": [
0
],
"created_at": "string",
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"id": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"notes": "string",
"rejected_at": "string",
"requester_id": [
0
],
"status": "string",
"tenant_id": [
0
],
"updated_at": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount_minor | integer(int64)¦null | false | none | none |
| approved_at | string¦null | false | none | none |
| approver_id | [integer]¦null | false | none | none |
| created_at | string | true | none | none |
| description | string | true | none | none |
| entity_id | [integer] | true | none | none |
| entity_type | string | true | none | none |
| id | [integer] | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| notes | string | false | none | none |
| rejected_at | string¦null | false | none | none |
| requester_id | [integer] | true | none | none |
| status | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string | true | none | none |
{
"reason": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| reason | string | false | none | none |
{
"end_date": "2019-08-24T14:15:22Z",
"event_types": [
"string"
],
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| end_date | string(date-time) | true | none | none |
| event_types | [string] | false | none | none |
| project_id | [integer]¦null | false | none | none |
| start_date | string(date-time) | true | none | none |
| user_id | [integer]¦null | false | none | none |
{
"required": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| required | boolean | true | none | none |
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"created_at": "2019-08-24T14:15:22Z",
"currency": "string",
"description": "string",
"id": [
0
],
"is_active": true,
"name": "string",
"project_finance_id": [
0
],
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| allocated_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| code | string | true | none | none |
| created_at | string(date-time) | true | none | none |
| currency | string | true | none | none |
| description | string | true | none | none |
| id | [integer] | true | none | none |
| is_active | boolean | true | none | none |
| name | string | true | none | none |
| project_finance_id | [integer] | true | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string(date-time) | true | none | none |
{
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"code": "string",
"description": "string",
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| allocated_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| code | string | true | none | none |
| description | string | true | none | none |
| name | string | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string",
"sequence": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| description | string¦null | false | none | none |
| due_date | string(date-time)¦null | false | none | none |
| name | string | true | none | none |
| sequence | integer(int32) | true | none | none |
{
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"sequence": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| phase_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| planned_end | string(date-time) | true | none | none |
| planned_start | string(date-time) | true | none | none |
| sequence | integer(int32) | true | none | none |
{
"progress_percent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| progress_percent | number | true | none | none |
{
"project_id": [
0
],
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| project_id | [integer] | true | none | none |
| revenue_model | string | true | none | none |
| total_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string | true | none | none |
| default_budget | object¦null | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| default_revenue_model | string | true | none | none |
| description | string | true | none | none |
| estimated_duration_days | integer(int32)¦null | false | none | none |
| is_public | boolean | true | none | none |
| name | string | true | none | none |
| template_data | object | false | none | none |
| » additionalProperties | object | false | none | none |
{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"requested_by": [
0
],
"timeline_impact": 0,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_impact | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| change_type | string | true | none | none |
| description | string | true | none | none |
| requested_by | [integer] | true | none | none |
| timeline_impact | integer(int32) | true | none | none |
| title | string | true | none | none |
{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| capacity_percent | number | true | none | none |
| end_date | string(date-time)¦null | false | none | none |
| hourly_rate | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| is_billable | boolean | true | none | none |
| role | string | true | none | none |
| start_date | string(date-time) | true | none | none |
| user_id | [integer] | true | none | none |
{
"end_date": "2019-08-24T14:15:22Z",
"format": "string",
"include_phases": true,
"include_scopes": true,
"include_team": true,
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| end_date | string(date-time)¦null | false | none | none |
| format | string | true | none | none |
| include_phases | boolean | true | none | none |
| include_scopes | boolean | true | none | none |
| include_team | boolean | true | none | none |
| project_id | [integer]¦null | false | none | none |
| start_date | string(date-time)¦null | false | none | none |
{
"period": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| period | string | true | none | none |
{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| end_date | string(date-time) | true | none | none |
| project_id | [integer]¦null | false | none | none |
| start_date | string(date-time) | true | none | none |
{
"score": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| score | number | true | none | none |
{
"children": [
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| children | [object] | false | none | none |
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
{
"hours": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| hours | number | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
},
"billed_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"completion_percent": 0,
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"id": [
0
],
"invoice_id": 0,
"invoice_number": "string",
"name": "string",
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| billed_at | string(date-time)¦null | false | none | none |
| completed_at | string(date-time)¦null | false | none | none |
| completion_percent | number | true | none | none |
| created_at | string(date-time) | true | none | none |
| description | string¦null | false | none | none |
| due_date | string(date-time)¦null | false | none | none |
| id | [integer] | true | none | none |
| invoice_id | integer(int64)¦null | false | none | none |
| invoice_number | string¦null | false | none | none |
| name | string | true | none | none |
| project_finance_id | [integer] | true | none | none |
| sequence | integer(int32) | true | none | none |
| status | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string(date-time) | true | none | none |
{
"amount": 0,
"currency": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | number | true | none | none |
| currency | string | true | none | none |
{
"has_next": true,
"has_prev": true,
"page": 0,
"pages": 0,
"per_page": 0,
"total": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| has_next | boolean | true | none | none |
| has_prev | boolean | true | none | none |
| page | integer(int32) | true | none | none |
| pages | integer(int32) | true | none | none |
| per_page | integer(int32) | true | none | none |
| total | integer(int32) | true | none | none |
{
"value": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | number | true | none | none |
{
"value": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | number | true | none | none |
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"id": [
0
],
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"progress_percent": 0,
"project_finance_id": [
0
],
"sequence": 0,
"status": "string",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| actual_end | string(date-time)¦null | false | none | none |
| actual_start | string(date-time)¦null | false | none | none |
| created_at | string(date-time) | true | none | none |
| id | [integer] | true | none | none |
| name | string | true | none | none |
| phase_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| planned_end | string(date-time) | true | none | none |
| planned_start | string(date-time) | true | none | none |
| progress_percent | number | true | none | none |
| project_finance_id | [integer] | true | none | none |
| sequence | integer(int32) | true | none | none |
| status | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string(date-time) | true | none | none |
{
"data": [
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_next": true,
"has_prev": true,
"page": 0,
"pages": 0,
"per_page": 0,
"total": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [object] | false | none | none |
| » actual_cost | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » allocated_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » budget_variance_percent | object | true | none | none |
| »» value | number | true | none | none |
| » committed_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » cost_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » estimate_at_completion | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » estimate_to_complete | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » financial_health_score | object | true | none | none |
| »» score | number | true | none | none |
| » health_status | string | true | none | none |
| » id | [integer] | true | none | none |
| » parent_id | [integer]¦null | false | none | none |
| » project_id | [integer] | true | none | none |
| » recognized_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » revenue_model | string | true | none | none |
| » risk_level | string | true | none | none |
| » schedule_performance_index | object | true | none | none |
| »» value | number | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » total_budget | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » total_revenue | object | true | none | none |
| »» amount | number | true | none | none |
| »» currency | string | true | none | none |
| » updated_at | string(date-time) | true | none | none |
| pagination | object | true | none | none |
| » has_next | boolean | true | none | none |
| » has_prev | boolean | true | none | none |
| » page | integer(int32) | true | none | none |
| » pages | integer(int32) | true | none | none |
| » per_page | integer(int32) | true | none | none |
| » total | integer(int32) | true | none | none |
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"budget_variance": {
"amount": 0,
"currency": "string"
},
"budget_variance_percent": {
"value": 0
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"cost_performance_index": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"estimate_at_completion": {
"amount": 0,
"currency": "string"
},
"estimate_to_complete": {
"amount": 0,
"currency": "string"
},
"financial_health_score": {
"score": 0
},
"health_status": "string",
"id": [
0
],
"parent_id": [
0
],
"project_id": [
0
],
"recognized_revenue": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"risk_level": "string",
"schedule_performance_index": {
"value": 0
},
"tenant_id": [
0
],
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
},
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| allocated_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| budget_variance | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| budget_variance_percent | object | true | none | none |
| » value | number | true | none | none |
| committed_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| cost_performance_index | object | true | none | none |
| » value | number | true | none | none |
| created_at | string(date-time) | true | none | none |
| estimate_at_completion | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| estimate_to_complete | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| financial_health_score | object | true | none | none |
| » score | number | true | none | none |
| health_status | string | true | none | none |
| id | [integer] | true | none | none |
| parent_id | [integer]¦null | false | none | none |
| project_id | [integer] | true | none | none |
| recognized_revenue | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| revenue_model | string | true | none | none |
| risk_level | string | true | none | none |
| schedule_performance_index | object | true | none | none |
| » value | number | true | none | none |
| tenant_id | [integer] | true | none | none |
| total_budget | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| total_revenue | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| updated_at | string(date-time) | true | none | none |
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"created_by": [
0
],
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_currency": "string",
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"id": [
0
],
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
},
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": [
0
],
"usage_count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string | false | none | none |
| created_at | string(date-time) | true | none | none |
| created_by | [integer] | true | none | none |
| default_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| default_currency | string | true | none | none |
| default_revenue_model | string | true | none | none |
| description | string | false | none | none |
| estimated_duration_days | integer(int32)¦null | false | none | none |
| id | [integer] | true | none | none |
| is_public | boolean | true | none | none |
| name | string | true | none | none |
| template_data | object | false | none | none |
| » additionalProperties | object | false | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string(date-time) | true | none | none |
| updated_by | [integer] | true | none | none |
| usage_count | integer(int32) | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
{
"amount": {
"amount": 0,
"currency": "string"
},
"description": "string",
"entity_id": [
0
],
"entity_type": "string",
"metadata": {
"property1": {},
"property2": {}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| description | string | true | none | none |
| entity_id | [integer] | true | none | none |
| entity_type | string | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
{
"end_date": "2019-08-24T14:15:22Z",
"project_id": [
0
],
"start_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| end_date | string(date-time) | true | none | none |
| project_id | [integer]¦null | false | none | none |
| start_date | string(date-time) | true | none | none |
{
"correlation_id": "string",
"created_at": "string",
"id": "string",
"request_id": "string",
"saga_type": "string",
"status": "string",
"tenant_id": "string",
"updated_at": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| correlation_id | string | true | none | none |
| created_at | string | true | none | none |
| id | string | true | none | none |
| request_id | string | true | none | none |
| saga_type | string | true | none | none |
| status | string | true | none | none |
| tenant_id | string | true | none | none |
| updated_at | string | true | none | none |
{
"approved_at": "2019-08-24T14:15:22Z",
"approved_by": [
0
],
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"description": "string",
"id": [
0
],
"project_finance_id": [
0
],
"rejected_at": "2019-08-24T14:15:22Z",
"rejected_by": [
0
],
"rejection_reason": "string",
"requested_at": "2019-08-24T14:15:22Z",
"requested_by": [
0
],
"status": "string",
"tenant_id": [
0
],
"timeline_impact": 0,
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| approved_at | string(date-time)¦null | false | none | none |
| approved_by | [integer]¦null | false | none | none |
| budget_impact | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| change_type | string | true | none | none |
| created_at | string(date-time) | true | none | none |
| description | string | true | none | none |
| id | [integer] | true | none | none |
| project_finance_id | [integer] | true | none | none |
| rejected_at | string(date-time)¦null | false | none | none |
| rejected_by | [integer]¦null | false | none | none |
| rejection_reason | string¦null | false | none | none |
| requested_at | string(date-time) | true | none | none |
| requested_by | [integer] | true | none | none |
| status | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| timeline_impact | integer(int32) | true | none | none |
| title | string | true | none | none |
| updated_at | string(date-time) | true | none | none |
{
"parent_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| parent_id | [integer]¦null | false | none | none |
{
"actual_hours": 0,
"capacity_percent": {
"value": 0
},
"created_at": "2019-08-24T14:15:22Z",
"end_date": "2019-08-24T14:15:22Z",
"estimated_hours": 0,
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"id": [
0
],
"is_active": true,
"is_billable": true,
"labor_cost": {
"amount": 0,
"currency": "string"
},
"project_finance_id": [
0
],
"role": "string",
"start_date": "2019-08-24T14:15:22Z",
"tenant_id": [
0
],
"updated_at": "2019-08-24T14:15:22Z",
"user_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_hours | number | true | none | none |
| capacity_percent | object | true | none | none |
| » value | number | true | none | none |
| created_at | string(date-time) | true | none | none |
| end_date | string(date-time)¦null | false | none | none |
| estimated_hours | number | true | none | none |
| hourly_rate | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| id | [integer] | true | none | none |
| is_active | boolean | true | none | none |
| is_billable | boolean | true | none | none |
| labor_cost | object | true | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| project_finance_id | [integer] | true | none | none |
| role | string | true | none | none |
| start_date | string(date-time) | true | none | none |
| tenant_id | [integer] | true | none | none |
| updated_at | string(date-time) | true | none | none |
| user_id | [integer] | true | none | none |
{
"description": "string",
"is_active": true,
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string¦null | false | none | none |
| is_active | boolean¦null | false | none | none |
| name | string¦null | false | none | none |
{
"completion_percent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| completion_percent | number | true | none | none |
{
"description": "string",
"due_date": "2019-08-24T14:15:22Z",
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string¦null | false | none | none |
| due_date | string(date-time)¦null | false | none | none |
| name | string¦null | false | none | none |
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"actual_end": "2019-08-24T14:15:22Z",
"actual_start": "2019-08-24T14:15:22Z",
"name": "string",
"phase_budget": {
"amount": 0,
"currency": "string"
},
"planned_end": "2019-08-24T14:15:22Z",
"planned_start": "2019-08-24T14:15:22Z",
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| actual_end | string(date-time)¦null | false | none | none |
| actual_start | string(date-time)¦null | false | none | none |
| name | string¦null | false | none | none |
| phase_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| planned_end | string(date-time)¦null | false | none | none |
| planned_start | string(date-time)¦null | false | none | none |
| status | string¦null | false | none | none |
{
"percent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| percent | number | true | none | none |
{
"actual_cost": {
"amount": 0,
"currency": "string"
},
"allocated_budget": {
"amount": 0,
"currency": "string"
},
"committed_budget": {
"amount": 0,
"currency": "string"
},
"revenue_model": "string",
"total_budget": {
"amount": 0,
"currency": "string"
},
"total_revenue": {
"amount": 0,
"currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| allocated_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| committed_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| revenue_model | string¦null | false | none | none |
| total_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| total_revenue | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
{
"category": "string",
"default_budget": {
"amount": 0,
"currency": "string"
},
"default_revenue_model": "string",
"description": "string",
"estimated_duration_days": 0,
"is_public": true,
"name": "string",
"template_data": {
"property1": {},
"property2": {}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string¦null | false | none | none |
| default_budget | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| default_revenue_model | string¦null | false | none | none |
| description | string¦null | false | none | none |
| estimated_duration_days | integer(int32)¦null | false | none | none |
| is_public | boolean¦null | false | none | none |
| name | string¦null | false | none | none |
| template_data | object¦null | false | none | none |
| » additionalProperties | object | false | none | none |
{
"budget_impact": {
"amount": 0,
"currency": "string"
},
"change_type": "string",
"description": "string",
"timeline_impact": 0,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_impact | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| change_type | string¦null | false | none | none |
| description | string¦null | false | none | none |
| timeline_impact | integer(int32)¦null | false | none | none |
| title | string¦null | false | none | none |
{
"capacity_percent": 0,
"end_date": "2019-08-24T14:15:22Z",
"hourly_rate": {
"amount": 0,
"currency": "string"
},
"is_billable": true,
"role": "string",
"start_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| capacity_percent | number¦null | false | none | none |
| end_date | string(date-time)¦null | false | none | none |
| hourly_rate | object¦null | false | none | none |
| » amount | number | true | none | none |
| » currency | string | true | none | none |
| is_billable | boolean¦null | false | none | none |
| role | string¦null | false | none | none |
| start_date | string(date-time)¦null | false | none | none |
{
"code": "string",
"details": {},
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | Error code identifier |
| details | object | false | none | Additional error details |
| message | string | true | none | Human-readable error message |
{}
Properties
None
{
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_percent": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| allocated_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| budget_utilization | number | true | none | none |
| budget_variance | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| budget_variance_percent | number | true | none | none |
| committed_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| estimate_at_completion | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| remaining_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"completed_milestones": 0,
"completion_percent": 0,
"overdue_milestones": 0,
"pending_milestones": 0,
"total_milestones": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| completed_milestones | integer(int32) | true | none | none |
| completion_percent | number | true | none | none |
| overdue_milestones | integer(int32) | true | none | none |
| pending_milestones | integer(int32) | true | none | none |
| total_milestones | integer(int32) | true | none | none |
{
"billed_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"outstanding_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"paid_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| billed_amount | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| outstanding_amount | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| paid_amount | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| recognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| revenue_recognition_pct | number | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| unrecognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"active_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_members": 0,
"utilization_percent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_members | integer(int32) | true | none | none |
| average_allocation | number | true | none | none |
| overallocated_members | integer(int32) | true | none | none |
| total_members | integer(int32) | true | none | none |
| utilization_percent | number | true | none | none |
{
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"profit_margin": 0,
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actual_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| allocated_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| budget_utilization | number | true | none | none |
| profit_margin | number | true | none | none |
| recognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| capacity_percent | number | true | none | none |
| is_active | boolean | true | none | none |
| is_billable | boolean | true | none | none |
| role | string | true | none | none |
| user_id | [integer] | true | none | none |
{
"AmountMinor": 0,
"Currency": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| AmountMinor | integer(int64) | true | none | none |
| Currency | string | true | none | none |
{
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"overall_utilization_percent": 0,
"overallocated_members": 0,
"project_capacities": {
"property1": {
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
},
"property2": {
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
}
},
"projects_count": 0,
"total_allocation_percent": 0,
"total_members": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_members | integer(int32) | true | none | none |
| available_capacity_percent | number | true | none | none |
| average_allocation | number | true | none | none |
| calculated_at | string(date-time) | true | none | none |
| overall_utilization_percent | number | true | none | none |
| overallocated_members | integer(int32) | true | none | none |
| project_capacities | object | false | none | none |
| » additionalProperties | object¦null | false | none | none |
| »» active_members | integer(int32) | true | none | none |
| »» available_capacity_percent | number | true | none | none |
| »» average_allocation | number | true | none | none |
| »» calculated_at | string(date-time) | true | none | none |
| »» member_allocations | [object] | false | none | none |
| »»» capacity_percent | number | true | none | none |
| »»» is_active | boolean | true | none | none |
| »»» is_billable | boolean | true | none | none |
| »»» role | string | true | none | none |
| »»» user_id | [integer] | true | none | none |
| »» overallocated_members | integer(int32) | true | none | none |
| »» project_finance_id | [integer] | true | none | none |
| »» total_allocation_percent | number | true | none | none |
| »» total_members | integer(int32) | true | none | none |
| »» utilization_percent | number | true | none | none |
| projects_count | integer(int32) | true | none | none |
| total_allocation_percent | number | true | none | none |
| total_members | integer(int32) | true | none | none |
{
"active_projects": 0,
"completed_projects": 0,
"financial_summary": {
"at_risk_projects": 0,
"average_budget_utilization": 0,
"average_health_score": 0,
"average_profit_margin": 0,
"critical_projects": 0,
"healthy_projects": 0,
"total_actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"total_allocated": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"last_updated": "2019-08-24T14:15:22Z",
"on_hold_projects": 0,
"project_alerts": [
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"project_id": [
0
],
"resolved_at": "2019-08-24T14:15:22Z",
"severity": "string"
}
],
"projects_by_status": {
"property1": 0,
"property2": 0
},
"revenue_by_month": {
"property1": {
"AmountMinor": 0,
"Currency": "string"
},
"property2": {
"AmountMinor": 0,
"Currency": "string"
}
},
"tenant_id": [
0
],
"top_performing_projects": [
{
"budget_utilization": 0,
"health_score": 0,
"health_status": "string",
"profit_margin": 0,
"project_finance_id": [
0
],
"project_id": [
0
],
"project_name": "string",
"status": "string"
}
],
"total_costs": {
"AmountMinor": 0,
"Currency": "string"
},
"total_profit_margin": 0,
"total_projects": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_projects | integer(int32) | true | none | none |
| completed_projects | integer(int32) | true | none | none |
| financial_summary | object | true | none | none |
| » at_risk_projects | integer(int32) | true | none | none |
| » average_budget_utilization | number | true | none | none |
| » average_health_score | number | true | none | none |
| » average_profit_margin | number | true | none | none |
| » critical_projects | integer(int32) | true | none | none |
| » healthy_projects | integer(int32) | true | none | none |
| » total_actual_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_allocated | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_recognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| last_updated | string(date-time) | true | none | none |
| on_hold_projects | integer(int32) | true | none | none |
| project_alerts | [object] | false | none | none |
| » category | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » message | string | true | none | none |
| » project_id | [integer] | true | none | none |
| » resolved_at | string(date-time)¦null | false | none | none |
| » severity | string | true | none | none |
| projects_by_status | object | false | none | none |
| » additionalProperties | integer(int32) | false | none | none |
| revenue_by_month | object | false | none | none |
| » additionalProperties | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| top_performing_projects | [object] | false | none | none |
| » budget_utilization | number | true | none | none |
| » health_score | number | true | none | none |
| » health_status | string | true | none | none |
| » profit_margin | number | true | none | none |
| » project_finance_id | [integer] | true | none | none |
| » project_id | [integer] | true | none | none |
| » project_name | string | false | none | none |
| » status | string | true | none | none |
| total_costs | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_profit_margin | number | true | none | none |
| total_projects | integer(int32) | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"at_risk_projects": 0,
"average_budget_utilization": 0,
"average_health_score": 0,
"average_profit_margin": 0,
"critical_projects": 0,
"healthy_projects": 0,
"total_actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"total_allocated": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| at_risk_projects | integer(int32) | true | none | none |
| average_budget_utilization | number | true | none | none |
| average_health_score | number | true | none | none |
| average_profit_margin | number | true | none | none |
| critical_projects | integer(int32) | true | none | none |
| healthy_projects | integer(int32) | true | none | none |
| total_actual_cost | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_allocated | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_budget | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_recognized_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
| total_revenue | object¦null | false | none | none |
| » AmountMinor | integer(int64) | true | none | none |
| » Currency | string | true | none | none |
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"project_id": [
0
],
"resolved_at": "2019-08-24T14:15:22Z",
"severity": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string | true | none | none |
| created_at | string(date-time) | true | none | none |
| message | string | true | none | none |
| project_id | [integer] | true | none | none |
| resolved_at | string(date-time)¦null | false | none | none |
| severity | string | true | none | none |
{
"active_members": 0,
"available_capacity_percent": 0,
"average_allocation": 0,
"calculated_at": "2019-08-24T14:15:22Z",
"member_allocations": [
{
"capacity_percent": 0,
"is_active": true,
"is_billable": true,
"role": "string",
"user_id": [
0
]
}
],
"overallocated_members": 0,
"project_finance_id": [
0
],
"total_allocation_percent": 0,
"total_members": 0,
"utilization_percent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active_members | integer(int32) | true | none | none |
| available_capacity_percent | number | true | none | none |
| average_allocation | number | true | none | none |
| calculated_at | string(date-time) | true | none | none |
| member_allocations | [object] | false | none | none |
| » capacity_percent | number | true | none | none |
| » is_active | boolean | true | none | none |
| » is_billable | boolean | true | none | none |
| » role | string | true | none | none |
| » user_id | [integer] | true | none | none |
| overallocated_members | integer(int32) | true | none | none |
| project_finance_id | [integer] | true | none | none |
| total_allocation_percent | number | true | none | none |
| total_members | integer(int32) | true | none | none |
| utilization_percent | number | true | none | none |
{
"alerts": [
{
"category": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"project_id": [
0
],
"resolved_at": "2019-08-24T14:15:22Z",
"severity": "string"
}
],
"budget_metrics": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"budget_variance": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_variance_percent": 0,
"committed_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"estimate_at_completion": {
"AmountMinor": 0,
"Currency": "string"
},
"remaining_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
}
},
"currency": "string",
"financial_summary": {
"actual_cost": {
"AmountMinor": 0,
"Currency": "string"
},
"allocated_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"budget_utilization": 0,
"profit_margin": 0,
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"total_budget": {
"AmountMinor": 0,
"Currency": "string"
},
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"health_score": 0,
"health_status": "string",
"last_updated": "2019-08-24T14:15:22Z",
"milestone_metrics": {
"completed_milestones": 0,
"completion_percent": 0,
"overdue_milestones": 0,
"pending_milestones": 0,
"total_milestones": 0
},
"project_finance_id": [
0
],
"project_id": [
0
],
"project_name": "string",
"revenue_metrics": {
"billed_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"outstanding_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"paid_amount": {
"AmountMinor": 0,
"Currency": "string"
},
"recognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"revenue_recognition_pct": 0,
"total_revenue": {
"AmountMinor": 0,
"Currency": "string"
},
"unrecognized_revenue": {
"AmountMinor": 0,
"Currency": "string"
}
},
"revenue_model": "string",
"risk_level": "string",
"status": "string",
"team_metrics": {
"active_members": 0,
"average_allocation": 0,
"overallocated_members": 0,
"total_members": 0,
"utilization_percent": 0
},
"tenant_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| alerts | [object] | false | none | none |
| » category | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » message | string | true | none | none |
| » project_id | [integer] | true | none | none |
| » resolved_at | string(date-time)¦null | false | none | none |
| » severity | string | true | none | none |
| budget_metrics | object | true | none | none |
| » actual_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » allocated_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » budget_utilization | number | true | none | none |
| » budget_variance | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » budget_variance_percent | number | true | none | none |
| » committed_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » estimate_at_completion | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » remaining_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| currency | string | true | none | none |
| financial_summary | object | true | none | none |
| » actual_cost | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » allocated_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » budget_utilization | number | true | none | none |
| » profit_margin | number | true | none | none |
| » recognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_budget | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| health_score | number | true | none | none |
| health_status | string | true | none | none |
| last_updated | string(date-time) | true | none | none |
| milestone_metrics | object | true | none | none |
| » completed_milestones | integer(int32) | true | none | none |
| » completion_percent | number | true | none | none |
| » overdue_milestones | integer(int32) | true | none | none |
| » pending_milestones | integer(int32) | true | none | none |
| » total_milestones | integer(int32) | true | none | none |
| project_finance_id | [integer] | true | none | none |
| project_id | [integer] | true | none | none |
| project_name | string | false | none | none |
| revenue_metrics | object | true | none | none |
| » billed_amount | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » outstanding_amount | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » paid_amount | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » recognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » revenue_recognition_pct | number | true | none | none |
| » total_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| » unrecognized_revenue | object¦null | false | none | none |
| »» AmountMinor | integer(int64) | true | none | none |
| »» Currency | string | true | none | none |
| revenue_model | string | true | none | none |
| risk_level | string | true | none | none |
| status | string | true | none | none |
| team_metrics | object | true | none | none |
| » active_members | integer(int32) | true | none | none |
| » average_allocation | number | true | none | none |
| » overallocated_members | integer(int32) | true | none | none |
| » total_members | integer(int32) | true | none | none |
| » utilization_percent | number | true | none | none |
| tenant_id | [integer] | true | none | none |
{
"budget_utilization": 0,
"health_score": 0,
"health_status": "string",
"profit_margin": 0,
"project_finance_id": [
0
],
"project_id": [
0
],
"project_name": "string",
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_utilization | number | true | none | none |
| health_score | number | true | none | none |
| health_status | string | true | none | none |
| profit_margin | number | true | none | none |
| project_finance_id | [integer] | true | none | none |
| project_id | [integer] | true | none | none |
| project_name | string | false | none | none |
| status | string | true | none | none |
{
"attestation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"entity_id": [
0
],
"entity_type": "string",
"evaluation_id": "string",
"framework": "string",
"operation_type": "string",
"passed_rules": 0,
"result": true,
"rulepack_id": "string",
"rulepack_version": "string",
"signed_digest": "string",
"total_rules": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attestation_id | string | true | none | none |
| created_at | string(date-time) | true | none | none |
| entity_id | [integer] | true | none | none |
| entity_type | string | true | none | none |
| evaluation_id | string | true | none | none |
| framework | string | true | none | none |
| operation_type | string | true | none | none |
| passed_rules | integer(int32) | true | none | none |
| result | boolean | true | none | none |
| rulepack_id | string | true | none | none |
| rulepack_version | string | true | none | none |
| signed_digest | string | false | none | none |
| total_rules | integer(int32) | true | none | none |
{
"action": "string",
"aggregate_id": [
0
],
"aggregate_type": "string",
"changes": {
"property1": {},
"property2": {}
},
"correlation_id": "string",
"entry_id": [
0
],
"event_id": "string",
"event_type": "string",
"ip_address": "string",
"metadata": {
"property1": {},
"property2": {}
},
"resource_id": [
0
],
"resource_type": "string",
"tenant_id": [
0
],
"timestamp": "2019-08-24T14:15:22Z",
"user_agent": "string",
"user_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| action | string | true | none | none |
| aggregate_id | [integer] | true | none | none |
| aggregate_type | string | true | none | none |
| changes | object | false | none | none |
| » additionalProperties | object | false | none | none |
| correlation_id | string | false | none | none |
| entry_id | [integer] | true | none | none |
| event_id | string | true | none | none |
| event_type | string | true | none | none |
| ip_address | string | false | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| resource_id | [integer] | true | none | none |
| resource_type | string | true | none | none |
| tenant_id | [integer] | true | none | none |
| timestamp | string(date-time) | true | none | none |
| user_agent | string | false | none | none |
| user_id | [integer] | true | none | none |
{
"audit_entries": [
{
"action": "string",
"aggregate_id": [
0
],
"aggregate_type": "string",
"changes": {
"property1": {},
"property2": {}
},
"correlation_id": "string",
"entry_id": [
0
],
"event_id": "string",
"event_type": "string",
"ip_address": "string",
"metadata": {
"property1": {},
"property2": {}
},
"resource_id": [
0
],
"resource_type": "string",
"tenant_id": [
0
],
"timestamp": "2019-08-24T14:15:22Z",
"user_agent": "string",
"user_id": [
0
]
}
],
"event_types": {
"property1": 0,
"property2": 0
},
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"tenant_id": [
0
],
"total_entries": 0,
"unique_users": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| audit_entries | [object] | false | none | none |
| » action | string | true | none | none |
| » aggregate_id | [integer] | true | none | none |
| » aggregate_type | string | true | none | none |
| » changes | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » correlation_id | string | false | none | none |
| » entry_id | [integer] | true | none | none |
| » event_id | string | true | none | none |
| » event_type | string | true | none | none |
| » ip_address | string | false | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » resource_id | [integer] | true | none | none |
| » resource_type | string | true | none | none |
| » tenant_id | [integer] | true | none | none |
| » timestamp | string(date-time) | true | none | none |
| » user_agent | string | false | none | none |
| » user_id | [integer] | true | none | none |
| event_types | object | false | none | none |
| » additionalProperties | integer(int32) | false | none | none |
| generated_at | string(date-time) | true | none | none |
| generated_by | [integer] | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| project_id | [integer]¦null | false | none | none |
| report_id | string | true | none | none |
| report_period | object | true | none | none |
| » end_date | string(date-time) | true | none | none |
| » label | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| tenant_id | [integer] | true | none | none |
| total_entries | integer(int32) | true | none | none |
| unique_users | integer(int32) | true | none | none |
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attestation_ids | [string] | false | none | none |
| control_description | string | true | none | none |
| control_id | string | true | none | none |
| control_name | string | true | none | none |
| control_type | string | true | none | none |
| deficiencies | [string] | false | none | none |
| evidence_count | integer(int32) | true | none | none |
| evidence_type | string | true | none | none |
| frequency | string | true | none | none |
| is_effective | boolean | true | none | none |
| last_executed | string(date-time) | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| owner | [integer] | true | none | none |
{
"download_url": "string",
"expires_at": "2019-08-24T14:15:22Z",
"export_id": "string",
"file_size": 0,
"format": "string",
"generated_at": "2019-08-24T14:15:22Z",
"record_count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| download_url | string | false | none | none |
| expires_at | string(date-time) | true | none | none |
| export_id | string | true | none | none |
| file_size | integer(int64) | true | none | none |
| format | string | true | none | none |
| generated_at | string(date-time) | true | none | none |
| record_count | integer(int32) | true | none | none |
{
"data_processing_activities": [
{
"activity_id": "string",
"activity_name": "string",
"data_categories": [
"string"
],
"metadata": {
"property1": {},
"property2": {}
},
"purpose": "string",
"recipients": [
"string"
],
"retention_period": "string",
"security_measures": [
"string"
],
"transfers": [
"string"
]
}
],
"data_subjects": [
"string"
],
"framework": "string",
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"legal_basis": "string",
"metadata": {
"property1": {},
"property2": {}
},
"organizational_measures": [
"string"
],
"personal_data_categories": [
"string"
],
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"retention_justification": "string",
"retention_period": "string",
"technical_measures": [
"string"
],
"tenant_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data_processing_activities | [object] | false | none | none |
| » activity_id | string | true | none | none |
| » activity_name | string | true | none | none |
| » data_categories | [string] | false | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » purpose | string | true | none | none |
| » recipients | [string] | false | none | none |
| » retention_period | string | true | none | none |
| » security_measures | [string] | false | none | none |
| » transfers | [string] | false | none | none |
| data_subjects | [string] | false | none | none |
| framework | string | true | none | none |
| generated_at | string(date-time) | true | none | none |
| generated_by | [integer] | true | none | none |
| legal_basis | string | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| organizational_measures | [string] | false | none | none |
| personal_data_categories | [string] | false | none | none |
| project_id | [integer]¦null | false | none | none |
| report_id | string | true | none | none |
| report_period | object | true | none | none |
| » end_date | string(date-time) | true | none | none |
| » label | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| retention_justification | string | true | none | none |
| retention_period | string | true | none | none |
| technical_measures | [string] | false | none | none |
| tenant_id | [integer] | true | none | none |
{
"activity_id": "string",
"activity_name": "string",
"data_categories": [
"string"
],
"metadata": {
"property1": {},
"property2": {}
},
"purpose": "string",
"recipients": [
"string"
],
"retention_period": "string",
"security_measures": [
"string"
],
"transfers": [
"string"
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activity_id | string | true | none | none |
| activity_name | string | true | none | none |
| data_categories | [string] | false | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| purpose | string | true | none | none |
| recipients | [string] | false | none | none |
| retention_period | string | true | none | none |
| security_measures | [string] | false | none | none |
| transfers | [string] | false | none | none |
{
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| end_date | string(date-time) | true | none | none |
| label | string | true | none | none |
| start_date | string(date-time) | true | none | none |
{
"budget_controls": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"change_order_controls": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"compliance_attestations": [
{
"attestation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"entity_id": [
0
],
"entity_type": "string",
"evaluation_id": "string",
"framework": "string",
"operation_type": "string",
"passed_rules": 0,
"result": true,
"rulepack_id": "string",
"rulepack_version": "string",
"signed_digest": "string",
"total_rules": 0
}
],
"control_effectiveness": 0,
"deficient_controls": 0,
"effective_controls": 0,
"expense_approvals": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"framework": "string",
"generated_at": "2019-08-24T14:15:22Z",
"generated_by": [
0
],
"metadata": {
"property1": {},
"property2": {}
},
"project_id": [
0
],
"report_id": "string",
"report_period": {
"end_date": "2019-08-24T14:15:22Z",
"label": "string",
"start_date": "2019-08-24T14:15:22Z"
},
"revenue_recognition": [
{
"attestation_ids": [
"string"
],
"control_description": "string",
"control_id": "string",
"control_name": "string",
"control_type": "string",
"deficiencies": [
"string"
],
"evidence_count": 0,
"evidence_type": "string",
"frequency": "string",
"is_effective": true,
"last_executed": "2019-08-24T14:15:22Z",
"metadata": {
"property1": {},
"property2": {}
},
"owner": [
0
]
}
],
"tenant_id": [
0
],
"total_controls": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| budget_controls | [object] | false | none | none |
| » attestation_ids | [string] | false | none | none |
| » control_description | string | true | none | none |
| » control_id | string | true | none | none |
| » control_name | string | true | none | none |
| » control_type | string | true | none | none |
| » deficiencies | [string] | false | none | none |
| » evidence_count | integer(int32) | true | none | none |
| » evidence_type | string | true | none | none |
| » frequency | string | true | none | none |
| » is_effective | boolean | true | none | none |
| » last_executed | string(date-time) | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » owner | [integer] | true | none | none |
| change_order_controls | [object] | false | none | none |
| » attestation_ids | [string] | false | none | none |
| » control_description | string | true | none | none |
| » control_id | string | true | none | none |
| » control_name | string | true | none | none |
| » control_type | string | true | none | none |
| » deficiencies | [string] | false | none | none |
| » evidence_count | integer(int32) | true | none | none |
| » evidence_type | string | true | none | none |
| » frequency | string | true | none | none |
| » is_effective | boolean | true | none | none |
| » last_executed | string(date-time) | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » owner | [integer] | true | none | none |
| compliance_attestations | [object] | false | none | none |
| » attestation_id | string | true | none | none |
| » created_at | string(date-time) | true | none | none |
| » entity_id | [integer] | true | none | none |
| » entity_type | string | true | none | none |
| » evaluation_id | string | true | none | none |
| » framework | string | true | none | none |
| » operation_type | string | true | none | none |
| » passed_rules | integer(int32) | true | none | none |
| » result | boolean | true | none | none |
| » rulepack_id | string | true | none | none |
| » rulepack_version | string | true | none | none |
| » signed_digest | string | false | none | none |
| » total_rules | integer(int32) | true | none | none |
| control_effectiveness | number | true | none | none |
| deficient_controls | integer(int32) | true | none | none |
| effective_controls | integer(int32) | true | none | none |
| expense_approvals | [object] | false | none | none |
| » attestation_ids | [string] | false | none | none |
| » control_description | string | true | none | none |
| » control_id | string | true | none | none |
| » control_name | string | true | none | none |
| » control_type | string | true | none | none |
| » deficiencies | [string] | false | none | none |
| » evidence_count | integer(int32) | true | none | none |
| » evidence_type | string | true | none | none |
| » frequency | string | true | none | none |
| » is_effective | boolean | true | none | none |
| » last_executed | string(date-time) | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » owner | [integer] | true | none | none |
| framework | string | true | none | none |
| generated_at | string(date-time) | true | none | none |
| generated_by | [integer] | true | none | none |
| metadata | object | false | none | none |
| » additionalProperties | object | false | none | none |
| project_id | [integer]¦null | false | none | none |
| report_id | string | true | none | none |
| report_period | object | true | none | none |
| » end_date | string(date-time) | true | none | none |
| » label | string | true | none | none |
| » start_date | string(date-time) | true | none | none |
| revenue_recognition | [object] | false | none | none |
| » attestation_ids | [string] | false | none | none |
| » control_description | string | true | none | none |
| » control_id | string | true | none | none |
| » control_name | string | true | none | none |
| » control_type | string | true | none | none |
| » deficiencies | [string] | false | none | none |
| » evidence_count | integer(int32) | true | none | none |
| » evidence_type | string | true | none | none |
| » frequency | string | true | none | none |
| » is_effective | boolean | true | none | none |
| » last_executed | string(date-time) | true | none | none |
| » metadata | object | false | none | none |
| »» additionalProperties | object | false | none | none |
| » owner | [integer] | true | none | none |
| tenant_id | [integer] | true | none | none |
| total_controls | integer(int32) | true | none | none |