@@ -17,7 +17,7 @@ var mutexKV = mutexkv.NewMutexKV()
17
17
18
18
// Provider returns a terraform.ResourceProvider.
19
19
func Provider () terraform.ResourceProvider {
20
- return & schema.Provider {
20
+ provider := & schema.Provider {
21
21
Schema : map [string ]* schema.Schema {
22
22
"credentials" : {
23
23
Type : schema .TypeString ,
@@ -391,9 +391,19 @@ func Provider() terraform.ResourceProvider {
391
391
},
392
392
393
393
ResourcesMap : ResourceMap (),
394
+ }
394
395
395
- ConfigureFunc : providerConfigure ,
396
+ provider .ConfigureFunc = func (d * schema.ResourceData ) (interface {}, error ) {
397
+ terraformVersion := provider .TerraformVersion
398
+ if terraformVersion == "" {
399
+ // Terraform 0.12 introduced this field to the protocol
400
+ // We can therefore assume that if it's missing it's 0.10 or 0.11
401
+ terraformVersion = "0.11+compatible"
402
+ }
403
+ return providerConfigure (d , terraformVersion )
396
404
}
405
+
406
+ return provider
397
407
}
398
408
399
409
// Generated resources: 73
@@ -608,12 +618,13 @@ func ResourceMapWithErrors() (map[string]*schema.Resource, error) {
608
618
)
609
619
}
610
620
611
- func providerConfigure (d * schema.ResourceData ) (interface {}, error ) {
621
+ func providerConfigure (d * schema.ResourceData , terraformVersion string ) (interface {}, error ) {
612
622
config := Config {
613
623
Project : d .Get ("project" ).(string ),
614
624
Region : d .Get ("region" ).(string ),
615
625
Zone : d .Get ("zone" ).(string ),
616
626
UserProjectOverride : d .Get ("user_project_override" ).(bool ),
627
+ terraformVersion : terraformVersion ,
617
628
}
618
629
619
630
// Add credential source
0 commit comments