How hashicorp/terraform-provider-azurerm works
AzureRM is a Terraform provider for configuring and managing Azure Resource Manager resources. Terraform supplies provider configuration and resource operations; the provider builds authenticated clients, registers service-specific resources and data sources, and their lifecycle handlers call Azure APIs and map responses back to Terraform state. The tree documents broad coverage across application hosting, storage, data protection, integration, and platform services. Source excerpts are partial, so the graph captures the documented provider structure and representative service paths rather than asserting every internal call.
Main entry points: services.go Service registry · client.go Azure clients · provider/provider.go Provider entry · framework/provider.go Framework adapter
Components 21
Terraform interface
- Provider entry
internal/provider/provider.go - Framework adapter
internal/provider/framework/provider.go - Resource lifecycle SDK
internal/sdk/resource.go - Resource ID functions
internal/provider/function/parse_resource_id.go
Provider core
- Provider features
internal/provider/features.go - Client builder
internal/clients/builder.go - Authentication
internal/clients/auth.go - Azure clients
internal/clients/client.go - Service registry
internal/provider/services.go - Preflight validation
internal/preflight/validate.go
Applications and data
- App Service resources
internal/services/appservice/registration.go - Storage resources
internal/services/storage/storage_account_resource.go - ML datastore
internal/services/machinelearning/machine_learning_datastore_blobstorage_resource.go - Backup policies
internal/services/dataprotection/data_protection_backup_policy_blob_storage_resource.go - Data Factory links
internal/services/datafactory/data_factory_linked_service_azure_blob_storage_resource.go
Azure platform services
- API Management
internal/services/apimanagement/registration.go - Authorization
internal/services/authorization/registration.go - IoT Hub endpoints
internal/services/iothub/iothub_endpoint_storage_container_resource.go - Front Door rules
internal/services/frontdoor/frontdoor_rules_engine_resource.go
Other components
- Terraform Core
- Azure Resource Manager
Connections 37
- Terraform Core → Provider entry: configures and operates
- Provider entry → Provider features: sets defaults
- Provider entry → Client builder: builds clients
- Client builder → Authentication: resolves credentials
- Client builder → Azure clients: creates
- Provider entry → Service registry: registers services
- Provider entry → Framework adapter: exposes provider
- Framework adapter → Resource lifecycle SDK: adapts lifecycle
- Framework adapter → Preflight validation: validates configuration
- Terraform Core → Resource ID functions: invokes
- Service registry → App Service resources: registers
- Service registry → Storage resources: registers
- Service registry → ML datastore: registers
- Service registry → Backup policies: registers
- Service registry → Data Factory links: registers
- Service registry → API Management: registers
- Service registry → Authorization: registers
- Service registry → IoT Hub endpoints: registers
- Service registry → Front Door rules: registers
- App Service resources → Azure clients: uses service clients
- Storage resources → Azure clients: uses service clients
- ML datastore → Azure clients: uses service clients
- Backup policies → Azure clients: uses service clients
- Data Factory links → Azure clients: uses service clients
- API Management → Azure clients: uses service clients
- Authorization → Azure clients: uses service clients
- IoT Hub endpoints → Azure clients: uses service clients
- Front Door rules → Azure clients: uses service clients
- App Service resources → Azure Resource Manager: manages resources
- Storage resources → Azure Resource Manager: manages resources
- ML datastore → Azure Resource Manager: manages datastores
- Backup policies → Azure Resource Manager: manages backups
- Data Factory links → Azure Resource Manager: manages linked services
- API Management → Azure Resource Manager: manages APIs
- Authorization → Azure Resource Manager: manages access
- IoT Hub endpoints → Azure Resource Manager: updates routing
- Front Door rules → Azure Resource Manager: configures rules