diff --git a/terraform/provider/main.go b/terraform/provider/main.go new file mode 100644 index 0000000..ccc1be6 --- /dev/null +++ b/terraform/provider/main.go @@ -0,0 +1,41 @@ +package main + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/plugin" +) + +func main() { + plugin.Serve(&plugin.ServeOpts{ + ProviderFunc: Provider, + }) +} + +func Provider() *schema.Provider { + return &schema.Provider{ + Schema: map[string]*schema.Schema{ + "api_url": { + Type: schema.TypeString, + Required: true, + DefaultFunc: schema.EnvDefaultFunc("TELECOM_API_URL", "http://localhost:8000"), + Description: "The base URL of the Telecom API server.", + }, + "api_key": { + Type: schema.TypeString, + Optional: true, + Sensitive: true, + DefaultFunc: schema.EnvDefaultFunc("TELECOM_API_KEY", nil), + Description: "API key for authenticating with the Telecom API.", + }, + }, + ResourcesMap: map[string]*schema.Resource{ + "telecom_subscriber": resourceSubscriber(), + "telecom_rating_plan": resourceRatingPlan(), + }, + DataSourcesMap: map[string]*schema.Resource{ + "telecom_subscriber": dataSourceSubscriber(), + "telecom_system_stats": dataSourceSystemStats(), + }, + ConfigureContextFunc: providerConfigure, + } +}