Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args (filter.object_size_greater_than and filter.object_size_less_than) #23441

Conversation

anGie44
Copy link
Contributor

@anGie44 anGie44 commented Mar 1, 2022

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

Closes #23375
Closes #23575

Description

  • handling of filter.object_size_greater_than and filter.object_size_less_than arguments is updated to account for their nullable.TypeNullableInt types
  • new_noncurrent_versions in filter.noncurrent_version_expiration and filter.noncurrent_version_transition are updated to nullable.TypeNullableInt type to prevent diff when the API sends back null

Output from acceptance testing:

--- PASS: TestAccS3BucketLifecycleConfiguration_nonCurrentVersionExpiration (194.52s)
--- PASS: TestAccS3BucketLifecycleConfiguration_nonCurrentVersionTransition (196.10s)
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRangeAndPrefix (196.13s)
--- PASS: TestAccS3BucketLifecycleConfiguration_prefix (196.23s)
--- PASS: TestAccS3BucketLifecycleConfiguration_basic (196.27s)
--- PASS: TestAccS3BucketLifecycleConfiguration_multipleRules (194.36s)
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionDate_intelligentTiering (194.33s)
--- PASS: TestAccS3BucketLifecycleConfiguration_EmptyFilter_NonCurrentVersions (194.28s)
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionUpdateBetweenDaysAndDate_intelligentTiering (328.33s)
--- PASS: TestAccS3BucketLifecycleConfiguration_disableRule (328.60s)
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionStorageClassOnly_intelligentTiering (192.14s)
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeGreaterThan (192.65s)
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionZeroDays_intelligentTiering (202.84s)
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRange (192.71s)
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeLessThan (192.65s)
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionDate_standardIa (195.57s)
--- PASS: TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock (205.79s)
--- PASS: TestAccS3BucketLifecycleConfiguration_disappears (54.06s)
--- PASS: TestAccS3BucketLifecycleConfiguration_filterWithPrefix (275.85s)
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_Tag (191.63s)
--- PASS: TestAccS3BucketLifecycleConfiguration_ruleAbortIncompleteMultipartUpload (273.22s)
--- PASS: TestAccS3BucketLifecycleConfiguration_RuleExpiration_expireMarkerOnly (273.17s)

To validate the example given in #23375:

  1. terraform apply
Terraform will perform the following actions:

  # aws_s3_bucket.example will be created
  + resource "aws_s3_bucket" "example" {
      + acceleration_status                  = (known after apply)
      + acl                                  = (known after apply)
      + arn                                  = (known after apply)
      + bucket                               = "aws-provider-issue-23375"
      + bucket_domain_name                   = (known after apply)
      + bucket_regional_domain_name          = (known after apply)
      + cors_rule                            = (known after apply)
      + force_destroy                        = false
      + grant                                = (known after apply)
      + hosted_zone_id                       = (known after apply)
      + id                                   = (known after apply)
      + lifecycle_rule                       = (known after apply)
      + logging                              = (known after apply)
      + policy                               = (known after apply)
      + region                               = (known after apply)
      + replication_configuration            = (known after apply)
      + request_payer                        = (known after apply)
      + server_side_encryption_configuration = (known after apply)
      + tags_all                             = (known after apply)
      + versioning                           = (known after apply)
      + website                              = (known after apply)
      + website_domain                       = (known after apply)
      + website_endpoint                     = (known after apply)

      + object_lock_configuration {
          + object_lock_enabled = (known after apply)
          + rule                = (known after apply)
        }
    }

  # aws_s3_bucket_lifecycle_configuration.example will be created
  + resource "aws_s3_bucket_lifecycle_configuration" "example" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + id     = "rule"
          + status = "Enabled"

          + expiration {
              + date                         = "2024-01-01T00:00:00Z"
              + days                         = 0
              + expired_object_delete_marker = (known after apply)
            }

          + filter {
            }

          + noncurrent_version_transition {
              + noncurrent_days = 120
              + storage_class   = "GLACIER"
            }
        }
    }

