=== COMPONENT SCHEMAS === Activity, ActivityStatus, ApprovalStatus, Award, Budget, Contract, ContractStatus, CreateActivityRequest, CreateAwardRequest, CreateBudgetRequest, CreateContractRequest, CreateDisbursementRequest, CreateIndicatorRequest, CreateMilestoneRequest, CreateOrganisationRequest, CreatePortfolioRequest, CreateProgrammeRequest, CreateProjectRequest, CreateRiskRequest, Dashboard, Disbursement, Evidence, EvidenceType, ExecuteContractRequest, Indicator, IndustrySector, Instrument, Invite, InviteRequest, Milestone, NotificationPlatform, Organisation, OrganisationType, Portfolio, Priority, ProblemDetails, Programme, Project, ProjectType, Risk, RiskImpact, RiskLikelihood, UnitOfMeasure, UpdateContractRequest, UpdateDisbursementRequest, UpdateEvidenceRequest, UpdateMilestoneRequest, UpdateOrganisationRequest, UpdatePortfolioRequest, UpdateProgrammeRequest, UpdateProjectRequest, UpdateProjectStatusRequest, UpdateRiskRequest, User, UserFilterRequest === DETAILED ENDPOINTS (EXCLUDING TOOLS) === ------------------------------------------------------------ GET /v1/api/users/{userId} [Tag: Users] OperationId: getuser Description: Gets the metadata of a single user. Parameters: - userId (in: path, required: true) schema: {"type":"string","format":"uuid"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/User"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/users/{page}/{pageSize} [Tag: Users] OperationId: getusers Description: Paginated, searchable directory of system users. Supports filtering by ActivityStatus, searching by Email, and sorting Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UserFilterRequest"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/User"}} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/integration/sync [Tag: Users] OperationId: syncuser Description: Trigger integration and data synchronization in the background Responses: [200] (No content) [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/users/{userId}/status/{status} [Tag: Users] OperationId: updateuserstatus Description: Changes the Activity status of the user in the system Parameters: - userId (in: path, required: true) schema: {"type":"string","format":"uuid"} - status (in: path, required: true) schema: {"$ref":"#/components/schemas/ActivityStatus"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/projects/activities [Tag: Projects] OperationId: createactivity Description: Add a new activity under project (M04) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateActivityRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/projects/programme [Tag: Projects] OperationId: createprogramme Description: Create programme Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateProgrammeRequest"} Responses: [200] (No content) [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/projects/programme [Tag: Projects] OperationId: updateprogramme Description: Update existing programme Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateProgrammeRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/projects [Tag: Projects] OperationId: createproject Description: Create a new project (M04) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateProjectRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects [Tag: Projects] OperationId: getprojects Description: Get a list of projects Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Project"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/projects [Tag: Projects] OperationId: updateproject Description: Update project details Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateProjectRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/{projectId}/activities [Tag: Projects] OperationId: getactivities Description: Get a list of activities for a project Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Activity"}} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/activities/{activityId} [Tag: Projects] OperationId: getactivity Description: Gets a specific activity by it's id Parameters: - activityId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Activity"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/milestones/{milestoneId} [Tag: Projects] OperationId: getmilestone Description: Gets a specific milestone Parameters: - milestoneId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Milestone"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/milestones/{page}/{pageSize} [Tag: Projects] OperationId: getmilestones Description: Get a list of all milestones Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Milestone"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/programme/{programmeId} [Tag: Projects] OperationId: getprogramme Description: Get specific programme Parameters: - programmeId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Programme"} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/{programmeId}/programme [Tag: Projects] OperationId: getprogrammeprojects Description: Get a list of all projects under a programme Parameters: - programmeId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Project"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/programme/{page}/{pageSize} [Tag: Projects] OperationId: getprogrammesprojects Description: Get a list of all programmes Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Programme"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/{projectId} [Tag: Projects] OperationId: getproject Description: Get project by ID Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Project"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/indicators/project/{projectId} [Tag: Projects] OperationId: getprojectindicators Description: Get get a detailed list of project indicators Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Indicator"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/{projectId}/milestones [Tag: Projects] OperationId: getprojectmilestones Description: Get a list of milestones for a project Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Milestone"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/projects/{projectId}/risks [Tag: Projects] OperationId: getprojectrisks Description: Get a list of risks for a project Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Risk"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/projects/milestone [Tag: Projects] OperationId: updatemilestone Description: Update project milestone details Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateMilestoneRequest"} Responses: [200] (No content) [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/projects/status [Tag: Projects] OperationId: updateprojectstatus Description: Update project status (M04) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateProjectStatusRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/grants/awards [Tag: Grants] OperationId: createaward Description: Register an approved funding award (M01) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateAwardRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/awards [Tag: Grants] OperationId: getawards Description: Get a list of awards Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":10} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Award"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/grants/budgets [Tag: Grants] OperationId: createbudget Description: Create a new budget line (M05) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateBudgetRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/budgets [Tag: Grants] OperationId: getbudgets Description: Get all budgets Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Budget"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/grants/contracts [Tag: Grants] OperationId: createcontract Description: Create a contract record from an approved award (M02) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateContractRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/contracts [Tag: Grants] OperationId: getcontracts Description: Get all contracts Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Contract"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/grants/contracts [Tag: Grants] OperationId: updatecontract Description: Updates a specific contract Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateContractRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/grants/contracts/execute [Tag: Grants] OperationId: executecontract Description: Execute the contract and lock the contractual version Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/ExecuteContractRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/awards/{awardId} [Tag: Grants] OperationId: getaward Description: Get award by ID Parameters: - awardId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Award"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/budgets/{budgetId} [Tag: Grants] OperationId: getbudget Description: Get budget by ID Parameters: - budgetId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Budget"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/contracts/{contractId} [Tag: Grants] OperationId: getcontract Description: Get contract by ID Parameters: - contractId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Contract"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/grants/contracts/{contractId} [Tag: Grants] OperationId: uploadcontract Description: Uploads a contract file securely Parameters: - contractId (in: path, required: true) schema: {"type":"string"} Responses: [200] (No content) [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/grants/contracts/{contractId}/securelink [Tag: Grants] OperationId: getcontracturl Description: Gets a secure download URL, has expiry period (default 15min) Parameters: - contractId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"string"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/governance/organisations [Tag: Governance] OperationId: createorganisation Description: Create a new organization profile Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateOrganisationRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/organisations [Tag: Governance] OperationId: getorganisations Description: Get a paginated directory of organizations Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Organisation"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/governance/organisations [Tag: Governance] OperationId: updateorganisation Description: Update an existing organization profile Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateOrganisationRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/governance/organisations/portfolio [Tag: Governance] OperationId: createportfolio Description: Create a new organization portfolio Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreatePortfolioRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [404] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/governance/organisations/portfolio [Tag: Governance] OperationId: updateportfolio Description: Update an existing organization portfolio Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdatePortfolioRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/dashboard [Tag: Governance] OperationId: dashboard Description: Get executive portfolio dashboard metrics and KPIs Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Dashboard"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/instruments/{programmeId} [Tag: Governance] OperationId: getinstruments Description: Get all funding instruments Parameters: - programmeId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Instrument"}} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/organisations/{organisationId} [Tag: Governance] OperationId: getorganisation Description: Get organization profile by ID Parameters: - organisationId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Organisation"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/portfolios/{portfolioId} [Tag: Governance] OperationId: getportfolio Description: Get a specific portfolios Parameters: - portfolioId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Portfolio"}} [401] (No content) [403] (No content) [404] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Portfolio"}} [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/portfolios/{portfolioId}/programmes [Tag: Governance] OperationId: getportfolioprogrammes Description: Get a programme's portfolios Parameters: - portfolioId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Programme"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/organisations/{organisationId}/portfolio [Tag: Governance] OperationId: getportfolios Description: Get all portfolios Parameters: - organisationId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Portfolio"}} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/governance/programmes/{portfolioId} [Tag: Governance] OperationId: getprogrammes Description: Get all programmes Parameters: - portfolioId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Programme"}} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/execution/disbursements/{disbursementId}/approve [Tag: Execution] OperationId: approvedisbursement Description: Approve disbursement and release payment (M06) Parameters: - disbursementId (in: path, required: true) schema: {"type":"string"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/execution/disbursements [Tag: Execution] OperationId: createdisbursement Description: Create a new disbursement schedule (M06) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateDisbursementRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/execution/disbursements [Tag: Execution] OperationId: getdisbursements Description: Get a list of disbursements Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":10} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Disbursement"}} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/execution/disbursements [Tag: Execution] OperationId: updatedisbursement Description: Update the details of a specific disbursement Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateDisbursementRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/execution/risks [Tag: Execution] OperationId: createrisk Description: Add risk to risk register (M09) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateRiskRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/execution/risks [Tag: Execution] OperationId: getrisks Description: Get a list of all risks Parameters: - page (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":1} - pageSize (in: query, required: false) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":["integer","string"],"format":"int32","default":100} Responses: [200] (No content) [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/execution/risks [Tag: Execution] OperationId: updaterisk Description: Update the details of a specific risk Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateRiskRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/execution/disbursements/{disbursementId} [Tag: Execution] OperationId: getdisbursement Description: Get a specific disbursement Parameters: - disbursementId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Disbursement"} [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/execution/risks/{riskId} [Tag: Execution] OperationId: getrisk Description: Get a specific risk Parameters: - riskId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Risk"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/evidence/file [Tag: Evidence & M&E] OperationId: createevidence Description: Upload supporting evidence file to S3 and register metadata (M14) Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/evidence/indicators [Tag: Evidence & M&E] OperationId: createindicator Description: Define indicators and baselines/targets (M08) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateIndicatorRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/evidence/milestones [Tag: Evidence & M&E] OperationId: createmilestonerequest Description: Define contractual milestones (M07) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/CreateMilestoneRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/{evidenceId} [Tag: Evidence & M&E] OperationId: getevidence Description: Get a specific evidence record and assiciated file URLs Parameters: - evidenceId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Evidence"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/files/{page}/{pageSize} [Tag: Evidence & M&E] OperationId: getevidencefiles Description: Get a list of all uploaded evidence files metadata Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Evidence"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/{evidenceId}/securelink [Tag: Grants] OperationId: getevidenceurl Description: Gets a secure download URL of the evidence file, URL expires (default: 15min) Parameters: - evidenceId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"string"} [401] (No content) [403] (No content) [404] application/json; version=1 -> {"type":"string"} [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/indicators/{indicatorId} [Tag: Evidence & M&E] OperationId: getindicator Description: Get a specific indicator. Parameters: - indicatorId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Indicator"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/indicators/{page}/{pageSize} [Tag: Evidence & M&E] OperationId: getindicators Description: Get a list of indicators Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Indicator"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/milestone/{milestoneId} [Tag: Evidence & M&E] OperationId: getmilestoneevidence Description: Get a list of all uploaded evidence metadata for a specific mliestone Parameters: - milestoneId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Evidence"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/evidence/{projectId} [Tag: Evidence & M&E] OperationId: getprojectevidence Description: Get a list of all uploaded evidence metadata for a specific project Parameters: - projectId (in: path, required: true) schema: {"type":"string"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Evidence"}} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/evidence/indicators/{indicatorId}/actuals/{actualAmount} [Tag: Evidence & M&E] OperationId: recordindicatoramount Description: Record actual values for indicators (M08) Parameters: - indicatorId (in: path, required: true) schema: {"type":"string"} - actualAmount (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"number","format":"double"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ PUT /v1/api/evidence [Tag: Evidence & M&E] OperationId: updateevidence Description: Updates a specific evidence record metadata Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/UpdateEvidenceRequest"} Responses: [200] (No content) [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [403] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/communications/invites/applicant/{applicantUserId} [Tag: Communications] OperationId: getapplicantinvite Description: Gets an applicant's invite Parameters: - applicantUserId (in: path, required: true) schema: {"type":"string","format":"uuid"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Invite"} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/communications/invites/{applicantUserId} [Tag: Communications] OperationId: getapplicantinvites Description: Gets an applicant's invite list Parameters: - applicantUserId (in: path, required: true) schema: {"type":"string","format":"uuid"} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Invite"}} [401] (No content) [404] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ GET /v1/api/communications/invites/{page}/{pageSize} [Tag: Communications] OperationId: getinvites Description: Get a list of sent invitations Parameters: - page (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":1} - pageSize (in: path, required: true) schema: {"pattern":"^-?(?:0|[1-9]\\d*)$","type":"integer","format":"int32","default":100} Responses: [200] application/json; version=1 -> {"type":"array","items":{"$ref":"#/components/schemas/Invite"}} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} ------------------------------------------------------------ POST /v1/api/communications/invite [Tag: Communications] OperationId: sendinvite Description: Trigger an invite to an organization or candidate (specifying NotificationPlatform) Request Body: required=true Content-Type: application/json; version=1 -> Schema: {"$ref":"#/components/schemas/InviteRequest"} Responses: [200] application/json; version=1 -> {"$ref":"#/components/schemas/Invite"} [400] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"} [401] (No content) [500] application/json; version=1 -> {"$ref":"#/components/schemas/ProblemDetails"}