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

     1  package test
     2  
     3  import (
     4  	"github.com/hashicorp/terraform/helper/schema"
     5  )
     6  
     7  func testResourceRequiredMin() *schema.Resource {
     8  	return &schema.Resource{
     9  		Create: testResourceRequiredMinCreate,
    10  		Read:   testResourceRequiredMinRead,
    11  		Update: testResourceRequiredMinUpdate,
    12  		Delete: testResourceRequiredMinDelete,
    13  
    14  		CustomizeDiff: func(d *schema.ResourceDiff, _ interface{}) error {
    15  			if d.HasChange("dependent_list") {
    16  				d.SetNewComputed("computed_list")
    17  			}
    18  			return nil
    19  		},
    20  
    21  		Schema: map[string]*schema.Schema{
    22  			"min_items": {
    23  				Type:     schema.TypeList,
    24  				Optional: true,
    25  				MinItems: 2,
    26  				Elem: &schema.Resource{
    27  					Schema: map[string]*schema.Schema{
    28  						"val": {
    29  							Type:     schema.TypeString,
    30  							Required: true,
    31  						},
    32  					},
    33  				},
    34  			},
    35  			"required_min_items": {
    36  				Type:     schema.TypeList,
    37  				Required: true,
    38  				MinItems: 2,
    39  				Elem: &schema.Resource{
    40  					Schema: map[string]*schema.Schema{
    41  						"val": {
    42  							Type:     schema.TypeString,
    43  							Required: true,
    44  						},
    45  					},
    46  				},
    47  			},
    48  		},
    49  	}
    50  }
    51  
    52  func testResourceRequiredMinCreate(d *schema.ResourceData, meta interface{}) error {
    53  	d.SetId("testId")
    54  	return testResourceRequiredMinRead(d, meta)
    55  }
    56  
    57  func testResourceRequiredMinRead(d *schema.ResourceData, meta interface{}) error {
    58  	return nil
    59  }
    60  
    61  func testResourceRequiredMinUpdate(d *schema.ResourceData, meta interface{}) error {
    62  	return testResourceRequiredMinRead(d, meta)
    63  }
    64  
    65  func testResourceRequiredMinDelete(d *schema.ResourceData, meta interface{}) error {
    66  	d.SetId("")
    67  	return nil
    68  }