{ "openapi": "3.1.1", "info": { "title": "PostFundManagement.Api | v1", "version": "1.0.0" }, "servers": [ { "url": "http://api.ifri.khongisa.co.za/" } ], "paths": { "/v1/api/users/{userId}": { "get": { "tags": [ "Users" ], "description": "Gets the metadata of a single user.", "operationId": "getuser", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/users/{page}/{pageSize}": { "post": { "tags": [ "Users" ], "description": "Paginated, searchable directory of system users. Supports filtering by ActivityStatus, searching by Email, and sorting", "operationId": "getusers", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UserFilterRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/User" } } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/integration/sync": { "post": { "tags": [ "Users" ], "description": "Trigger integration and data synchronization in the background", "operationId": "syncuser", "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/users/{userId}/status/{status}": { "get": { "tags": [ "Users" ], "description": "Changes the Activity status of the user in the system", "operationId": "updateuserstatus", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "status", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ActivityStatus" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/activities": { "post": { "tags": [ "Projects" ], "description": "Add a new activity under project (M04)", "operationId": "createactivity", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateActivityRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/projects/beneficiaries": { "post": { "tags": [ "Projects" ], "description": "Add a new project beneficiary", "operationId": "createbeneficiary", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateBeneficiaryRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update project beneficiary", "operationId": "updatebeneficiary", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateBeneficiaryRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/changerequests": { "post": { "tags": [ "Projects" ], "description": "Create a new change request against an existing project", "operationId": "createchangerequest", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateChangeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update a specific project change request", "operationId": "updatechangerequest", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateChangeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/complianceitems": { "post": { "tags": [ "Projects" ], "description": "Add a new beneficiary compliance item", "operationId": "createcomplianceitem", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateComplianceItemRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update a specific compliance item", "operationId": "updatecomplianceitem", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateComplianceItemRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/issues": { "post": { "tags": [ "Projects" ], "description": "Add a new project issue", "operationId": "createissue", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateIssueRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update a specific project issue", "operationId": "updateissue", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateIssueRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/beneficiaris/outcomes": { "post": { "tags": [ "Projects" ], "description": "Add a new beneficiary outcome", "operationId": "createoutcome", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateOutcomeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/projects/programme": { "post": { "tags": [ "Projects" ], "description": "Create programme", "operationId": "createprogramme", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateProgrammeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update existing programme", "operationId": "updateprogramme", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateProgrammeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects": { "post": { "tags": [ "Projects" ], "description": "Create a new project (M04)", "operationId": "createproject", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateProjectRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "get": { "tags": [ "Projects" ], "description": "Get a list of projects", "operationId": "getprojects", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Project" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update project details", "operationId": "updateproject", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateProjectRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/projects/sitevisits": { "post": { "tags": [ "Projects" ], "description": "Add a new project site visit", "operationId": "createsitevisit", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateSiteVisitRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Projects" ], "description": "Update project site visit", "operationId": "updatesitevisit", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateSiteVisitRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/activities": { "get": { "tags": [ "Projects" ], "description": "Get a list of activities for a project", "operationId": "getactivities", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Activity" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/activities/{activityId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific activity by it's id", "operationId": "getactivity", "parameters": [ { "name": "activityId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Activity" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/beneficiaries": { "get": { "tags": [ "Projects" ], "description": "Gets project beneficiaries", "operationId": "getbeneficiariesretrieval", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Beneficiary" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/beneficiaries/{beneficiaryId}": { "get": { "tags": [ "Projects" ], "description": "Gets project beneficiaries", "operationId": "getbeneficiaries", "parameters": [ { "name": "beneficiaryId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Beneficiary" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/changerequests/{changeRequestId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific project change request", "operationId": "getchangerequest", "parameters": [ { "name": "changeRequestId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ChangeRequest" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/changerequests": { "get": { "tags": [ "Projects" ], "description": "Gets project change requests", "operationId": "getchangerequests", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ChangeRequest" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/complianceitems/{complianceItemId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific project compliance item", "operationId": "getcomplianceitem", "parameters": [ { "name": "complianceItemId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ComplianceItem" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/complianceitems/{projectId}": { "get": { "tags": [ "Projects" ], "description": "Gets project compliance items", "operationId": "getcomplianceitems", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ComplianceItem" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/issues/{issueId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific project issue", "operationId": "getissue", "parameters": [ { "name": "issueId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Issue" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/issues": { "get": { "tags": [ "Projects" ], "description": "Gets project issues", "operationId": "getissues", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Issue" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/milestones/{milestoneId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific milestone", "operationId": "getmilestone", "parameters": [ { "name": "milestoneId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Milestone" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/milestones/{page}/{pageSize}": { "get": { "tags": [ "Projects" ], "description": "Get a list of all milestones", "operationId": "getmilestones", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Milestone" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/projects/outcomes/{outcomeId}": { "get": { "tags": [ "Projects" ], "description": "Gets a specific project outcome", "operationId": "getoutcome", "parameters": [ { "name": "outcomeId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Outcome" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/outcomes/{beneficiatyId}": { "get": { "tags": [ "Projects" ], "description": "Gets project beneficiary outcomes", "operationId": "getoutcomes", "parameters": [ { "name": "beneficiatyId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Outcome" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/programme/{programmeId}": { "get": { "tags": [ "Projects" ], "description": "Get specific programme", "operationId": "getprogramme", "parameters": [ { "name": "programmeId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Programme" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{programmeId}/programme": { "get": { "tags": [ "Projects" ], "description": "Get a list of all projects under a programme", "operationId": "getprogrammeprojects", "parameters": [ { "name": "programmeId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Project" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/programme/{page}/{pageSize}": { "get": { "tags": [ "Projects" ], "description": "Get a list of all programmes", "operationId": "getprogrammesprojects", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Programme" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}": { "get": { "tags": [ "Projects" ], "description": "Get project by ID", "operationId": "getproject", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Project" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/indicators/project/{projectId}": { "get": { "tags": [ "Projects" ], "description": "Get get a detailed list of project indicators", "operationId": "getprojectindicators", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Indicator" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/milestones": { "get": { "tags": [ "Projects" ], "description": "Get a list of milestones for a project", "operationId": "getprojectmilestones", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Milestone" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/risks": { "get": { "tags": [ "Projects" ], "description": "Get a list of risks for a project", "operationId": "getprojectrisks", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Risk" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/sitevisits/{siteVisitId}": { "get": { "tags": [ "Projects" ], "description": "Gets project site visit", "operationId": "getsitevisit", "parameters": [ { "name": "siteVisitId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/SiteVisit" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/{projectId}/sitevisits": { "get": { "tags": [ "Projects" ], "description": "Gets project site visits", "operationId": "getsitevisits", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SiteVisit" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/milestone": { "put": { "tags": [ "Projects" ], "description": "Update project milestone details", "operationId": "updatemilestone", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateMilestoneRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/projects/outcomes": { "put": { "tags": [ "Projects" ], "description": "Update project beneficiary outcome", "operationId": "updateoutcome", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateOutcomeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/projects/status": { "put": { "tags": [ "Projects" ], "description": "Update project status (M04)", "operationId": "updateprojectstatus", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateProjectStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/awards": { "post": { "tags": [ "Grants" ], "description": "Register an approved funding award (M01)", "operationId": "createaward", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateAwardRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "get": { "tags": [ "Grants" ], "description": "Get a list of awards", "operationId": "getawards", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 10 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Award" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/grants/budgets": { "post": { "tags": [ "Grants" ], "description": "Create a new budget line (M05)", "operationId": "createbudget", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateBudgetRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "get": { "tags": [ "Grants" ], "description": "Get all budgets", "operationId": "getbudgets", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Budget" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Governance" ], "description": "Updates a specific budget", "operationId": "updatebudget", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateBudgetRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/contracts": { "post": { "tags": [ "Grants" ], "description": "Create a contract record from an approved award (M02)", "operationId": "createcontract", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateContractRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "get": { "tags": [ "Grants" ], "description": "Get all contracts", "operationId": "getcontracts", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Contract" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Grants" ], "description": "Updates a specific contract", "operationId": "updatecontract", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateContractRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/contracts/execute": { "post": { "tags": [ "Grants" ], "description": "Execute the contract and lock the contractual version", "operationId": "executecontract", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ExecuteContractRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/grants/awards/{awardId}": { "get": { "tags": [ "Grants" ], "description": "Get award by ID", "operationId": "getaward", "parameters": [ { "name": "awardId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Award" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/budgets/{budgetId}": { "get": { "tags": [ "Grants" ], "description": "Get budget by ID", "operationId": "getbudget", "parameters": [ { "name": "budgetId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Budget" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/contracts/{contractId}": { "get": { "tags": [ "Grants" ], "description": "Get contract by ID", "operationId": "getcontract", "parameters": [ { "name": "contractId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Contract" } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "post": { "tags": [ "Grants" ], "description": "Uploads a contract file securely", "operationId": "uploadcontract", "parameters": [ { "name": "contractId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/grants/contracts/{contractId}/securelink": { "get": { "tags": [ "Grants" ], "description": "Gets a secure download URL, has expiry period (default 15min)", "operationId": "getcontracturl", "parameters": [ { "name": "contractId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/instruments": { "post": { "tags": [ "Governance" ], "description": "Creates a new programme funding instrument", "operationId": "createinstrument", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateInstrumentRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Governance" ], "description": "Updates a programme funding instrument", "operationId": "updateinstrument", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateInstrumentRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/organisations": { "post": { "tags": [ "Governance" ], "description": "Create a new organization profile", "operationId": "createorganisation", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateOrganisationRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "get": { "tags": [ "Governance" ], "description": "Get a paginated directory of organizations", "operationId": "getorganisations", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Organisation" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Governance" ], "description": "Update an existing organization profile", "operationId": "updateorganisation", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateOrganisationRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/organisations/portfolio": { "post": { "tags": [ "Governance" ], "description": "Create a new organization portfolio", "operationId": "createportfolio", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreatePortfolioRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] }, "put": { "tags": [ "Governance" ], "description": "Update an existing organization portfolio", "operationId": "updateportfolio", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdatePortfolioRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/tenants": { "post": { "tags": [ "Governance" ], "description": "Create a new tenant", "operationId": "createtenant", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateTenantRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "get": { "tags": [ "Governance" ], "description": "Gets system tenants", "operationId": "gettenantsretrieval", "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Tenant" } } } } }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Governance" ], "description": "Updates a specific tenant", "operationId": "updatetenant", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateTenantRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/dashboard": { "get": { "tags": [ "Governance" ], "description": "Get executive portfolio dashboard metrics and KPIs", "operationId": "dashboard", "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Dashboard" } } } }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/auditlog": { "post": { "tags": [ "Governance" ], "description": "Retrieves audit logs based on pagination parameters", "operationId": "getauditlogs", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Pagination" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AuditLog" } } } } }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/instruments/{programmeId}": { "get": { "tags": [ "Governance" ], "description": "Get all funding instruments", "operationId": "getinstruments", "parameters": [ { "name": "programmeId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Instrument" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/organisations/{organisationId}": { "get": { "tags": [ "Governance" ], "description": "Get organization profile by ID", "operationId": "getorganisation", "parameters": [ { "name": "organisationId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Organisation" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/organisations/{organisationId}/portfolio": { "get": { "tags": [ "Governance" ], "description": "Get all portfolios belonging to a specific organisation", "operationId": "getorganisationportfolios", "parameters": [ { "name": "organisationId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Portfolio" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/portfolios/{portfolioId}/value": { "get": { "tags": [ "Governance" ], "description": "Calculates and returns a portfolio's total project's budget value", "operationId": "getporfoliovalue", "parameters": [ { "name": "portfolioId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/portfolios/{portfolioId}": { "get": { "tags": [ "Governance" ], "description": "Get a specific portfolios", "operationId": "getportfolio", "parameters": [ { "name": "portfolioId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Portfolio" } } } } }, "404": { "description": "Not Found", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Portfolio" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/portfolios/{portfolioId}/programmes": { "get": { "tags": [ "Governance" ], "description": "Get a programme's portfolios", "operationId": "getportfolioprogrammes", "parameters": [ { "name": "portfolioId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Programme" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/organisations/portfolios": { "post": { "tags": [ "Governance" ], "description": "Get all portfolios", "operationId": "getportfolios", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Pagination" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Portfolio" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/programmes/{portfolioId}": { "get": { "tags": [ "Governance" ], "description": "Get all programmes", "operationId": "getprogrammes", "parameters": [ { "name": "portfolioId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Programme" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/programmes/{programmeId}/value": { "get": { "tags": [ "Governance" ], "description": "Calculates and returns a programme's total project budget value", "operationId": "getprogrammevalue", "parameters": [ { "name": "programmeId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/governance/tenants/{tenantId}": { "get": { "tags": [ "Governance" ], "description": "Gets system tenants", "operationId": "gettenants", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Tenant" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/disbursements/{disbursementId}/approve": { "post": { "tags": [ "Execution" ], "description": "Approve disbursement and release payment (M06)", "operationId": "approvedisbursement", "parameters": [ { "name": "disbursementId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/disbursements": { "post": { "tags": [ "Execution" ], "description": "Create a new disbursement schedule (M06)", "operationId": "createdisbursement", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateDisbursementRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "get": { "tags": [ "Execution" ], "description": "Get a list of disbursements", "operationId": "getdisbursements", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 10 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Disbursement" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Execution" ], "description": "Update the details of a specific disbursement", "operationId": "updatedisbursement", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateDisbursementRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/execution/risks": { "post": { "tags": [ "Execution" ], "description": "Add risk to risk register (M09)", "operationId": "createrisk", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateRiskRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "get": { "tags": [ "Execution" ], "description": "Get a list of all risks", "operationId": "getrisks", "parameters": [ { "name": "page", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Risk" } } } } }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Execution" ], "description": "Update the details of a specific risk", "operationId": "updaterisk", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateRiskRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/rules": { "post": { "tags": [ "Execution" ], "description": "Add rule against a programme", "operationId": "createrule", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateRuleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] }, "put": { "tags": [ "Execution" ], "description": "Update the details of a specific programme rule (supplied version auto-increment)", "operationId": "updaterule", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateRuleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/disbursements/{disbursementId}": { "get": { "tags": [ "Execution" ], "description": "Get a specific disbursement", "operationId": "getdisbursement", "parameters": [ { "name": "disbursementId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Disbursement" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/risks/{riskId}": { "get": { "tags": [ "Execution" ], "description": "Get a specific risk", "operationId": "getrisk", "parameters": [ { "name": "riskId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Risk" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/rules/{ruleId}": { "get": { "tags": [ "Execution" ], "description": "Get a specific programme rule", "operationId": "getrule", "parameters": [ { "name": "ruleId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Rule" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/execution/programmes/rules": { "post": { "tags": [ "Execution" ], "description": "Get a list of all programme rules", "operationId": "getrules", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Pagination" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Rule" } } } } }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/file": { "put": { "tags": [ "Evidence & M&E" ], "description": "Upload supporting evidence file to S3 and register metadata (M14)", "operationId": "createevidence", "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/evidence/indicators": { "post": { "tags": [ "Evidence & M&E" ], "description": "Define indicators and baselines/targets (M08)", "operationId": "createindicator", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateIndicatorRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/milestones": { "post": { "tags": [ "Evidence & M&E" ], "description": "Define contractual milestones (M07)", "operationId": "createmilestonerequest", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/CreateMilestoneRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/{evidenceId}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a specific evidence record and assiciated file URLs", "operationId": "getevidence", "parameters": [ { "name": "evidenceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Evidence" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/files/{page}/{pageSize}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a list of all uploaded evidence files metadata", "operationId": "getevidencefiles", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Evidence" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/evidence/{evidenceId}/securelink": { "get": { "tags": [ "Grants" ], "description": "Gets a secure download URL of the evidence file, URL expires (default: 15min)", "operationId": "getevidenceurl", "parameters": [ { "name": "evidenceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "string" } } } }, "404": { "description": "Not Found", "content": { "application/json; version=1": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/indicators/{indicatorId}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a specific indicator.", "operationId": "getindicator", "parameters": [ { "name": "indicatorId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Indicator" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/indicators/{page}/{pageSize}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a list of indicators", "operationId": "getindicators", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Indicator" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } }, "/v1/api/evidence/milestone/{milestoneId}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a list of all uploaded evidence metadata for a specific mliestone", "operationId": "getmilestoneevidence", "parameters": [ { "name": "milestoneId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Evidence" } } } } }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/{projectId}": { "get": { "tags": [ "Evidence & M&E" ], "description": "Get a list of all uploaded evidence metadata for a specific project", "operationId": "getprojectevidence", "parameters": [ { "name": "projectId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Evidence" } } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence/indicators/{indicatorId}/actuals/{actualAmount}": { "post": { "tags": [ "Evidence & M&E" ], "description": "Record actual values for indicators (M08)", "operationId": "recordindicatoramount", "parameters": [ { "name": "indicatorId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "actualAmount", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": "number", "format": "double" } } ], "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/evidence": { "put": { "tags": [ "Evidence & M&E" ], "description": "Updates a specific evidence record metadata", "operationId": "updateevidence", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/UpdateEvidenceRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Not Found" }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/communications/invites/applicants/{applicantUserId}": { "get": { "tags": [ "Communications" ], "description": "Gets an applicant's invite", "operationId": "getapplicantinvite", "parameters": [ { "name": "applicantUserId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Invite" } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/communications/invites/{applicantUserId}": { "get": { "tags": [ "Communications" ], "description": "Gets an applicant's invite list", "operationId": "getapplicantinvites", "parameters": [ { "name": "applicantUserId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Invite" } } } } }, "404": { "description": "Not Found" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/communications/invites/{page}/{pageSize}": { "get": { "tags": [ "Communications" ], "description": "Get a list of sent invitations", "operationId": "getinvites", "parameters": [ { "name": "page", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "path", "required": true, "schema": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Invite" } } } } }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/communications/norifications/{organisationId}": { "get": { "tags": [ "Communications" ], "description": "Retrieves the notification system report", "operationId": "getnotifications", "parameters": [ { "name": "organisationId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Notification" } } } } }, "403": { "description": "Forbidden" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found", "content": { "application/json; version=1": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Notification" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ {} ] } }, "/v1/api/communications/invites": { "post": { "tags": [ "Communications" ], "description": "Trigger an invite to an organization or candidate (specifying NotificationPlatform)", "operationId": "sendinvite", "requestBody": { "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/InviteRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/Invite" } } } }, "400": { "description": "Bad Request", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json; version=1": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized" } }, "security": [ {} ] } } }, "components": { "schemas": { "Activity": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "approvedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "category": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "title": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "performedAt": { "type": [ "null", "string" ], "format": "date-time" } } }, "ActivityStatus": { "type": "integer" }, "ApprovalStatus": { "type": "integer" }, "AuditLog": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "entityName": { "type": [ "null", "string" ] }, "entityId": { "type": [ "null", "string" ] }, "action": { "type": [ "null", "string" ] }, "changes": { "type": [ "null", "array" ], "items": { "type": "string" } }, "performedBy": { "type": "string", "format": "uuid" }, "timestamp": { "type": "string", "format": "date-time" } } }, "Award": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "approvedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "Beneficiary": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "userId": { "type": "string", "format": "uuid" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "category": { "type": [ "null", "string" ] }, "targetCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "reachedCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "location": { "type": [ "null", "string" ] } } }, "Budget": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "approvedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "ChangeRequest": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": [ "null", "string" ] }, "justification": { "type": [ "null", "string" ] }, "revisedBudget": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "null", "number", "string" ], "format": "double" }, "revisedEndedAt": { "type": [ "null", "string" ], "format": "date-time" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "approvedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" } } }, "ComplianceItem": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": [ "null", "string" ] }, "requirements": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "verifiedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" } } }, "Contract": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "awardId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "externalSignatureId": { "type": [ "null", "string" ] }, "signedDocumentUrl": { "type": [ "null", "string" ] }, "effectiveAt": { "type": [ "null", "string" ], "format": "date-time" }, "expiresAt": { "type": [ "null", "string" ], "format": "date-time" }, "totalValue": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "status": { "$ref": "#/components/schemas/ContractStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" } } }, "ContractStatus": { "type": "integer" }, "CreateActivityRequest": { "required": [ "projectId", "milestoneId", "category", "amount", "title", "description", "performedAt" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "category": { "type": "string" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "title": { "type": "string" }, "description": { "type": "string" }, "performedAt": { "type": [ "null", "string" ], "format": "date-time" } } }, "CreateAwardRequest": { "required": [ "organisationId", "programmeId", "amount" ], "type": "object", "properties": { "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "CreateBeneficiaryRequest": { "required": [ "projectId", "name", "category", "location", "targetCount", "reachedCount" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "category": { "type": "string" }, "location": { "type": "string" }, "targetCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "reachedCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" } } }, "CreateBudgetRequest": { "required": [ "projectId", "name", "amount" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "CreateChangeRequest": { "required": [ "projectId", "title", "justification", "revisedBudget", "revisionDate" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "justification": { "type": "string" }, "revisedBudget": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "revisionDate": { "type": "string", "format": "date-time" } } }, "CreateComplianceItemRequest": { "required": [ "projectId", "title", "requirements" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "requirements": { "type": "string" } } }, "CreateContractRequest": { "required": [ "awardId", "totalValue", "effectiveAt", "expiresAt" ], "type": "object", "properties": { "awardId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "totalValue": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "effectiveAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" } } }, "CreateDisbursementRequest": { "required": [ "projectId", "milestoneId", "amount" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "CreateIndicatorRequest": { "required": [ "projectId", "name", "unitOfMeasure", "baselineAmount", "targetAmount" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "unitOfMeasure": { "$ref": "#/components/schemas/UnitOfMeasure" }, "baselineAmount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "targetAmount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "CreateInstrumentRequest": { "required": [ "programmeId", "name", "code", "description" ], "type": "object", "properties": { "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "code": { "type": "string" }, "description": { "type": "string" } } }, "CreateIssueRequest": { "required": [ "projectId", "title", "description", "priority", "assignedTo" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "description": { "type": "string" }, "priority": { "$ref": "#/components/schemas/Priority" }, "assignedTo": { "type": "string", "format": "uuid" } } }, "CreateMilestoneRequest": { "required": [ "projectId", "dueAt", "name", "priority" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "dueAt": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "priority": { "$ref": "#/components/schemas/Priority" } } }, "CreateOrganisationRequest": { "required": [ "name", "registrationNo", "email" ], "type": "object", "properties": { "name": { "type": "string" }, "registrationNo": { "type": "string" }, "email": { "type": "string" }, "type": { "$ref": "#/components/schemas/OrganisationType" } } }, "CreateOutcomeRequest": { "required": [ "beneficiaryId", "name", "description" ], "type": "object", "properties": { "beneficiaryId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "CreatePortfolioRequest": { "required": [ "name", "description", "organisationId", "ownerId" ], "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "ownerId": { "type": "string", "format": "uuid" } } }, "CreateProgrammeRequest": { "required": [ "portfolioId", "name", "ownerId" ], "type": "object", "properties": { "portfolioId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "ownerId": { "type": "string", "format": "uuid" } } }, "CreateProjectRequest": { "required": [ "programmeId", "name", "description", "sector", "projectType" ], "type": "object", "properties": { "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" }, "sector": { "$ref": "#/components/schemas/IndustrySector" }, "projectType": { "$ref": "#/components/schemas/ProjectType" } } }, "CreateRiskRequest": { "required": [ "projectId", "likelihood", "impact", "name", "description" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "likelihood": { "$ref": "#/components/schemas/RiskLikelihood" }, "impact": { "$ref": "#/components/schemas/RiskImpact" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "CreateRuleRequest": { "required": [ "programmeId", "userId", "name", "description" ], "type": "object", "properties": { "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "userId": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "CreateSiteVisitRequest": { "required": [ "projectId", "inspectorName", "findings", "visitedAt" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "inspectorName": { "type": "string" }, "findings": { "type": "string" }, "visitedAt": { "type": "string", "format": "date-time" } } }, "CreateTenantRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": "string" } } }, "Dashboard": { "required": [ "portfolioValue", "activeAwards", "disbursed", "onTrackPercentage", "atRiskCount", "beneficiariesReached" ], "type": "object", "properties": { "portfolioValue": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "activeAwards": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "disbursed": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "onTrackPercentage": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "atRiskCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "beneficiariesReached": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" } } }, "Disbursement": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "Evidence": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "indicatorId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "activityId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "version": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "type": { "$ref": "#/components/schemas/EvidenceType" }, "documentUrl": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "EvidenceType": { "type": "integer" }, "ExecuteContractRequest": { "required": [ "contractId", "externalSignatureId", "signedDocumentUrl" ], "type": "object", "properties": { "contractId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "externalSignatureId": { "type": "string" }, "signedDocumentUrl": { "type": "string" } } }, "Indicator": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "unitOfMeasure": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UnitOfMeasure" } ] }, "baselineAmount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "targetAmount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "actualAmount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "IndustrySector": { "type": "integer" }, "Instrument": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "code": { "type": [ "null", "string" ] }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ActivityStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" } } }, "Invite": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "invitedOrganisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "awardId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "contractId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "recipient": { "type": "string", "format": "uuid" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" } } }, "InviteRequest": { "required": [ "organisationId", "invitedOrganisationId", "awardId", "contractId", "recipient", "message", "platform" ], "type": "object", "properties": { "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "invitedOrganisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "awardId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "contractId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "recipient": { "type": "string", "format": "uuid" }, "message": { "type": "string" }, "platform": { "$ref": "#/components/schemas/NotificationPlatform" } } }, "Issue": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "priority": { "$ref": "#/components/schemas/Priority" }, "status": { "$ref": "#/components/schemas/ActivityStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "assignedTo": { "type": [ "null", "string" ], "format": "uuid" }, "resolvedAt": { "type": [ "null", "string" ], "format": "date-time" }, "resolution": { "type": [ "null", "string" ] } } }, "Milestone": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "dueAt": { "type": "string", "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "priority": { "$ref": "#/components/schemas/Priority" } } }, "Notification": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "recipient": { "type": "string", "format": "uuid" }, "platform": { "$ref": "#/components/schemas/NotificationPlatform" }, "status": { "$ref": "#/components/schemas/NotificationStatus" }, "subject": { "type": [ "null", "string" ] }, "message": { "type": [ "null", "string" ] }, "destination": { "type": [ "null", "string" ] }, "createdAt": { "type": "string", "format": "date-time" }, "sentAt": { "type": [ "null", "string" ], "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "error": { "type": [ "null", "string" ] } } }, "NotificationPlatform": { "type": "integer" }, "NotificationStatus": { "type": "integer" }, "Organisation": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "registrationNo": { "type": [ "null", "string" ] }, "name": { "type": [ "null", "string" ] }, "email": { "type": [ "null", "string" ] }, "type": { "$ref": "#/components/schemas/OrganisationType" }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "OrganisationType": { "type": "integer", "default": 5 }, "Outcome": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "beneficiaryId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] } } }, "Pagination": { "type": "object", "properties": { "index": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "page": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "pageSize": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" } } }, "Portfolio": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "ownedBy": { "type": "string", "format": "uuid" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] } } }, "Priority": { "type": "integer" }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": [ "null", "string" ] }, "title": { "type": [ "null", "string" ] }, "status": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int32" }, "detail": { "type": [ "null", "string" ] }, "instance": { "type": [ "null", "string" ] } } }, "Programme": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "portfolioId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "ownedBy": { "type": "string", "format": "uuid" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "Project": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "endedAt": { "type": [ "null", "string" ], "format": "date-time" }, "sector": { "$ref": "#/components/schemas/IndustrySector" }, "projectType": { "$ref": "#/components/schemas/ProjectType" }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "ProjectType": { "type": "integer" }, "Risk": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "likelihood": { "$ref": "#/components/schemas/RiskLikelihood" }, "impact": { "$ref": "#/components/schemas/RiskImpact" }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] } } }, "RiskImpact": { "type": "integer" }, "RiskLikelihood": { "type": "integer" }, "Rule": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "version": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "SiteVisit": { "type": "object", "properties": { "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "visitedAt": { "type": "string", "format": "date-time" }, "inspectorName": { "type": [ "null", "string" ] }, "findings": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "createdBy": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" } } }, "Tenant": { "type": "object", "properties": { "creator": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/User" } ] }, "updator": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/User" } ] }, "id": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "createdAt": { "type": "string", "format": "date-time" }, "createdBy": { "type": "string", "format": "uuid" }, "updatedAt": { "type": [ "null", "string" ], "format": "date-time" }, "updatedBy": { "type": [ "null", "string" ], "format": "uuid" }, "name": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "UnitOfMeasure": { "type": "integer" }, "UpdateBeneficiaryRequest": { "required": [ "beneficiaryId", "name", "category", "location", "targetCount", "reachedCount" ], "type": "object", "properties": { "beneficiaryId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "category": { "type": "string" }, "location": { "type": "string" }, "targetCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "reachedCount": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" } } }, "UpdateBudgetRequest": { "required": [ "budgetId", "status" ], "type": "object", "properties": { "budgetId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateChangeRequest": { "required": [ "changeRequestId", "title", "justification", "revisedBudget", "status" ], "type": "object", "properties": { "changeRequestId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "justification": { "type": "string" }, "revisedBudget": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateComplianceItemRequest": { "required": [ "complianceItemId", "title", "requirements", "status" ], "type": "object", "properties": { "complianceItemId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "requirements": { "type": "string" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateContractRequest": { "required": [ "contractId", "status" ], "type": "object", "properties": { "contractId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "status": { "$ref": "#/components/schemas/ContractStatus" } } }, "UpdateDisbursementRequest": { "required": [ "disbursementId", "milestoneId", "amount" ], "type": "object", "properties": { "disbursementId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "null", "integer", "string" ], "format": "int64" }, "amount": { "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$", "type": [ "number", "string" ], "format": "double" } } }, "UpdateEvidenceRequest": { "required": [ "evidenceId", "version", "evidenceType", "status" ], "type": "object", "properties": { "evidenceId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "version": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateInstrumentRequest": { "required": [ "instructionId", "name", "code", "description", "status" ], "type": "object", "properties": { "instructionId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "code": { "type": "string" }, "description": { "type": "string" }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "UpdateIssueRequest": { "required": [ "issueId", "title", "description", "resolution", "resolvedAt", "priority", "status", "assignedTo" ], "type": "object", "properties": { "issueId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "title": { "type": "string" }, "description": { "type": "string" }, "resolution": { "type": "string" }, "resolvedAt": { "type": [ "null", "string" ], "format": "date-time" }, "priority": { "$ref": "#/components/schemas/Priority" }, "status": { "$ref": "#/components/schemas/ActivityStatus" }, "assignedTo": { "type": "string", "format": "uuid" } } }, "UpdateMilestoneRequest": { "required": [ "milestoneId", "dueAt", "name", "priority", "status" ], "type": "object", "properties": { "milestoneId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "dueAt": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "priority": { "$ref": "#/components/schemas/Priority" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateOrganisationRequest": { "required": [ "organisationId", "name", "registrationNo", "email", "type", "status" ], "type": "object", "properties": { "organisationId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "registrationNo": { "type": "string" }, "email": { "type": "string" }, "type": { "$ref": "#/components/schemas/OrganisationType" }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "UpdateOutcomeRequest": { "required": [ "outcomeId", "name", "description" ], "type": "object", "properties": { "outcomeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "UpdatePortfolioRequest": { "required": [ "portfolioId", "name", "description", "ownerId" ], "type": "object", "properties": { "portfolioId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" }, "ownerId": { "type": "string", "format": "uuid" } } }, "UpdateProgrammeRequest": { "required": [ "programmeId", "name", "ownerId", "status" ], "type": "object", "properties": { "programmeId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "ownerId": { "type": "string", "format": "uuid" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateProjectRequest": { "required": [ "projectId", "name", "description", "startedAt", "endedAt", "sector", "projectType" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "endedAt": { "type": [ "null", "string" ], "format": "date-time" }, "sector": { "$ref": "#/components/schemas/IndustrySector" }, "projectType": { "$ref": "#/components/schemas/ProjectType" } } }, "UpdateProjectStatusRequest": { "required": [ "projectId", "status" ], "type": "object", "properties": { "projectId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" } } }, "UpdateRiskRequest": { "required": [ "riskId", "likelihood", "impact", "name", "description" ], "type": "object", "properties": { "riskId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "likelihood": { "$ref": "#/components/schemas/RiskLikelihood" }, "impact": { "$ref": "#/components/schemas/RiskImpact" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "UpdateRuleRequest": { "required": [ "ruleId", "userId", "name", "description", "status", "version" ], "type": "object", "properties": { "ruleId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "userId": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" }, "status": { "$ref": "#/components/schemas/ActivityStatus" }, "version": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" } } }, "UpdateSiteVisitRequest": { "required": [ "siteVisitId", "inspectorName", "findings", "status", "visitedAt" ], "type": "object", "properties": { "siteVisitId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "inspectorName": { "type": "string" }, "findings": { "type": "string" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "visitedAt": { "type": "string", "format": "date-time" } } }, "UpdateTenantRequest": { "required": [ "tenantId", "name", "status" ], "type": "object", "properties": { "tenantId": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int64" }, "name": { "type": "string" }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "User": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "lastLoginAt": { "type": [ "null", "string" ], "format": "date-time" }, "email": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ActivityStatus" } } }, "UserFilterRequest": { "type": "object", "properties": { "status": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ActivityStatus" } ] }, "email": { "type": [ "null", "string" ] }, "sortBy": { "type": [ "null", "string" ] }, "sortDescending": { "type": "boolean", "default": false } } } }, "securitySchemes": { "Bearer": { "type": "http", "description": "JWT Authorization header using the Bearer scheme", "scheme": "bearer" }, "OAuth2": { "type": "oauth2", "description": "Interactive OAuth2 flow for authentication and authorization", "flows": { "authorizationCode": { "authorizationUrl": "https://sts.security.khongisa.co.za/connect/authorize", "tokenUrl": "https://sts.security.khongisa.co.za/connect/token", "scopes": { "openid": "OpenID Connect", "profile": "User Profile", "roles": "User Roles", "email": "User Email", "address": "User Address", "pfm-api-dev": "PFM API Scope" } } } } } }, "tags": [ { "name": "Users" }, { "name": "Projects" }, { "name": "Grants" }, { "name": "Governance" }, { "name": "Execution" }, { "name": "Evidence & M&E" }, { "name": "Communications" } ] }