InfraForge Docs

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