]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/helper/schema/provider.go
deps: use go modules for dep mgmt
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / helper / schema / provider.go
index d52d2f5f06362ac0bfdd56f1648c56cd63f69ffd..fb28b4151d4fae65c261b0ee7227889bcb0c2d50 100644 (file)
@@ -8,6 +8,7 @@ import (
        "sync"
 
        "github.com/hashicorp/go-multierror"
+       "github.com/hashicorp/terraform/config"
        "github.com/hashicorp/terraform/terraform"
 )
 
@@ -89,6 +90,13 @@ func (p *Provider) InternalValidate() error {
                validationErrors = multierror.Append(validationErrors, err)
        }
 
+       // Provider-specific checks
+       for k, _ := range sm {
+               if isReservedProviderFieldName(k) {
+                       return fmt.Errorf("%s is a reserved field name for a provider", k)
+               }
+       }
+
        for k, r := range p.ResourcesMap {
                if err := r.InternalValidate(nil, true); err != nil {
                        validationErrors = multierror.Append(validationErrors, fmt.Errorf("resource %s: %s", k, err))
@@ -104,6 +112,15 @@ func (p *Provider) InternalValidate() error {
        return validationErrors
 }
 
+func isReservedProviderFieldName(name string) bool {
+       for _, reservedName := range config.ReservedProviderFields {
+               if name == reservedName {
+                       return true
+               }
+       }
+       return false
+}
+
 // Meta returns the metadata associated with this provider that was
 // returned by the Configure call. It will be nil until Configure is called.
 func (p *Provider) Meta() interface{} {