Plan: 2 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + lifecycle = (known after apply)
aws_s3_bucket.example: Creating...
aws_s3_bucket.example: Creation complete after 2s [id=aws-provider-issue-23375]
aws_s3_bucket_lifecycle_configuration.example: Creating...
aws_s3_bucket_lifecycle_configuration.example: Still creating... [10s elapsed]
aws_s3_bucket_lifecycle_configuration.example: Still creating... [20s elapsed]
aws_s3_bucket_lifecycle_configuration.example: Still creating... [30s elapsed]
aws_s3_bucket_lifecycle_configuration.example: Creation complete after 32s [id=aws-provider-issue-23375]

Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

Outputs:

lifecycle = [
  {
    "abort_incomplete_multipart_upload" = []
    "expiration" = [
      {
        "date" = "2024-01-01T00:00:00Z"
        "days" = 0
        "expired_object_delete_marker" = false
      },
    ]
    "filter" = [
      {
        "and" = []
        "object_size_greater_than" = null
        "object_size_less_than" = null
        "prefix" = null
        "tag" = []
      },
    ]
    "id" = "rule"
    "noncurrent_version_expiration" = []
    "noncurrent_version_transition" = [
      {
        "newer_noncurrent_versions" = ""
        "noncurrent_days" = 120
        "storage_class" = "GLACIER"
      },
    ]
    "prefix" = ""
    "status" = "Enabled"
    "transition" = []
  },
]
  1. terraform apply --> no change needed for rule.noncurrent_version_transition.newer_noncurrent_versions when previously terraform was trying to update null -> 0
aws_s3_bucket.example: Refreshing state... [id=aws-provider-issue-23375]
aws_s3_bucket_lifecycle_configuration.example: Refreshing state... [id=aws-provider-issue-23375]

Note: Objects have changed outside of Terraform

Terraform detected the following changes made outside of Terraform since the last "terraform apply":

  # aws_s3_bucket.example has changed
  ~ resource "aws_s3_bucket" "example" {
        id                                   = "aws-provider-issue-23375"
      ~ lifecycle_rule                       = [
          + {
              + abort_incomplete_multipart_upload_days = 0
              + enabled                                = true
              + expiration                             = [
                  + {
                      + date                         = "2024-01-01"
                      + days                         = 0
                      + expired_object_delete_marker = false
                    },
                ]
              + id                                     = "rule"
              + noncurrent_version_expiration          = []
              + noncurrent_version_transition          = [
                  + {
                      + days          = 120
                      + storage_class = "GLACIER"
                    },
                ]
              + prefix                                 = ""
              + tags                                   = {}
              + transition                             = []
            },
        ]
      + tags                                 = {}
        # (17 unchanged attributes hidden)
    }


Unless you have made equivalent changes to your configuration, or ignored the relevant attributes using ignore_changes, the following plan may include actions to undo or
respond to these changes.

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

No changes. Your infrastructure matches the configuration.

Your configuration already matches the changes detected above. If you'd like to update the Terraform state to match, create and apply a refresh-only plan:
  terraform apply -refresh-only

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

lifecycle = [
  {
    "abort_incomplete_multipart_upload" = []
    "expiration" = [
      {
        "date" = "2024-01-01T00:00:00Z"
        "days" = 0
        "expired_object_delete_marker" = false
      },
    ]
    "filter" = [
      {
        "and" = []
        "object_size_greater_than" = null
        "object_size_less_than" = null
        "prefix" = null
        "tag" = []
      },
    ]
    "id" = "rule"
    "noncurrent_version_expiration" = []
    "noncurrent_version_transition" = [
      {
        "newer_noncurrent_versions" = ""
        "noncurrent_days" = 120
        "storage_class" = "GLACIER"
      },
    ]
    "prefix" = ""
    "status" = "Enabled"
    "transition" = []
  },
]

