basePath: / definitions: types.DriverMessage: properties: event: description: Event Name e.g. `create` type: string id: type: string payload: description: JSON Payload type: string run_id: type: string type: object types.Log: properties: driver: description: Driver is the name of the driver that generated the log. This helps in identifying which component of the system produced the log. type: string message: description: Message is the actual log message. This contains the information or error details that you want to record. type: string pipeline: description: Pipeline is the name of the pipeline associated with the log. This allows you to trace logs back to specific pipelines. type: string runid: description: RunID is a unique identifier for the workflow run. This allows you to group logs by specific runs of your pipelines. type: string timestamp: description: Timestamp is the time when the log was created. This is useful for ordering logs and understanding the sequence of events. type: string type: object types.Pipeline: properties: description: type: string metadata: additionalProperties: type: string type: object name: type: string resource: type: string steps: items: $ref: '#/definitions/types.Step' type: array version: type: string type: object types.Resource: properties: id: type: string metadata: additionalProperties: type: string type: object name: type: string pipeline: type: string resource: type: string spec: {} type: object types.ResourceDefinition: properties: description: type: string id: type: string name: type: string schema: {} version: type: string type: object types.Step: properties: driver: type: string id: type: string name: type: string type: object host: localhost:8080 info: contact: email: info@open.ug name: Conveyor Support url: https://conveyor.open.ug/ description: Conveyor is a lightweight, distributed CI/CD engine built for platform developers who demand simplicity without compromise. license: name: Apache 2.0 url: https://opensource.org/license/apache-2-0 title: Conveyor CI API version: 0.5.0 paths: /drivers/broadcast-message: post: consumes: - application/json description: Create a new message and broadcast it to drivers via NATS parameters: - description: Driver message object in: body name: message required: true schema: $ref: '#/definitions/types.DriverMessage' produces: - application/json responses: "200": description: Message published successfully schema: additionalProperties: true type: object "400": description: Bad request - Invalid payload schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Publish a message tags: - drivers /health: get: consumes: - application/json description: Get the health status of the API server produces: - application/json responses: "200": description: Health status schema: additionalProperties: true type: object summary: Health check tags: - health /logs: get: consumes: - application/json description: Returns logs filtered by pipeline, driver, and runid parameters: - description: Pipeline name in: query name: pipeline type: string - description: Driver name in: query name: driver type: string - description: Run ID in: query name: runid type: string produces: - application/json responses: "200": description: List of logs schema: items: $ref: '#/definitions/types.Log' type: array "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Get log entries tags: - logs post: consumes: - application/json description: Accepts a JSON log entry and stores it in BadgerDB parameters: - description: Log entry object in: body name: log required: true schema: $ref: '#/definitions/types.Log' produces: - application/json responses: "201": description: Log created schema: type: string "400": description: Bad request - Invalid payload schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Create a log entry tags: - logs /logs/pipeline/{runid}: get: consumes: - application/json description: Streams logs for a specific pipeline run ID using Server-Sent Events (SSE) parameters: - description: Run ID in: path name: runid required: true type: string produces: - application/json responses: "200": description: Stream of log entries schema: type: string "400": description: Bad request - Invalid run ID schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Stream logs by pipeline run ID tags: - logs /logs/streams/{drivername}/{runid}: get: consumes: - application/json description: Streams logs for a specific driver and run ID using Server-Sent Events (SSE) parameters: - description: Driver Name in: path name: drivername required: true type: string - description: Run ID in: path name: runid required: true type: string produces: - application/json responses: "200": description: Stream of log entries schema: type: string "400": description: Bad request - Invalid driver name or run ID schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Stream logs by driver name and run ID tags: - logs /pipelines: post: consumes: - application/json description: Create a new pipeline with the specified configuration parameters: - description: Pipeline object in: body name: pipeline required: true schema: $ref: '#/definitions/types.Pipeline' produces: - application/json responses: "201": description: Pipeline created successfully schema: $ref: '#/definitions/types.Pipeline' "400": description: Bad request - Invalid payload schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Create a new pipeline tags: - pipelines /pipelines/{name}: delete: consumes: - application/json description: Delete a pipeline by its name parameters: - description: Pipeline name in: path name: name required: true type: string produces: - application/json responses: "204": description: Pipeline deleted successfully "404": description: Not found - Pipeline does not exist schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Delete a pipeline by name tags: - pipelines get: consumes: - application/json description: Retrieve a pipeline by its name parameters: - description: Pipeline name in: path name: name required: true type: string produces: - application/json responses: "200": description: Pipeline retrieved successfully schema: $ref: '#/definitions/types.Pipeline' "404": description: Not found - Pipeline does not exist schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Get a pipeline by name tags: - pipelines put: consumes: - application/json description: Update an existing pipeline with new configuration parameters: - description: Pipeline name in: path name: name required: true type: string - description: Updated pipeline object in: body name: pipeline required: true schema: $ref: '#/definitions/types.Pipeline' produces: - application/json responses: "200": description: Pipeline updated successfully schema: $ref: '#/definitions/types.Pipeline' "400": description: Bad request - Invalid payload schema: additionalProperties: true type: object "404": description: Not found - Pipeline does not exist schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Update an existing pipeline tags: - pipelines /resource-definitions: post: consumes: - application/json description: Create a new resource definition with the specified configuration parameters: - description: Resource definition object in: body name: resourceDefinition required: true schema: $ref: '#/definitions/types.ResourceDefinition' produces: - application/json responses: "201": description: Resource definition created successfully schema: $ref: '#/definitions/types.ResourceDefinition' "400": description: Bad request - Invalid payload schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Create a resource definition tags: - resource-definitions /resource-definitions/{name}: delete: consumes: - application/json description: Delete a specific resource definition by its name parameters: - description: Resource definition name in: path name: name required: true type: string produces: - application/json responses: "204": description: Resource definition deleted successfully schema: type: string "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Delete a resource definition tags: - resource-definitions get: consumes: - application/json description: Retrieve a specific resource definition by its name parameters: - description: Resource definition name in: path name: name required: true type: string produces: - application/json responses: "200": description: Resource definition object schema: $ref: '#/definitions/types.ResourceDefinition' "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Get a resource definition tags: - resource-definitions put: consumes: - application/json description: Update a specific resource definition by its name parameters: - description: Resource definition name in: path name: name required: true type: string - description: Resource definition object in: body name: resourceDefinition required: true schema: $ref: '#/definitions/types.ResourceDefinition' produces: - application/json responses: "200": description: Resource definition updated successfully schema: $ref: '#/definitions/types.ResourceDefinition' "400": description: Bad request - Invalid payload or missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Update a resource definition tags: - resource-definitions /resource-definitions/apply: post: consumes: - application/json description: Create a new resource definition or update existing one by name parameters: - description: Resource definition object in: body name: resourceDefinition required: true schema: $ref: '#/definitions/types.ResourceDefinition' produces: - application/json responses: "201": description: Resource definition created or updated successfully schema: $ref: '#/definitions/types.ResourceDefinition' "400": description: Bad request - Invalid payload or missing name schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Create or update a resource definition tags: - resource-definitions /resources: post: consumes: - application/json description: Create a new resource with the specified type and configuration parameters: - description: Resource object in: body name: resource required: true schema: $ref: '#/definitions/types.Resource' produces: - application/json responses: "201": description: Resource created successfully schema: additionalProperties: true type: object "400": description: Bad request - Invalid payload or validation failed schema: additionalProperties: true type: object "404": description: Resource definition not found schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Create a new resource tags: - resources /resources/{type}: get: consumes: - application/json description: List all resources of a specific type parameters: - description: Resource type in: path name: type required: true type: string produces: - application/json responses: "200": description: List of resources schema: items: $ref: '#/definitions/types.Resource' type: array "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: List resources tags: - resources /resources/{type}/{name}: delete: consumes: - application/json description: Delete a specific resource by its name and type parameters: - description: Resource type in: path name: type required: true type: string - description: Resource name in: path name: name required: true type: string produces: - application/json responses: "204": description: Resource deleted successfully schema: type: string "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Delete a resource tags: - resources get: consumes: - application/json description: Retrieve a specific resource by its name and type parameters: - description: Resource type in: path name: type required: true type: string - description: Resource name in: path name: name required: true type: string produces: - application/json responses: "200": description: Resource object schema: $ref: '#/definitions/types.Resource' "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Get a resource tags: - resources put: consumes: - application/json description: Update a specific resource by its name and type parameters: - description: Resource type in: path name: type required: true type: string - description: Resource name in: path name: name required: true type: string - description: Resource object in: body name: resource required: true schema: $ref: '#/definitions/types.Resource' produces: - application/json responses: "200": description: Resource updated successfully schema: $ref: '#/definitions/types.Resource' "400": description: Bad request - Invalid payload or missing parameters schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Update a resource tags: - resources /resources/{type}/{name}/{version}: get: consumes: - application/json description: Retrieve a specific resource by its name, type, and version parameters: - description: Resource type in: path name: type required: true type: string - description: Resource name in: path name: name required: true type: string - description: Resource version in: path name: version required: true type: string produces: - application/json responses: "200": description: Resource object schema: $ref: '#/definitions/types.Resource' "400": description: Bad request - Missing parameters schema: additionalProperties: true type: object "404": description: Resource not found schema: additionalProperties: true type: object "500": description: Internal server error schema: additionalProperties: true type: object summary: Get a resource by version tags: - resources schemes: - http - https swagger: "2.0"