package google import ( "fmt" "github.com/hashicorp/terraform/helper/schema" ) var schemaNodeConfig = &schema.Schema{ Type: schema.TypeList, Optional: true, Computed: true, ForceNew: true, MaxItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "machine_type": { Type: schema.TypeString, Optional: true, Computed: true, ForceNew: true, }, "disk_size_gb": { Type: schema.TypeInt, Optional: true, Computed: true, ForceNew: true, ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { value := v.(int) if value < 10 { errors = append(errors, fmt.Errorf( "%q cannot be less than 10", k)) } return }, }, "local_ssd_count": { Type: schema.TypeInt, Optional: true, Computed: true, ForceNew: true, ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { value := v.(int) if value < 0 { errors = append(errors, fmt.Errorf( "%q cannot be negative", k)) } return }, }, "oauth_scopes": { Type: schema.TypeList, Optional: true, Computed: true, ForceNew: true, Elem: &schema.Schema{ Type: schema.TypeString, StateFunc: func(v interface{}) string { return canonicalizeServiceScope(v.(string)) }, }, }, "service_account": { Type: schema.TypeString, Optional: true, Computed: true, ForceNew: true, }, "metadata": { Type: schema.TypeMap, Optional: true, ForceNew: true, Elem: schema.TypeString, }, "image_type": { Type: schema.TypeString, Optional: true, Computed: true, ForceNew: true, }, "labels": { Type: schema.TypeMap, Optional: true, ForceNew: true, Elem: schema.TypeString, }, "tags": { Type: schema.TypeList, Optional: true, ForceNew: true, Elem: &schema.Schema{Type: schema.TypeString}, }, }, }, }