@github-actions github-actions bot added documentation Introduces or discusses updates to documentation. service/s3 Issues and PRs that pertain to the s3 service. size/XS Managed by automation to categorize the size of a PR. and removed documentation Introduces or discusses updates to documentation. service/s3 Issues and PRs that pertain to the s3 service. labels Mar 1, 2022
@anGie44 anGie44 force-pushed the b-s3-bucket-lifecycle-configuration-noncurrent-versioning-transition branch from 9ee9a58 to 6640adc Compare March 1, 2022 23:45
@github-actions github-actions bot added size/XL Managed by automation to categorize the size of a PR. documentation Introduces or discusses updates to documentation. service/s3 Issues and PRs that pertain to the s3 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. and removed size/XS Managed by automation to categorize the size of a PR. labels Mar 1, 2022
@anGie44 anGie44 force-pushed the b-s3-bucket-lifecycle-configuration-noncurrent-versioning-transition branch 2 times, most recently from b433c1b to e40d97e Compare March 2, 2022 00:31
@anGie44 anGie44 force-pushed the b-s3-bucket-lifecycle-configuration-noncurrent-versioning-transition branch from e40d97e to 4b0c7f7 Compare March 2, 2022 01:00
anGie44 added a commit that referenced this pull request Mar 2, 2022
@anGie44 anGie44 force-pushed the b-s3-bucket-lifecycle-configuration-noncurrent-versioning-transition branch from a4b7856 to 57e2c5d Compare March 2, 2022 03:20
@anGie44 anGie44 added the bug Addresses a defect in current functionality. label Mar 2, 2022
@anGie44 anGie44 marked this pull request as ready for review March 2, 2022 03:43
@anGie44 anGie44 changed the title r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable int to prevent drift Mar 2, 2022
@anGie44 anGie44 changed the title r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable int to prevent drift r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable int to prevent drift and fix other nullable int args Mar 2, 2022
@anGie44 anGie44 changed the title r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable int to prevent drift and fix other nullable int args r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args Mar 2, 2022
@anGie44 anGie44 changed the title r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args (filter.object_size_greater_than and filte.object_size_less_than) Mar 8, 2022
@anGie44 anGie44 changed the title r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args (filter.object_size_greater_than and filte.object_size_less_than) r/s3_bucket_lifecycle_configuration: make new_noncurrent_versions arguments nullable ints to prevent drift and fix other nullable int args (filter.object_size_greater_than and filter.object_size_less_than) Mar 8, 2022
@@ -164,9 +164,9 @@ func ResourceBucketLifecycleConfiguration() *schema.Resource {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"newer_noncurrent_versions": {
Type: schema.TypeInt,
Type: nullable.TypeNullableInt,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only potential "problem" I see is that this could change user expectations when using the value as an output variable. Previously was null or 0, now it will be the empty String when not configured

Copy link
Contributor

@ewbankkit ewbankkit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀.

% make testacc TESTS=TestAccS3BucketLifecycleConfiguration_ PKG=s3 ACCTEST_PARALLELISM=3
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/s3/... -v -count 1 -parallel 3 -run='TestAccS3BucketLifecycleConfiguration_'  -timeout 180m
=== RUN   TestAccS3BucketLifecycleConfiguration_basic
=== PAUSE TestAccS3BucketLifecycleConfiguration_basic
=== RUN   TestAccS3BucketLifecycleConfiguration_disappears
=== PAUSE TestAccS3BucketLifecycleConfiguration_disappears
=== RUN   TestAccS3BucketLifecycleConfiguration_filterWithPrefix
=== PAUSE TestAccS3BucketLifecycleConfiguration_filterWithPrefix
=== RUN   TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeGreaterThan
=== PAUSE TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeGreaterThan
=== RUN   TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeLessThan
=== PAUSE TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeLessThan
=== RUN   TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRange
=== PAUSE TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRange
=== RUN   TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRangeAndPrefix
=== PAUSE TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRangeAndPrefix
=== RUN   TestAccS3BucketLifecycleConfiguration_disableRule
=== PAUSE TestAccS3BucketLifecycleConfiguration_disableRule
=== RUN   TestAccS3BucketLifecycleConfiguration_multipleRules
=== PAUSE TestAccS3BucketLifecycleConfiguration_multipleRules
=== RUN   TestAccS3BucketLifecycleConfiguration_nonCurrentVersionExpiration
=== PAUSE TestAccS3BucketLifecycleConfiguration_nonCurrentVersionExpiration
=== RUN   TestAccS3BucketLifecycleConfiguration_nonCurrentVersionTransition
=== PAUSE TestAccS3BucketLifecycleConfiguration_nonCurrentVersionTransition
=== RUN   TestAccS3BucketLifecycleConfiguration_prefix
=== PAUSE TestAccS3BucketLifecycleConfiguration_prefix
=== RUN   TestAccS3BucketLifecycleConfiguration_Filter_Tag
=== PAUSE TestAccS3BucketLifecycleConfiguration_Filter_Tag
=== RUN   TestAccS3BucketLifecycleConfiguration_RuleExpiration_expireMarkerOnly
=== PAUSE TestAccS3BucketLifecycleConfiguration_RuleExpiration_expireMarkerOnly
=== RUN   TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
=== PAUSE TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
=== RUN   TestAccS3BucketLifecycleConfiguration_ruleAbortIncompleteMultipartUpload
=== PAUSE TestAccS3BucketLifecycleConfiguration_ruleAbortIncompleteMultipartUpload
=== RUN   TestAccS3BucketLifecycleConfiguration_TransitionDate_standardIa
=== PAUSE TestAccS3BucketLifecycleConfiguration_TransitionDate_standardIa
=== RUN   TestAccS3BucketLifecycleConfiguration_TransitionDate_intelligentTiering
=== PAUSE TestAccS3BucketLifecycleConfiguration_TransitionDate_intelligentTiering
=== RUN   TestAccS3BucketLifecycleConfiguration_TransitionStorageClassOnly_intelligentTiering
=== PAUSE TestAccS3BucketLifecycleConfiguration_TransitionStorageClassOnly_intelligentTiering
=== RUN   TestAccS3BucketLifecycleConfiguration_TransitionZeroDays_intelligentTiering
=== PAUSE TestAccS3BucketLifecycleConfiguration_TransitionZeroDays_intelligentTiering
=== RUN   TestAccS3BucketLifecycleConfiguration_TransitionUpdateBetweenDaysAndDate_intelligentTiering
=== PAUSE TestAccS3BucketLifecycleConfiguration_TransitionUpdateBetweenDaysAndDate_intelligentTiering
=== RUN   TestAccS3BucketLifecycleConfiguration_EmptyFilter_NonCurrentVersions
=== PAUSE TestAccS3BucketLifecycleConfiguration_EmptyFilter_NonCurrentVersions
=== CONT  TestAccS3BucketLifecycleConfiguration_basic
=== CONT  TestAccS3BucketLifecycleConfiguration_prefix
=== CONT  TestAccS3BucketLifecycleConfiguration_TransitionDate_intelligentTiering
--- PASS: TestAccS3BucketLifecycleConfiguration_prefix (196.44s)
=== CONT  TestAccS3BucketLifecycleConfiguration_TransitionDate_standardIa
--- PASS: TestAccS3BucketLifecycleConfiguration_basic (196.59s)
=== CONT  TestAccS3BucketLifecycleConfiguration_ruleAbortIncompleteMultipartUpload
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionDate_intelligentTiering (196.72s)
=== CONT  TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionDate_standardIa (203.33s)
=== CONT  TestAccS3BucketLifecycleConfiguration_RuleExpiration_expireMarkerOnly
--- PASS: TestAccS3BucketLifecycleConfiguration_ruleAbortIncompleteMultipartUpload (274.62s)
=== CONT  TestAccS3BucketLifecycleConfiguration_Filter_Tag
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_Tag (193.57s)
=== CONT  TestAccS3BucketLifecycleConfiguration_TransitionUpdateBetweenDaysAndDate_intelligentTiering
--- PASS: TestAccS3BucketLifecycleConfiguration_RuleExpiration_expireMarkerOnly (274.80s)
=== CONT  TestAccS3BucketLifecycleConfiguration_EmptyFilter_NonCurrentVersions
--- PASS: TestAccS3BucketLifecycleConfiguration_EmptyFilter_NonCurrentVersions (194.69s)
=== CONT  TestAccS3BucketLifecycleConfiguration_TransitionZeroDays_intelligentTiering
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionUpdateBetweenDaysAndDate_intelligentTiering (330.38s)
=== CONT  TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRangeAndPrefix
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionZeroDays_intelligentTiering (195.27s)
=== CONT  TestAccS3BucketLifecycleConfiguration_TransitionStorageClassOnly_intelligentTiering
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRangeAndPrefix (193.34s)
=== CONT  TestAccS3BucketLifecycleConfiguration_multipleRules
--- PASS: TestAccS3BucketLifecycleConfiguration_TransitionStorageClassOnly_intelligentTiering (194.33s)
=== CONT  TestAccS3BucketLifecycleConfiguration_nonCurrentVersionExpiration
--- PASS: TestAccS3BucketLifecycleConfiguration_multipleRules (194.74s)
=== CONT  TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeGreaterThan
=== CONT  TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
    bucket_lifecycle_configuration_test.go:560: Step 1/2 error: Error running apply: exit status 1
        
        Error: error creating S3 Lifecycle Configuration for bucket (tf-acc-test-4136263110565261398): RequestCanceled: request context canceled
        caused by: context deadline exceeded
        
          with aws_s3_bucket_lifecycle_configuration.test,
          on terraform_plugin_test.tf line 11, in resource "aws_s3_bucket_lifecycle_configuration" "test":
          11: resource "aws_s3_bucket_lifecycle_configuration" "test" {
        
--- FAIL: TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock (1211.21s)
=== CONT  TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRange
--- PASS: TestAccS3BucketLifecycleConfiguration_nonCurrentVersionExpiration (194.02s)
=== CONT  TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeLessThan
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeGreaterThan (194.11s)
=== CONT  TestAccS3BucketLifecycleConfiguration_disableRule
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeRange (195.00s)
=== CONT  TestAccS3BucketLifecycleConfiguration_nonCurrentVersionTransition
--- PASS: TestAccS3BucketLifecycleConfiguration_Filter_ObjectSizeLessThan (193.46s)
=== CONT  TestAccS3BucketLifecycleConfiguration_filterWithPrefix
--- PASS: TestAccS3BucketLifecycleConfiguration_nonCurrentVersionTransition (193.10s)
=== CONT  TestAccS3BucketLifecycleConfiguration_disappears
--- PASS: TestAccS3BucketLifecycleConfiguration_disappears (55.10s)
--- PASS: TestAccS3BucketLifecycleConfiguration_disableRule (328.46s)
--- PASS: TestAccS3BucketLifecycleConfiguration_filterWithPrefix (277.21s)
FAIL
FAIL	github.com/hashicorp/terraform-provider-aws/internal/service/s3	1927.228s
FAIL
make: *** [testacc] Error 1

The failure is unrelated to this change.
Running that test again in isolation just to make sure:

% make testacc TESTS=TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock PKG=s3 ACCTEST_PARALLELISM=3
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/s3/... -v -count 1 -parallel 3 -run='TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock'  -timeout 180m
=== RUN   TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
=== PAUSE TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
=== CONT  TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock
--- PASS: TestAccS3BucketLifecycleConfiguration_RuleExpiration_emptyBlock (194.85s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/s3	198.567s

@anGie44 anGie44 added this to the v3.75.0 milestone Mar 10, 2022
@anGie44 anGie44 merged commit 998611c into main Mar 10, 2022
@anGie44 anGie44 deleted the b-s3-bucket-lifecycle-configuration-noncurrent-versioning-transition branch March 10, 2022 22:24
@github-actions github-actions bot modified the milestones: v3.75.0, v4.5.0 Mar 10, 2022
github-actions bot pushed a commit that referenced this pull request Mar 10, 2022
@github-actions
Copy link

This functionality has been released in v4.5.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you!

@github-actions
Copy link

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Addresses a defect in current functionality. documentation Introduces or discusses updates to documentation. service/s3 Issues and PRs that pertain to the s3 service. size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
2 participants