"log"
"strconv"
+ "github.com/hashicorp/terraform/config"
"github.com/hashicorp/terraform/terraform"
)
if err := rt.DiffDecode(d); err != nil {
log.Printf("[ERR] Error decoding ResourceTimeout: %s", err)
}
+ } else if s != nil {
+ if _, ok := s.Meta[TimeoutKey]; ok {
+ if err := rt.StateDecode(s); err != nil {
+ log.Printf("[ERR] Error decoding ResourceTimeout: %s", err)
+ }
+ }
} else {
log.Printf("[DEBUG] No meta timeoutkey found in Apply()")
}
}
}
+ // Resource-specific checks
+ for k, _ := range tsm {
+ if isReservedResourceFieldName(k) {
+ return fmt.Errorf("%s is a reserved field name for a resource", k)
+ }
+ }
+
return schemaMap(r.Schema).InternalValidate(tsm)
}
+func isReservedResourceFieldName(name string) bool {
+ for _, reservedName := range config.ReservedResourceFields {
+ if name == reservedName {
+ return true
+ }
+ }
+ return false
+}
+
// Data returns a ResourceData struct for this Resource. Each return value
// is a separate copy and can be safely modified differently.
//