]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blob - vendor/github.com/hashicorp/terraform/helper/resource/resource.go
Initial transfer of provider code
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / helper / resource / resource.go
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)