2015-06-04 00:01:22 +02:00
package datadog
import (
2015-10-23 05:42:19 +02:00
"log"
2016-12-08 11:17:42 +01:00
"errors"
2017-02-27 11:36:37 +01:00
2015-06-04 00:01:22 +02:00
"github.com/hashicorp/terraform/helper/schema"
"github.com/hashicorp/terraform/terraform"
)
func Provider ( ) terraform . ResourceProvider {
return & schema . Provider {
Schema : map [ string ] * schema . Schema {
"api_key" : & schema . Schema {
Type : schema . TypeString ,
Required : true ,
DefaultFunc : schema . EnvDefaultFunc ( "DATADOG_API_KEY" , nil ) ,
} ,
"app_key" : & schema . Schema {
Type : schema . TypeString ,
Required : true ,
DefaultFunc : schema . EnvDefaultFunc ( "DATADOG_APP_KEY" , nil ) ,
} ,
} ,
2015-10-23 05:42:19 +02:00
2015-06-04 00:01:22 +02:00
ResourcesMap : map [ string ] * schema . Resource {
2017-03-14 18:21:50 +01:00
"datadog_downtime" : resourceDatadogDowntime ( ) ,
2016-06-15 18:44:49 +02:00
"datadog_monitor" : resourceDatadogMonitor ( ) ,
"datadog_timeboard" : resourceDatadogTimeboard ( ) ,
2017-02-27 11:36:37 +01:00
"datadog_user" : resourceDatadogUser ( ) ,
2015-06-04 00:01:22 +02:00
} ,
2015-10-23 05:42:19 +02:00
2015-06-04 00:01:22 +02:00
ConfigureFunc : providerConfigure ,
}
}
2015-10-23 05:42:19 +02:00
func providerConfigure ( d * schema . ResourceData ) ( interface { } , error ) {
config := Config {
APIKey : d . Get ( "api_key" ) . ( string ) ,
APPKey : d . Get ( "app_key" ) . ( string ) ,
}
log . Println ( "[INFO] Initializing Datadog client" )
2016-12-08 11:17:42 +01:00
client := config . Client ( )
ok , err := client . Validate ( )
if err != nil {
return client , err
}
if ok == false {
return client , errors . New ( ` No valid credential sources found for Datadog Provider. Please see https://terraform.io/docs/providers/datadog/index.html for more information on providing credentials for the Datadog Provider ` )
}
return client , nil
2015-06-04 00:01:22 +02:00
}