@@ -351,7 +351,7 @@ func resourceBucketLifecycleUpdate(ctx context.Context, conn *s3.Client, d *sche
351351 return nil
352352 }
353353
354- var rules []s3Types.LifecycleRule
354+ rules := make ( []s3Types.LifecycleRule , 0 , len ( lifecycleRules ))
355355
356356 for i , lifecycleRule := range lifecycleRules {
357357 r := lifecycleRule .(map [string ]interface {})
@@ -361,7 +361,7 @@ func resourceBucketLifecycleUpdate(ctx context.Context, conn *s3.Client, d *sche
361361 // Filter
362362 prefix := r ["prefix" ].(string )
363363 tags := ExpandObjectBucketTags (r ["tags" ])
364- ruleHasPrefix := & prefix != nil
364+ ruleHasPrefix := prefix != ""
365365 filter := & s3Types.LifecycleRuleFilter {}
366366
367367 if len (tags ) > 1 || (ruleHasPrefix && len (tags ) == 1 ) {
@@ -437,16 +437,6 @@ func resourceBucketLifecycleUpdate(ctx context.Context, conn *s3.Client, d *sche
437437 }
438438 }
439439
440- // As a lifecycle rule requires 1 or more transition/expiration actions,
441- // we explicitly pass a default ExpiredObjectDeleteMarker value to be able to create
442- // the rule while keeping the policy unaffected if the conditions are not met.
443- //if rule.Expiration == nil && rule.NoncurrentVersionExpiration == nil &&
444- // rule.Transitions == nil && rule.NoncurrentVersionTransitions == nil &&
445- // rule.AbortIncompleteMultipartUpload == nil {
446- // //rule.Expiration = &s3Types.LifecycleExpiration{}
447- // rule.Transitions = []s3Types.Transition{}
448- //}
449-
450440 rules = append (rules , rule )
451441 }
452442
@@ -610,8 +600,8 @@ func resourceObjectBucketRead(ctx context.Context, d *schema.ResourceData, m int
610600 }
611601 }
612602 } else {
613- if lifecycleRule .Filter != nil && lifecycleRule .Filter .Prefix != nil { //nolint:staticcheck
614- rule ["prefix" ] = aws .ToString (lifecycleRule .Filter .Prefix ) //nolint:staticcheck
603+ if lifecycleRule .Filter != nil && lifecycleRule .Filter .Prefix != nil {
604+ rule ["prefix" ] = aws .ToString (lifecycleRule .Filter .Prefix )
615605 }
616606 }
617607
@@ -676,7 +666,6 @@ func resourceObjectBucketDelete(ctx context.Context, d *schema.ResourceData, m i
676666 _ , err = s3Client .DeleteBucket (ctx , & s3.DeleteBucketInput {
677667 Bucket : scw .StringPtr (bucketName ),
678668 })
679-
680669 if err != nil {
681670 var noSuchBucket * s3Types.NoSuchBucket
682671 if errors .As (err , & noSuchBucket ) {
@@ -688,10 +677,9 @@ func resourceObjectBucketDelete(ctx context.Context, d *schema.ResourceData, m i
688677 nObjectDeleted , err = emptyBucket (ctx , s3Client , bucketName , true )
689678 if err != nil {
690679 return diag .FromErr (fmt .Errorf ("error S3 bucket force_destroy: %s" , err ))
691- } else {
692- log .Printf ("[DEBUG] Deleted %d S3 objects" , nObjectDeleted )
693680 }
694- // Try to delete bucket again after deleting objects
681+ log .Printf ("[DEBUG] Deleted %d S3 objects" , nObjectDeleted )
682+
695683 return resourceObjectBucketDelete (ctx , d , m )
696684 }
697685 }
@@ -723,27 +711,26 @@ func resourceObjectBucketVersioningUpdate(ctx context.Context, s3conn *s3.Client
723711 return nil
724712}
725713
726- //
727- //func resourceObjectBucketVersioningCreate(ctx context.Context, s3conn *s3.Client, d *schema.ResourceData) error {
728- // v := d.Get("versioning").([]interface{})
729- // bucketName := d.Get("name").(string)
730- // vc := expandObjectBucketVersioning(v)
731- // if vc.Status == "" {
732- // return nil
733- // }
734- // i := &s3.PutBucketVersioningInput{
735- // Bucket: scw.StringPtr(bucketName),
736- // VersioningConfiguration: vc,
737- // }
738- // tflog.Debug(ctx, fmt.Sprintf("S3 put bucket versioning: %#v", i))
739- //
740- // _, err := s3conn.PutBucketVersioning(ctx, i)
741- // if err != nil {
742- // return fmt.Errorf("error putting S3 versioning: %s", err)
743- // }
744- //
745- // return nil
746- //}
714+ func resourceObjectBucketVersioningCreate (ctx context.Context , s3conn * s3.Client , d * schema.ResourceData ) error { //nolint:unused
715+ v := d .Get ("versioning" ).([]interface {})
716+ bucketName := d .Get ("name" ).(string )
717+ vc := expandObjectBucketVersioning (v )
718+ if vc .Status == "" {
719+ return nil
720+ }
721+ i := & s3.PutBucketVersioningInput {
722+ Bucket : scw .StringPtr (bucketName ),
723+ VersioningConfiguration : vc ,
724+ }
725+ tflog .Debug (ctx , fmt .Sprintf ("S3 put bucket versioning: %#v" , i ))
726+
727+ _ , err := s3conn .PutBucketVersioning (ctx , i )
728+ if err != nil {
729+ return fmt .Errorf ("error putting S3 versioning: %s" , err )
730+ }
731+
732+ return nil
733+ }
747734
748735func resourceS3BucketCorsUpdate (ctx context.Context , s3conn * s3.Client , d * schema.ResourceData ) error {
749736 bucketName := d .Get ("name" ).(string )
0 commit comments