github.com/rstandt/terraform@v0.12.32-0.20230710220336-b1063613405c/builtin/providers/test/resource_defaults.go (about)

     1  package test
     2  
     3  import (
     4  	"fmt"
     5  	"math/rand"
     6  
     7  	"github.com/hashicorp/terraform/helper/schema"
     8  )
     9  
    10  func testResourceDefaults() *schema.Resource {
    11  	return &schema.Resource{
    12  		Create: testResourceDefaultsCreate,
    13  		Read:   testResourceDefaultsRead,
    14  		Delete: testResourceDefaultsDelete,
    15  		Update: testResourceDefaultsUpdate,
    16  
    17  		Importer: &schema.ResourceImporter{
    18  			State: schema.ImportStatePassthrough,
    19  		},
    20  
    21  		Schema: map[string]*schema.Schema{
    22  			"default_string": {
    23  				Type:     schema.TypeString,
    24  				Optional: true,
    25  				Default:  "default string",
    26  			},
    27  			"default_bool": {
    28  				Type:     schema.TypeString,
    29  				Optional: true,
    30  				Default:  true,
    31  			},
    32  			"nested": {
    33  				Type:     schema.TypeSet,
    34  				Optional: true,
    35  				ForceNew: true,
    36  				Elem: &schema.Resource{
    37  					Schema: map[string]*schema.Schema{
    38  						"string": {
    39  							Type:     schema.TypeString,
    40  							Optional: true,
    41  							Default:  "default nested",
    42  						},
    43  						"optional": {
    44  							Type:     schema.TypeString,
    45  							Optional: true,
    46  						},
    47  					},
    48  				},
    49  			},
    50  		},
    51  	}
    52  }
    53  
    54  func testResourceDefaultsCreate(d *schema.ResourceData, meta interface{}) error {
    55  	d.SetId(fmt.Sprintf("%x", rand.Int63()))
    56  	return testResourceDefaultsRead(d, meta)
    57  }
    58  
    59  func testResourceDefaultsUpdate(d *schema.ResourceData, meta interface{}) error {
    60  	return testResourceDefaultsRead(d, meta)
    61  }
    62  
    63  func testResourceDefaultsRead(d *schema.ResourceData, meta interface{}) error {
    64  	return nil
    65  }
    66  
    67  func testResourceDefaultsDelete(d *schema.ResourceData, meta interface{}) error {
    68  	d.SetId("")
    69  	return nil
    70  }