github.com/sarguru/terraform@v0.6.17-0.20160525232901-8fcdfd7e3dc9/builtin/providers/nsone/provider.go (about) 1 package nsone 2 3 import ( 4 "github.com/bobtfish/go-nsone-api" 5 "github.com/hashicorp/terraform/helper/schema" 6 "github.com/hashicorp/terraform/terraform" 7 ) 8 9 // Provider returns a terraform.ResourceProvider. 10 func Provider() terraform.ResourceProvider { 11 return &schema.Provider{ 12 Schema: map[string]*schema.Schema{ 13 "apikey": &schema.Schema{ 14 Type: schema.TypeString, 15 Required: true, 16 DefaultFunc: schema.EnvDefaultFunc("NSONE_APIKEY", nil), 17 Description: descriptions["api_key"], 18 }, 19 }, 20 ResourcesMap: map[string]*schema.Resource{ 21 "nsone_zone": zoneResource(), 22 "nsone_record": recordResource(), 23 "nsone_datasource": dataSourceResource(), 24 "nsone_datafeed": dataFeedResource(), 25 "nsone_monitoringjob": monitoringJobResource(), 26 "nsone_user": userResource(), 27 "nsone_apikey": apikeyResource(), 28 "nsone_team": teamResource(), 29 }, 30 ConfigureFunc: nsoneConfigure, 31 } 32 } 33 34 func nsoneConfigure(d *schema.ResourceData) (interface{}, error) { 35 n := nsone.New(d.Get("apikey").(string)) 36 n.Debug() 37 n.RateLimitStrategySleep() 38 return n, nil 39 } 40 41 var descriptions map[string]string 42 43 func init() { 44 descriptions = map[string]string{ 45 "api_key": "The nsone API key, this is required", 46 } 47 }