helper/schema: start the resource importer

This commit is contained in:
Mitchell Hashimoto 2016-04-26 09:06:42 -07:00
parent 5e127a62c1
commit 4e9877179c
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A
1 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,30 @@
package schema
// ResourceImporter defines how a resource is imported in Terraform. This
// can be set onto a Resource struct to make it Importable. Not all resources
// have to be importable; if a Resource doesn't have a ResourceImporter then
// it won't be importable.
//
// "Importing" in Terraform is the process of taking an already-created
// resource and bringing it under Terraform management. This can include
// updating Terraform state, generating Terraform configuration, etc.
type ResourceImporter struct {
// The functions below must all be implemented for importing to work.
// State is called to convert an ID to one or more InstanceState to
// insert into the Terraform state.
State StateFunc
}
// StateFunc is the function called to import a resource into the
// Terraform state. It is given a ResourceData with only ID set. This
// ID is going to be an arbitrary value given by the user and may not map
// directly to the ID format that the resource expects, so that should
// be validated.
//
// This should return a slice of ResourceData that turn into the state
// that was imported. This might be as simple as returning only the argument
// that was given to the function. In other cases (such as AWS security groups),
// an import may fan out to multiple resources and this will have to return
// multiple.
type StateFunc func(*ResourceData, interface{}) ([]*ResourceData, error)