github.com/jrperritt/terraform@v0.1.1-0.20170525065507-96f391dafc38/helper/resource/resource.go (about)

     1  package resource
     2  
     3  import (
     4  	"github.com/hashicorp/terraform/helper/config"
     5  	"github.com/hashicorp/terraform/terraform"
     6  )
     7  
     8  type Resource struct {
     9  	ConfigValidator *config.Validator
    10  	Create          CreateFunc
    11  	Destroy         DestroyFunc
    12  	Diff            DiffFunc
    13  	Refresh         RefreshFunc
    14  	Update          UpdateFunc
    15  }
    16  
    17  // CreateFunc is a function that creates a resource that didn't previously
    18  // exist.
    19  type CreateFunc func(
    20  	*terraform.InstanceState,
    21  	*terraform.InstanceDiff,
    22  	interface{}) (*terraform.InstanceState, error)
    23  
    24  // DestroyFunc is a function that destroys a resource that previously
    25  // exists using the state.
    26  type DestroyFunc func(
    27  	*terraform.InstanceState,
    28  	interface{}) error
    29  
    30  // DiffFunc is a function that performs a diff of a resource.
    31  type DiffFunc func(
    32  	*terraform.InstanceState,
    33  	*terraform.ResourceConfig,
    34  	interface{}) (*terraform.InstanceDiff, error)
    35  
    36  // RefreshFunc is a function that performs a refresh of a specific type
    37  // of resource.
    38  type RefreshFunc func(
    39  	*terraform.InstanceState,
    40  	interface{}) (*terraform.InstanceState, error)
    41  
    42  // UpdateFunc is a function that is called to update a resource that
    43  // previously existed. The difference between this and CreateFunc is that
    44  // the diff is guaranteed to only contain attributes that don't require
    45  // a new resource.
    46  type UpdateFunc func(
    47  	*terraform.InstanceState,
    48  	*terraform.InstanceDiff,
    49  	interface{}) (*terraform.InstanceState, error)