Action and condition blocks of a lifecycle_rule block are both required, use MinItems in schema to enforce

This commit is contained in:
Patrick Decat 2017-07-04 13:56:57 +02:00
parent 40fad4beb5
commit c43b8b441e

View File

@ -88,6 +88,7 @@ func resourceStorageBucket() *schema.Resource {
"action": {
Type: schema.TypeSet,
Required: true,
MinItems: 1,
MaxItems: 1,
Set: resourceGCSBucketLifecycleRuleActionHash,
Elem: &schema.Resource{
@ -106,6 +107,7 @@ func resourceStorageBucket() *schema.Resource {
"condition": {
Type: schema.TypeSet,
Required: true,
MinItems: 1,
MaxItems: 1,
Set: resourceGCSBucketLifecycleRuleConditionHash,
Elem: &schema.Resource{
@ -484,10 +486,6 @@ func resourceGCSBucketLifecycleCreateOrUpdate(d *schema.ResourceData, sb *storag
if v, ok := lifecycle_rule["condition"]; ok {
condition := v.(*schema.Set).List()[0].(map[string]interface{})
if len(condition) < 1 {
return fmt.Errorf("At least one condition element is required")
}
target_lifecycle_rule.Condition = &storage.BucketLifecycleRuleCondition{}
if v, ok := condition["age"]; ok {