Provider Support¶
Audience: Beginners | Status: V1 Core | Reviewed against: source on 2026-09-25 (app v0.53.0)
CloudBlocks uses an Azure-first design: all built-in templates and learning scenarios use Azure resources. AWS and GCP support is provided through a provider mapping layer that translates Azure resource types to their cloud-equivalent counterparts. All three providers are available in the visual builder and Terraform starter export.
For details on provider coverage by resource category, see the table below.
Provider Coverage Summary¶
| Feature | Azure | AWS | GCP |
|---|---|---|---|
| Visual builder | ✅ Active | ✅ Active | ✅ Active |
| Templates & scenarios | ✅ Azure content | — None yet | — None yet |
| Validation engine | ✅ Full | ✅ Full | ✅ Full |
| Terraform starter code | ⚠️ Partial | ⚠️ Partial | ⚠️ Partial |
| Bicep export | ✅ Azure-only | — (Azure-only by design) | — (Azure-only by design) |
| Pulumi export | ✅ Azure-only | — (Planned for V2) | — (Planned for V2) |
AWS and GCP Terraform output includes # TODO comments for resource properties that the visual model does not capture. Review and fill in these fields before applying the generated code.
Resource-by-resource Terraform mapping¶
This table covers all 28 creation-palette resources. For Azure, Terraform export resolves the canonical model resourceType; an exact implementation emits the listed starter resource and an unsupported resource blocks export instead of silently selecting another service. AWS and GCP still use subtype/category adapters, where Fallback can represent a different service from the palette label. No entry promises deployability, Azure plan success, or complete networking semantics.
| Palette group | Resource | Azure | AWS | GCP |
|---|---|---|---|---|
| Network | Network | Container azurerm_virtual_network |
Container aws_vpc |
Container google_compute_network |
| Network | Subnet | Container azurerm_subnet |
Container aws_subnet |
Container google_compute_subnetwork |
| Network | NAT Gateway | Unsupported | Fallback aws_vpc |
Fallback google_compute_network |
| Network | Public IP | Unsupported | Fallback aws_vpc |
Fallback google_compute_network |
| Network | Route Table | Unsupported | Fallback aws_vpc |
Fallback google_compute_network |
| Network | Private Endpoint | Unsupported | Fallback aws_vpc |
Fallback google_compute_network |
| Delivery | DNS | Unsupported | Fallback aws_lb |
Fallback google_compute_backend_service |
| Delivery | CDN | Unsupported | Fallback aws_lb |
Fallback google_compute_backend_service |
| Delivery | Front Door | Unsupported | Fallback aws_lb |
Fallback google_compute_backend_service |
| Delivery | Internal LB | Unsupported | Fallback aws_lb |
Specific google_compute_url_map |
| Delivery | Application Gateway | Specific azurerm_application_gateway |
Specific aws_lb |
Specific google_compute_url_map |
| Compute | Functions | Specific azurerm_linux_function_app |
Specific aws_lambda_function |
Specific google_cloudfunctions2_function |
| Compute | App Service | Specific azurerm_linux_web_app |
Fallback aws_instance |
Fallback google_cloud_run_v2_service |
| Compute | Container Instances | Unsupported | Specific aws_ecs_service |
Specific google_cloud_run_v2_service |
| Compute | VM | Specific azurerm_linux_virtual_machine |
Specific aws_instance |
Specific google_compute_instance |
| Compute | Kubernetes | Unsupported | Fallback aws_instance |
Fallback google_cloud_run_v2_service |
| Data | Storage | Specific azurerm_storage_account |
Specific aws_s3_bucket |
Specific google_storage_bucket |
| Data | SQL Database | Specific azurerm_mssql_database |
Specific aws_db_instance |
Specific google_sql_database_instance |
| Data | Cosmos DB | Specific azurerm_cosmosdb_account |
Specific aws_dynamodb_table |
Specific google_firestore_database |
| Data | Redis Cache | Unsupported | Fallback aws_db_instance |
Fallback google_sql_database_instance |
| Messaging | Queue | Specific azurerm_servicebus_namespace |
Specific aws_sqs_queue |
Specific google_pubsub_topic |
| Messaging | Event Hubs | Unsupported | Specific aws_cloudwatch_event_bus |
Specific google_eventarc_trigger |
| Security | Key Vault | Unsupported | Fallback aws_iam_role |
Fallback google_compute_security_policy |
| Security | Firewall | Unsupported | Fallback aws_iam_role |
Specific google_compute_security_policy |
| Security | Network Security Group | Specific azurerm_network_security_group |
Fallback aws_iam_role |
Specific google_compute_security_policy |
| Security | Bastion | Unsupported | Fallback aws_iam_role |
Fallback google_compute_security_policy |
| Identity | Managed Identity | Specific azurerm_user_assigned_identity |
Fallback aws_iam_role |
Specific google_project_iam_member |
| Operations | Monitor | Specific azurerm_monitor_workspace |
Specific aws_cloudwatch_dashboard |
Specific google_monitoring_dashboard |
Important limitations: Azure now blocks unsupported canonical resources rather than emitting a category-default service. Service Bus emits a namespace starter, but queues/topics and application wiring remain manual. Private Endpoint remains unsupported until the model captures its subnet, target resource, and service-specific connection group. GCP Cloud Tasks still maps to Pub/Sub, and GCP Managed Identity uses an IAM member placeholder. SQL Database needs a server, and Application Gateway needs a dedicated subnet and additional frontend/backend wiring. Generic HTTP/DATA connections are not Private Endpoints or VNet Integration. Never apply generated code without review. The palette's starter/advanced tiers describe learning complexity, not Terraform maturity.
Provider Selector (Current State)¶
The menu bar shows three provider tabs: Azure, AWS, and GCP. Clicking a different provider tab creates a new provider-specific workspace after a confirmation dialog — your current workspace is preserved.
- Each provider workspace starts from a blank canvas (or from a template if you load one).
- Switching providers creates a separate workspace — it does not change your existing architecture in place.
- Previously generated code is cleared when you switch providers to avoid stale output.
- Each provider remembers your last entered region during the session.
Multi-Cloud Terraform Generation¶
CloudBlocks supports multi-cloud Terraform generation — each provider workspace generates provider-specific Terraform starter code for Azure, AWS, or GCP.
Learning focus
Multi-cloud support is a learning feature — it shows you the provider-specific resources and structure for the same architecture pattern. CloudBlocks does not deploy infrastructure or manage Terraform state.
Export Format by Provider¶
| Export Format | Providers Supported | Status |
|---|---|---|
| Terraform | Azure ✅, AWS ✅, GCP ✅ | V1 Core |
| Bicep | Azure only (by design) | Experimental |
| Pulumi | Azure only (multi-cloud in V2) | Experimental |
For details on exporting code, see Code Generation.
What's Next?¶
| Goal | Guide |
|---|---|
| Export Terraform starter code | Code Generation |
| Understand the building blocks | Core Concepts |
| Browse architecture patterns | Templates |