A standardized protocol for cloud service providers to integrate with enterprise-grade multi-cloud management platforms. Simplify your integration, expand your market reach.
The C4 Protocol (Cloud Computing Common Connector) provides a universal API specification that enables cloud service providers to integrate with multi-cloud management platforms. This repository hosts the official API specifications and documentation website.
Are you a CSP? Come onboard! Joining us is quite simple, here’s everything you need to know to join the Biggest Cloud resource marketplace.
Let’s start with some general details.
The Elemento C4 protocol is a standardized protocol that allows CSP to communicate with Dynamo’s environment which is used through Mesons to onboard new cloud providers from anywhere!
graph TD
Enterprise[Enterprise Customers] --> MCM[Multi-Cloud Management Platforms]
MCM --> C4[C4 Protocol]
C4 --> CSP1[Cloud Service Provider 1]
C4 --> CSP2[Cloud Service Provider 2]
C4 --> CSP3[Cloud Service Provider 3]
classDef enterprise fill:#f9f,stroke:#333,stroke-width:2px;
classDef platform fill:#bbf,stroke:#333,stroke-width:2px;
classDef protocol fill:#bfb,stroke:#333,stroke-width:2px;
classDef provider fill:#fbb,stroke:#333,stroke-width:2px;
class Enterprise enterprise;
class MCM platform;
class C4 protocol;
class CSP1,CSP2,CSP3 provider;
sequenceDiagram
participant Client as Enterprise Client
participant MCM as Multi-Cloud Manager
participant C4 as C4 Protocol API
participant CSP as Cloud Service Provider
Client->>MCM: Request resource creation
MCM->>C4: Translate to C4 API call
C4->>CSP: Forward standardized request
CSP->>C4: Return provider-specific response
C4->>MCM: Normalize response
MCM->>Client: Present unified result
flowchart LR
subgraph "C4 Protocol Services"
Meson[Meson - Compute\nPort 7777]
Storage[Storage\nPort 7772]
PaaS[PaaS Services]
SaaS[SaaS Services]
end
subgraph "Cloud Provider"
VMs[Virtual Machines]
Volumes[Storage Volumes]
K8s[Kubernetes]
S3[Object Storage]
DB[Databases]
LB[Load Balancers]
end
Meson --> VMs
Storage --> Volumes
PaaS --> K8s
PaaS --> S3
PaaS --> DB
PaaS --> LB
SaaS --> Apps[Managed Applications]
- Market Access: Tap into a growing ecosystem of enterprise customers seeking multi-cloud solutions
- Standardized Integration: Simple API compliance process with clear documentation and support
- Competitive Edge: Join leading providers in offering seamless multi-cloud capabilities
- Enterprise Ready: Meet enterprise requirements for cloud service integration and management
Endpoints for virtual machine management on the cloud provider. The matcher server listens on port 7777.
GET /api/v1.0/status- Returns details in plain text format about the Meson providerGET /api/v1.0/statusjson- Returns details in JSON format about the Meson provider
GET /api/v1.0/running- List running instances with detailed status informationGET /api/v1.0/canallocate- Check if a configuration can be allocated on the cloud providerPOST /api/v1.0/register- Create new instances with specified configurationsDELETE /api/v1.0/unregister- Remove instances and cleanup resources
Endpoints for disk/volume management on the cloud provider. The storage server listens on port 7772.
POST /api/v1.0/create- Create a disk on the cloud providerPOST /api/v1.0/info- Returns information about a disk by volume IDPOST /api/v1.0/accessible- Returns all visible disks for a clientPOST /api/v1.0/destroy- Delete a disk on the cloud providerGET /api/v1.0/cancreate- Check if a volume configuration can be created
Platform as a Service endpoints for various cloud services. Each service follows a consistent pattern of endpoints.
POST /api/v1.0/s3/create- Create a new S3 bucketGET /api/v1.0/s3/info- Get information about an S3 bucketGET /api/v1.0/s3/running- List all S3 bucketsDELETE /api/v1.0/s3/delete- Delete an S3 bucket
POST /api/v1.0/kaas/create- Create a new Kubernetes clusterGET /api/v1.0/kaas/info- Get information about a Kubernetes clusterGET /api/v1.0/kaas/running- List all Kubernetes clustersDELETE /api/v1.0/kaas/delete- Delete a Kubernetes cluster
POST /api/v1.0/loadbalancer/create- Create a new load balancerGET /api/v1.0/loadbalancer/info- Get information about a load balancerGET /api/v1.0/loadbalancer/running- List all load balancersDELETE /api/v1.0/loadbalancer/delete- Delete a load balancer
POST /api/v1.0/elasticip/create- Create a new elastic IPGET /api/v1.0/elasticip/info- Get information about an elastic IPGET /api/v1.0/elasticip/running- List all elastic IPsDELETE /api/v1.0/elasticip/delete- Delete an elastic IP
POST /api/v1.0/dbaas/create- Create a new database instanceGET /api/v1.0/dbaas/info- Get information about a database instanceGET /api/v1.0/dbaas/running- List all database instancesDELETE /api/v1.0/dbaas/delete- Delete a database instance
Software as a Service endpoints for managed applications.
POST /api/v1.0/jupyter/create- Create a new Jupyter notebook instanceGET /api/v1.0/jupyter/info- Get information about a Jupyter notebook instanceGET /api/v1.0/jupyter/running- List all Jupyter notebook instancesDELETE /api/v1.0/jupyter/delete- Delete a Jupyter notebook instance
Many endpoints support both synchronous and asynchronous operations via the async header:
- When set to
true, the response includes apoolingURLto check operation status - When set to
false, the operation completes before responding
All API responses follow a consistent JSON structure with:
- Resource identifiers (UUIDs)
- Resource metadata
- Operation status
- Error information when applicable