Repository: hashicorp/terraform-provider-aws
Pull request #42435: fix: normalize returned MLflow version
Author: login: stefanfreitag
Labels: name: bug
description: Addresses a defect in current functionality.
name: size/L
description: Managed by automation to categorize the size of a PR.
name: tests
description: PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
name: service/mq
description: Issues and PRs that pertain to the mq service.
name: service/sagemaker
description: Issues and PRs that pertain to the sagemaker service.
name: external-maintainer
description: Contribution from a trusted external contributor.
Created: 2025-04-30T19:51:50Z | Merged: 2025-05-13T12:16:28Z

### Description

For the resource `aws_sagemaker_mlflow_tracking_server` there exists  a difference between the MLflow version requested  and reported by AWS API/ SDK. This leads to a constant drift between Terraform code and Terraform state.

This pull request normalizes the MLflow version used Terraform to only major/minor version. 

#### Example

This Terraform code specifies  `2.16` as input for the MLflow version.

```hcl
resource "aws_sagemaker_mlflow_tracking_server" "this" {
  tracking_server_name = "example"
  tracking_server_size = "Small"
  mlflow_version       = "2.16"
  role_arn             = aws_iam_role.example.arn
  artifact_store_uri   = "s3://sf-poc-tf-state-files"
} 
```

A `terraform apply`  will succeed. But checking created resources and state shows that

* a tracking server with MLflow version 2.16.2 is available
* version 2.16.2 also written into the Terraform state.


The debug logs show

* CreateMlflowTrackingServer with "MlflowVersion":"2.16"
* DescribeMlflowTrackingServer with "MlflowVersion":"2.16.2" (called multiple times during resource creation) 


The relevant part of the logs:

```plain
2025-04-23T19:40:39.027+0200 [INFO]  Starting apply for aws_sagemaker_mlflow_tracking_server.this
2025-04-23T19:40:39.027+0200 [DEBUG] aws_sagemaker_mlflow_tracking_server.this: applying the planned Create change
2025-04-23T19:40:39.027+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: [DEBUG] setting computed for "tags_all" from ComputedKeys

2025-04-23T19:40:39.028+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: http.request.header.x_amz_date=20250423T174039Z tf_aws.sdk=aws-sdk-go-v2 @module=aws rpc.method=CreateMlflowTrackingServer
  http.request.body=
  | {"ArtifactStoreUri":"s3://sf-poc-tf-state-files","AutomaticModelRegistration":false,"MlflowVersion":"2.16","RoleArn":"arn:aws:iam::redacted:role/sagemaker-mlflow-tracking-role","TrackingServerName":"example","TrackingServerSize":"Small"}
   http.request.header.amz_sdk_invocation_id=7d1dcfd0-be43-4f78-9056-0532b64258a7 http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" net.peer.name=api.sagemaker.eu-central-1.amazonaws.com @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 tf_mux_provider="*schema.GRPCProviderServer" tf_provider_addr=registry.terraform.io/hashicorp/aws tf_rpc=ApplyResourceChange http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" rpc.service=SageMaker tf_aws.signing_region="" aws.region=eu-central-1 http.method=POST http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.system=aws-api http.request.header.content_type=application/x-amz-json-1.1 tf_resource_type=aws_sagemaker_mlflow_tracking_server http.request.header.amz_sdk_request="attempt=1; max=25" http.request.header.x_amz_target=SageMaker.CreateMlflowTrackingServer http.request_content_length=241 tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 timestamp="2025-04-23T19:40:39.028+0200"

2025-04-23T19:40:39.361+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Response Received: tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45
  http.response.body=
  | {"TrackingServerArn":"arn:aws:sagemaker:eu-central-1:redacted:mlflow-tracking-server/example"}
   rpc.system=aws-api tf_aws.signing_region="" tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_aws.sdk=aws-sdk-go-v2 aws.region=eu-central-1 http.response.header.date="Wed, 23 Apr 2025 17:40:39 GMT" http.response.header.x_amzn_requestid=65ef0b52-1ceb-48ad-8b9f-fd4c0a1f0987 http.response_content_length=98 http.status_code=200 rpc.method=CreateMlflowTrackingServer tf_provider_addr=registry.terraform.io/hashicorp/aws @module=aws http.duration=332 http.response.header.content_type=application/x-amz-json-1.1 rpc.service=SageMaker tf_mux_provider="*schema.GRPCProviderServer" tf_resource_type=aws_sagemaker_mlflow_tracking_server timestamp="2025-04-23T19:40:39.361+0200"

2025-04-23T19:40:39.361+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: [DEBUG] Waiting for state to become: [Created]

2025-04-23T19:40:39.362+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: http.request.header.x_amz_date=20250423T174039Z rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 tf_mux_provider="*schema.GRPCProviderServer" http.method=POST tf_provider_addr=registry.terraform.io/hashicorp/aws @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 @module=aws aws.region=eu-central-1
  http.request.body=
  | {"TrackingServerName":"example"}
   http.request.header.amz_sdk_request="attempt=1; max=25" rpc.service=SageMaker tf_resource_type=aws_sagemaker_mlflow_tracking_server tf_rpc=ApplyResourceChange http.request_content_length=32 http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" http.request.header.content_type=application/x-amz-json-1.1 net.peer.name=api.sagemaker.eu-central-1.amazonaws.com tf_aws.signing_region="" http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.method=DescribeMlflowTrackingServer tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 http.request.header.amz_sdk_invocation_id=ef12f009-c427-4d83-acf0-d26d5ca1b0bd http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" http.request.header.x_amz_target=SageMaker.DescribeMlflowTrackingServer timestamp="2025-04-23T19:40:39.361+0200"

2025-04-23T19:40:39.514+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Response Received: http.response.header.date="Wed, 23 Apr 2025 17:40:39 GMT" tf_aws.signing_region="" tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_provider_addr=registry.terraform.io/hashicorp/aws http.duration=152 http.response_content_length=626 http.status_code=200
  http.response.body=
  | {"ArtifactStoreUri":"s3://sf-poc-tf-state-files","AutomaticModelRegistration":false,"CreatedBy":{},"CreationTime":1.745430039172E9,"IsActive":"Inactive","LastModifiedBy":{},"LastModifiedTime":1.745430039172E9,"MlflowVersion":"2.16.2","RoleArn":"arn:aws:iam::redacted:role/sagemaker-mlflow-tracking-role","TrackingServerArn":"arn:aws:sagemaker:eu-central-1:redacted:mlflow-tracking-server/example","TrackingServerName":"example","TrackingServerSize":"Small","TrackingServerStatus":"Creating","TrackingServerUrl":"https://t-1xexqsukyiag.eu-central-1.experiments.sagemaker.aws","WeeklyMaintenanceWindowStart":"Thu:04:17"}
   rpc.service=SageMaker rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 @module=aws tf_mux_provider="*schema.GRPCProviderServer" tf_rpc=ApplyResourceChange http.response.header.x_amzn_requestid=6d5f7e55-938c-4a7b-850c-d627448858b0 rpc.method=DescribeMlflowTrackingServer tf_resource_type=aws_sagemaker_mlflow_tracking_server aws.region=eu-central-1 http.response.header.content_type=application/x-amz-json-1.1 timestamp="2025-04-23T19:40:39.514+0200"

2025-04-23T19:40:39.715+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_rpc=ApplyResourceChange http.request.header.amz_sdk_invocation_id=2767fe44-e859-449b-b47a-4b1fc3a65afe http.request_content_length=32 rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" http.request.header.x_amz_date=20250423T174039Z http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.service=SageMaker http.request.header.amz_sdk_request="attempt=1; max=25" http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" aws.region=eu-central-1
  http.request.body=
  | {"TrackingServerName":"example"}
   @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 http.request.header.content_type=application/x-amz-json-1.1 tf_provider_addr=registry.terraform.io/hashicorp/aws @module=aws http.method=POST http.request.header.x_amz_target=SageMaker.DescribeMlflowTrackingServer net.peer.name=api.sagemaker.eu-central-1.amazonaws.com tf_resource_type=aws_sagemaker_mlflow_tracking_server rpc.method=DescribeMlflowTrackingServer tf_aws.signing_region="" tf_mux_provider="*schema.GRPCProviderServer" timestamp="2025-04-23T19:40:39.715+0200"
```
#### Other information

I tried to create the resource with major, minor, patch level using the AWS CLI and this seems not to be supported.

```shell
aws sagemaker create-mlflow-tracking-server --tracking-server-name "test" --mlflow-version 2.16.2 --artifact-store-uri s3://<redacted> --role-arn arn:aws:iam::<redacted>:role/<redacted>
```
shows the error

```shell
An error occurred (ValidationException) when calling the CreateMlflowTrackingServer operation: The provided MLflow version is not supported
```

In the AWS Management Console only options for MLflow versions 2.16 and 2.13 are present. A patch level cannot be specified.

### Relations

Closes #42276 

### References

- [Supported MLflow versions](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html)

### Output from Acceptance Testing

```console
❯ make testacc TESTS=TestAccSageMakerMlflowTrackingServer_mlflowVersion PKG=sagemaker
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.8 test ./internal/service/sagemaker/... -v -count 1 -parallel 20 -run='TestAccSageMakerMlflowTrackingServer_mlflowVersion'  -timeout 360m -vet=off
2025/04/30 20:29:33 Initializing Terraform AWS Provider...
=== RUN   TestAccSageMakerMlflowTrackingServer_mlflowVersion
=== PAUSE TestAccSageMakerMlflowTrackingServer_mlflowVersion
=== CONT  TestAccSageMakerMlflowTrackingServer_mlflowVersion
 
--- PASS: TestAccSageMakerMlflowTrackingServer_mlflowVersion (2614.59s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/sagemaker  2614.737s
```


Linked issue #42276: aws_sagemaker_mlflow_tracking_server not recognizing patch-versions
### Terraform and AWS Provider Version

```console
Terraform v1.11.4
hashicorp/aws v5.94.1
```

### Affected Resource(s) or Data Source(s)

* `aws_sagemaker_mlflow_tracking_server`


### Expected Behavior

MLflow tracking server should be deployed successfully.

### Actual Behavior

Error is raised

`Error: creating SageMaker AI Mlflow Tracking Server ml-glo-mlflow-dpa-emea: operation error SageMaker: CreateMlflowTrackingServer, https response error StatusCode: 400, RequestID: 593b60d8-bf4b-4584-87a9-b567c04ba730, api error ValidationException: The provided MLflow version is not supported`

### Relevant Error/Panic Output

Setting `mlflow_version = "2.16"` deploys without error, but then on every new `terraform apply` the mlflow tracking server will be recreated as

```
# sagemaker_domain.aws_sagemaker_mlflow_tracking_server.this must be replaced
-/+ resource "aws_sagemaker_mlflow_tracking_server" "this" {
      ~ arn                             = "arn" -> (known after apply)
      ~ id                              = "**********************" -> (known after apply)
      ~ mlflow_version                  = "2.16.2" -> "2.16" # forces replacement
```

So it seems `mlflow_version = "2.16.2"` is somehow written to the state but not accepted as input.


### Sample Terraform Configuration

<details>
<summary>Click to expand configuration</summary>

```hcl
resource "aws_sagemaker_mlflow_tracking_server" "this" {
  tracking_server_name = "example"
  tracking_server_size = "Small"
  mlflow_version       = "2.16.2"
  role_arn             = aws_iam_role.example.arn
  artifact_store_uri   = "s3://${aws_s3_bucket.example.bucket}/path"
}
```
</details>


### Steps to Reproduce

1. Create MLflow tracking server with `mlflow_version = 2.16.2"`
2. See error
3. Create MLflow tracking server with `mlflow_version = 2.16"`
4. Run `terraform apply` again and see mlflow tracking server being destroyed and recreated

### Debug Logging




### GenAI / LLM Assisted Development

_No response_

### Important Facts and References

_No response_

### Would you like to implement a fix?

No
Linked issue comments: user: login: github-actions[bot]
created_at: 2025-04-17T16:01:15Z
body: ### Community Guidelines

This comment is added to every new Issue to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! :rocket:

#### Voting for Prioritization

* Please vote on this Issue by adding a :+1: [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original post to help the community and maintainers prioritize it.
* Please see our [prioritization guide](https://hashicorp.github.io/terraform-provider-aws/prioritization/) for additional information on how the maintainers handle prioritization.
* Please **do not** leave +1 or other comments that do not add relevant new information or questions; they generate extra noise for others following the Issue and do not help prioritize the request.

### Volunteering to Work on This Issue

* If you are interested in working on this issue, please leave a comment.
* If this would be your first contribution, please review the [contribution guide](https://hashicorp.github.io/terraform-provider-aws/).
* For new resources and data sources, use [skaff](https://hashicorp.github.io/terraform-provider-aws/skaff/) to generate scaffolding with comments detailing common expectations.


author_association: CONTRIBUTOR
user: login: sachin-cambia
created_at: 2025-04-22T15:45:23Z
body: We are impacted by this. It will be great to see a fix.
author_association: NONE
user: login: stefanfreitag
created_at: 2025-04-22T17:52:38Z
body: Good evening @DavidSchell , hi @sachin-cambia,

happy to look into this issue. 
As an indicator for an SDK or provider related issue I did a brief test using the AWS CLI (assuming SDK behaves same-ish).

```shell
aws sagemaker create-mlflow-tracking-server --tracking-server-name "test" --mlflow-version 2.16.2 --artifact-store-uri s3://<redacted> --role-arn arn:aws:iam::<redacted>:role/<redacted>
```
showed also an error

```shell
An error occurred (ValidationException) when calling the CreateMlflowTrackingServer operation: The provided MLflow version is not supported
```

In SageMaker I see options for MLflow versions 2.16 and 2.13. A patch level cannot be specified.

![Image](https://github.com/user-attachments/assets/e82a8a65-aa45-454b-bb99-4355e061f59f)

Potentially it is not the provider failing here - please give me a day or two to find out more.

## Links
- [Support for MLflow 2.16.2](https://aws.amazon.com/blogs/machine-learning/accelerating-ml-experimentation-with-enhanced-security-aws-privatelink-support-for-amazon-sagemaker-with-mlflow/)
- [CDK stack](https://github.com/aws-samples/sagemaker-mlflow-private/blob/dcd21c6896c8d4b144c1a1df89d77639ea203ac3/infra/infra/infra_stack.py#L380).   
The CDK stack used in the link above also uses v2.16 when creating the tracking server.
author_association: CONTRIBUTOR
user: login: stefanfreitag
created_at: 2025-04-23T19:17:28Z
body: I executed a `terraform apply` using a simple configuration and logged the debug information.
The configuration  used as version `2.16`

```hcl
resource "aws_sagemaker_mlflow_tracking_server" "this" {
  tracking_server_name = "example"
  tracking_server_size = "Small"
  mlflow_version       = "2.16"
  role_arn             = aws_iam_role.example.arn
  artifact_store_uri   = "s3://sf-poc-tf-state-files"
} 
```

- The version `2.16` is also used in the API `CreateMlflowTrackingServer`.
- As the resource creation takes some time, periodically `DescribeMlflowTrackingServer` calls are executed. The first reply to  `DescribeMlflowTrackingServer` contains already version `2.16.2`
 
The relevant part of the logs:

```plain
2025-04-23T19:40:39.027+0200 [INFO]  Starting apply for aws_sagemaker_mlflow_tracking_server.this
2025-04-23T19:40:39.027+0200 [DEBUG] aws_sagemaker_mlflow_tracking_server.this: applying the planned Create change
2025-04-23T19:40:39.027+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: [DEBUG] setting computed for "tags_all" from ComputedKeys

2025-04-23T19:40:39.028+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: http.request.header.x_amz_date=20250423T174039Z tf_aws.sdk=aws-sdk-go-v2 @module=aws rpc.method=CreateMlflowTrackingServer
  http.request.body=
  | {"ArtifactStoreUri":"s3://sf-poc-tf-state-files","AutomaticModelRegistration":false,"MlflowVersion":"2.16","RoleArn":"arn:aws:iam::redacted:role/sagemaker-mlflow-tracking-role","TrackingServerName":"example","TrackingServerSize":"Small"}
   http.request.header.amz_sdk_invocation_id=7d1dcfd0-be43-4f78-9056-0532b64258a7 http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" net.peer.name=api.sagemaker.eu-central-1.amazonaws.com @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 tf_mux_provider="*schema.GRPCProviderServer" tf_provider_addr=registry.terraform.io/hashicorp/aws tf_rpc=ApplyResourceChange http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" rpc.service=SageMaker tf_aws.signing_region="" aws.region=eu-central-1 http.method=POST http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.system=aws-api http.request.header.content_type=application/x-amz-json-1.1 tf_resource_type=aws_sagemaker_mlflow_tracking_server http.request.header.amz_sdk_request="attempt=1; max=25" http.request.header.x_amz_target=SageMaker.CreateMlflowTrackingServer http.request_content_length=241 tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 timestamp="2025-04-23T19:40:39.028+0200"

2025-04-23T19:40:39.361+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Response Received: tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45
  http.response.body=
  | {"TrackingServerArn":"arn:aws:sagemaker:eu-central-1:redacted:mlflow-tracking-server/example"}
   rpc.system=aws-api tf_aws.signing_region="" tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_aws.sdk=aws-sdk-go-v2 aws.region=eu-central-1 http.response.header.date="Wed, 23 Apr 2025 17:40:39 GMT" http.response.header.x_amzn_requestid=65ef0b52-1ceb-48ad-8b9f-fd4c0a1f0987 http.response_content_length=98 http.status_code=200 rpc.method=CreateMlflowTrackingServer tf_provider_addr=registry.terraform.io/hashicorp/aws @module=aws http.duration=332 http.response.header.content_type=application/x-amz-json-1.1 rpc.service=SageMaker tf_mux_provider="*schema.GRPCProviderServer" tf_resource_type=aws_sagemaker_mlflow_tracking_server timestamp="2025-04-23T19:40:39.361+0200"

2025-04-23T19:40:39.361+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: [DEBUG] Waiting for state to become: [Created]

2025-04-23T19:40:39.362+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: http.request.header.x_amz_date=20250423T174039Z rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 tf_mux_provider="*schema.GRPCProviderServer" http.method=POST tf_provider_addr=registry.terraform.io/hashicorp/aws @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 @module=aws aws.region=eu-central-1
  http.request.body=
  | {"TrackingServerName":"example"}
   http.request.header.amz_sdk_request="attempt=1; max=25" rpc.service=SageMaker tf_resource_type=aws_sagemaker_mlflow_tracking_server tf_rpc=ApplyResourceChange http.request_content_length=32 http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" http.request.header.content_type=application/x-amz-json-1.1 net.peer.name=api.sagemaker.eu-central-1.amazonaws.com tf_aws.signing_region="" http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.method=DescribeMlflowTrackingServer tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 http.request.header.amz_sdk_invocation_id=ef12f009-c427-4d83-acf0-d26d5ca1b0bd http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" http.request.header.x_amz_target=SageMaker.DescribeMlflowTrackingServer timestamp="2025-04-23T19:40:39.361+0200"

2025-04-23T19:40:39.514+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Response Received: http.response.header.date="Wed, 23 Apr 2025 17:40:39 GMT" tf_aws.signing_region="" tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_provider_addr=registry.terraform.io/hashicorp/aws http.duration=152 http.response_content_length=626 http.status_code=200
  http.response.body=
  | {"ArtifactStoreUri":"s3://sf-poc-tf-state-files","AutomaticModelRegistration":false,"CreatedBy":{},"CreationTime":1.745430039172E9,"IsActive":"Inactive","LastModifiedBy":{},"LastModifiedTime":1.745430039172E9,"MlflowVersion":"2.16.2","RoleArn":"arn:aws:iam::redacted:role/sagemaker-mlflow-tracking-role","TrackingServerArn":"arn:aws:sagemaker:eu-central-1:redacted:mlflow-tracking-server/example","TrackingServerName":"example","TrackingServerSize":"Small","TrackingServerStatus":"Creating","TrackingServerUrl":"https://t-1xexqsukyiag.eu-central-1.experiments.sagemaker.aws","WeeklyMaintenanceWindowStart":"Thu:04:17"}
   rpc.service=SageMaker rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 @module=aws tf_mux_provider="*schema.GRPCProviderServer" tf_rpc=ApplyResourceChange http.response.header.x_amzn_requestid=6d5f7e55-938c-4a7b-850c-d627448858b0 rpc.method=DescribeMlflowTrackingServer tf_resource_type=aws_sagemaker_mlflow_tracking_server aws.region=eu-central-1 http.response.header.content_type=application/x-amz-json-1.1 timestamp="2025-04-23T19:40:39.514+0200"

2025-04-23T19:40:39.715+0200 [DEBUG] provider.terraform-provider-aws_v5.95.0_x5: HTTP Request Sent: tf_req_id=629189b8-afca-c66f-fe8a-cd31c767ec87 tf_rpc=ApplyResourceChange http.request.header.amz_sdk_invocation_id=2767fe44-e859-449b-b47a-4b1fc3a65afe http.request_content_length=32 rpc.system=aws-api tf_aws.sdk=aws-sdk-go-v2 http.request.header.authorization="AWS4-HMAC-SHA256 Credential=AKIA************RU6X/20250423/eu-central-1/sagemaker/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-date;x-amz-target, Signature=*****" http.request.header.x_amz_date=20250423T174039Z http.url=https://api.sagemaker.eu-central-1.amazonaws.com/ rpc.service=SageMaker http.request.header.amz_sdk_request="attempt=1; max=25" http.user_agent="APN/1.0 HashiCorp/1.0 Terraform/1.11.2 (+https://www.terraform.io) terraform-provider-aws/5.95.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.36.3 ua/2.1 os/linux lang/go#1.23.8 md/GOOS#linux md/GOARCH#amd64 api/sagemaker#1.187.0 m/g" aws.region=eu-central-1
  http.request.body=
  | {"TrackingServerName":"example"}
   @caller=github.com/hashicorp/aws-sdk-go-base/v2@v2.0.0-beta.64/logging/tf_logger.go:45 http.request.header.content_type=application/x-amz-json-1.1 tf_provider_addr=registry.terraform.io/hashicorp/aws @module=aws http.method=POST http.request.header.x_amz_target=SageMaker.DescribeMlflowTrackingServer net.peer.name=api.sagemaker.eu-central-1.amazonaws.com tf_resource_type=aws_sagemaker_mlflow_tracking_server rpc.method=DescribeMlflowTrackingServer tf_aws.signing_region="" tf_mux_provider="*schema.GRPCProviderServer" timestamp="2025-04-23T19:40:39.715+0200"
```

So, current assumption is that we can request major.minor version (2.13, 2.16) and AWS returns the latest version consisting of major.minor.patch level.
author_association: CONTRIBUTOR
user: login: DavidSchell
created_at: 2025-04-24T08:44:13Z
body: Thanks for the investigation @stefanfreitag. As this is then expected behavior from AWS, could we adjust the aws_provider in a way that it will not redeploy the MLflow tracking server each time? Otherwise the only option I see is to use an ignore_changes statement on the version.
author_association: NONE
user: login: stefanfreitag
created_at: 2025-04-24T09:02:39Z
body: Hi @DavidSchell, yes I had a similar thought. My proposal would be to accept 2.16.x and 2.16 as same - so ignoring the patch level  
Never implemented this before and not sure if it will be accepted as solution. Will give it a try in the next days.
 

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-13T12:16:38Z
body: > [!WARNING]
> This Issue has been closed, meaning that any additional comments are much easier for the maintainers to miss. Please assume that the maintainers will not see them.
>
> Ongoing conversations amongst community members are welcome, however, the issue will be locked after 30 days. Moving conversations to another venue, such as the [AWS Provider forum](https://discuss.hashicorp.com/c/terraform-providers/tf-aws/33), is recommended. If you have additional concerns, please open a new issue, referencing this one where needed.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-16T13:53:18Z
body: This functionality has been released in [v5.98.0 of the Terraform AWS Provider](https://github.com/hashicorp/terraform-provider-aws/blob/v5.98.0/CHANGELOG.md).  Please see the [Terraform documentation on provider versioning](https://www.terraform.io/docs/configuration/providers.html#provider-versions) 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](https://github.com/hashicorp/terraform-provider-aws/issues/new/choose) following the template. Thank you!
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-06-16T02:30:44Z
body: I'm going to lock this issue 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 similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.
author_association: CONTRIBUTOR

Diff:
diff --git a/.changelog/42435.txt b/.changelog/42435.txt
new file mode 100644
index 000000000000..8d9fd1d01faa
--- /dev/null
+++ b/.changelog/42435.txt
@@ -0,0 +1,3 @@
+```release-note:bug
+aws_sagemaker_mlflow_tracking_server: Fix `ValidationException: The provided MLflow version is not supported` errors
+```
diff --git a/go.mod b/go.mod
index 4413135145a6..200f9409b5ba 100644
--- a/go.mod
+++ b/go.mod
@@ -308,7 +308,6 @@ require (
 	github.com/pquerna/otp v1.4.0
 	github.com/shopspring/decimal v1.4.0
 	golang.org/x/crypto v0.37.0
-	golang.org/x/mod v0.24.0
 	golang.org/x/text v0.24.0
 	golang.org/x/tools v0.32.0
 	gopkg.in/dnaeon/go-vcr.v3 v3.2.1
@@ -376,6 +375,7 @@ require (
 	go.opentelemetry.io/otel v1.35.0 // indirect
 	go.opentelemetry.io/otel/metric v1.35.0 // indirect
 	go.opentelemetry.io/otel/trace v1.35.0 // indirect
+	golang.org/x/mod v0.24.0 // indirect
 	golang.org/x/net v0.39.0 // indirect
 	golang.org/x/sync v0.13.0 // indirect
 	golang.org/x/sys v0.32.0 // indirect
diff --git a/internal/semver/semver.go b/internal/semver/semver.go
index 0b934b2c631b..19cba5114226 100644
--- a/internal/semver/semver.go
+++ b/internal/semver/semver.go
@@ -4,6 +4,8 @@
 package semver
 
 import (
+	"strconv"
+
 	gversion "github.com/hashicorp/go-version"
 )
 
@@ -31,6 +33,17 @@ func GreaterThanOrEqual(s1, s2 string) bool {
 	return v1.GreaterThanOrEqual(v2)
 }
 
+// MajorMinor returns the major and minor version string.
+func MajorMinor(s string) (string, error) {
+	v, err := gversion.NewVersion(s)
+
+	if err != nil {
+		return "", err
+	}
+
+	return strconv.FormatInt(v.Segments64()[0], 10) + `.` + strconv.FormatInt(v.Segments64()[1], 10), nil
+}
+
 func parseVersions(s1, s2 string) (*gversion.Version, *gversion.Version, error) {
 	v1, err := gversion.NewVersion(s1)
 
diff --git a/internal/semver/semver_test.go b/internal/semver/semver_test.go
index 3d40ccc5dafb..9e9281fe9d1d 100644
--- a/internal/semver/semver_test.go
+++ b/internal/semver/semver_test.go
@@ -48,3 +48,23 @@ func TestSemVerGreaterThanOrEqual(t *testing.T) {
 		}
 	}
 }
+
+func TestSemVerMajorMinor(t *testing.T) {
+	t.Parallel()
+
+	for _, tc := range []struct {
+		s1 string
+		s2 string
+	}{
+		{"1.0", "1.0"},
+		{"2.3.4", "2.3"},
+		{"4", "4.0"},
+		{"v5.6.7", "5.6"},
+		{"bloop", ""},
+	} {
+		got, _ := MajorMinor(tc.s1)
+		if got != tc.s2 {
+			t.Fatalf("MajorMinor(%q) should be: %q", tc.s1, tc.s2)
+		}
+	}
+}
diff --git a/internal/service/mq/broker.go b/internal/service/mq/broker.go
index 7150f78af35f..55c39b50f1f8 100644
--- a/internal/service/mq/broker.go
+++ b/internal/service/mq/broker.go
@@ -31,12 +31,12 @@ import (
 	"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
 	"github.com/hashicorp/terraform-provider-aws/internal/flex"
 	"github.com/hashicorp/terraform-provider-aws/internal/sdkv2/types/nullable"
+	"github.com/hashicorp/terraform-provider-aws/internal/semver"
 	tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
 	"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
 	"github.com/hashicorp/terraform-provider-aws/internal/verify"
 	"github.com/hashicorp/terraform-provider-aws/names"
 	"github.com/mitchellh/copystructure"
-	"golang.org/x/mod/semver"
 )
 
 // @SDKResource("aws_mq_broker", name="Broker")
@@ -929,9 +929,8 @@ func DiffBrokerUsers(bId string, oldUsers, newUsers []any) (cr []*mq.CreateUserI
 // version is returned unmodified.
 //
 // Ref: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/upgrading-brokers.html
-// func normalizeEngineVersion(output *mq.DescribeBrokerOutput) string {
 func normalizeEngineVersion(engineType string, engineVersion string, autoMinorVersionUpgrade bool) string {
-	majorMinor := semver.MajorMinor("v" + engineVersion)
+	majorMinor, _ := semver.MajorMinor(engineVersion)
 
 	// initial versions where `auto_minor_version_upgrade` triggers automatic
 	// patch updates, and only the major/minor should be supplied to the update API
@@ -942,9 +941,9 @@ func normalizeEngineVersion(engineType string, engineVersion string, autoMinorVe
 		return engineVersion
 	}
 
-	if (strings.EqualFold(engineType, string(types.EngineTypeRabbitmq)) && semver.Compare(majorMinor, minRabbit) >= 0) ||
-		(strings.EqualFold(engineType, string(types.EngineTypeActivemq)) && semver.Compare(majorMinor, minActive) >= 0) {
-		return majorMinor[1:]
+	if (strings.EqualFold(engineType, string(types.EngineTypeRabbitmq)) && semver.GreaterThanOrEqual(majorMinor, minRabbit)) ||
+		(strings.EqualFold(engineType, string(types.EngineTypeActivemq)) && semver.GreaterThanOrEqual(majorMinor, minActive)) {
+		return majorMinor
 	}
 
 	return engineVersion
diff --git a/internal/service/mq/broker_data_source_test.go b/internal/service/mq/broker_data_source_test.go
index 83554e7e2571..89832bad7ac7 100644
--- a/internal/service/mq/broker_data_source_test.go
+++ b/internal/service/mq/broker_data_source_test.go
@@ -93,7 +93,7 @@ resource "aws_mq_broker" "test" {
   deployment_mode    = "ACTIVE_STANDBY_MULTI_AZ"
   engine_type        = "ActiveMQ"
   engine_version     = "5.17.6"
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
 
   maintenance_window_start_time {
     day_of_week = "TUESDAY"
diff --git a/internal/service/mq/broker_test.go b/internal/service/mq/broker_test.go
index 816af50f2277..4954938da229 100644
--- a/internal/service/mq/broker_test.go
+++ b/internal/service/mq/broker_test.go
@@ -318,9 +318,9 @@ func TestNormalizeEngineVersion(t *testing.T) {
 }
 
 const (
-	testAccBrokerVersionNewer = "5.17.6"  // before changing, check b/c must be valid on GovCloud
-	testAccBrokerVersionOlder = "5.16.7"  // before changing, check b/c must be valid on GovCloud
-	testAccRabbitVersion      = "3.11.20" // before changing, check b/c must be valid on GovCloud
+	testAccBrokerVersionNewer = "5.17.6" // before changing, check b/c must be valid on GovCloud
+	// testAccBrokerVersionOlder = "5.16.7"  // before changing, check b/c must be valid on GovCloud
+	testAccRabbitVersion = "3.11.20" // before changing, check b/c must be valid on GovCloud
 
 	testAccActiveVersionNormalized5_18 = "5.18"
 	testAccRabbitVersionNormalized3_13 = "3.13"
@@ -362,7 +362,7 @@ func TestAccMQBroker_basic(t *testing.T) {
 					resource.TestCheckResourceAttr(resourceName, "encryption_options.0.use_aws_owned_key", acctest.CtTrue),
 					resource.TestCheckResourceAttr(resourceName, "engine_type", "ActiveMQ"),
 					resource.TestCheckResourceAttr(resourceName, names.AttrEngineVersion, testAccBrokerVersionNewer),
-					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t2.micro"),
+					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t3.micro"),
 					resource.TestCheckResourceAttr(resourceName, "instances.#", "1"),
 					resource.TestMatchResourceAttr(resourceName, "instances.0.console_url",
 						regexache.MustCompile(`^https://[0-9a-f-]+\.mq.[0-9a-z-]+.amazonaws.com:8162$`)),
@@ -651,7 +651,7 @@ func TestAccMQBroker_AllFields_defaultVPC(t *testing.T) {
 					resource.TestCheckResourceAttr(resourceName, "engine_type", "ActiveMQ"),
 					resource.TestCheckResourceAttr(resourceName, names.AttrEngineVersion, testAccBrokerVersionNewer),
 					resource.TestCheckResourceAttr(resourceName, names.AttrStorageType, "efs"),
-					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t2.micro"),
+					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t3.micro"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.#", "1"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.0.day_of_week", "TUESDAY"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.0.time_of_day", "02:00"),
@@ -780,7 +780,7 @@ func TestAccMQBroker_AllFields_customVPC(t *testing.T) {
 					resource.TestCheckResourceAttr(resourceName, "engine_type", "ActiveMQ"),
 					resource.TestCheckResourceAttr(resourceName, names.AttrEngineVersion, testAccBrokerVersionNewer),
 					resource.TestCheckResourceAttr(resourceName, names.AttrStorageType, "efs"),
-					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t2.micro"),
+					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t3.micro"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.#", "1"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.0.day_of_week", "TUESDAY"),
 					resource.TestCheckResourceAttr(resourceName, "maintenance_window_start_time.0.time_of_day", "02:00"),
@@ -1119,6 +1119,7 @@ func TestAccMQBroker_Update_securityGroup(t *testing.T) {
 	})
 }
 
+/*
 func TestAccMQBroker_Update_engineVersion(t *testing.T) {
 	ctx := acctest.Context(t)
 	if testing.Short() {
@@ -1162,6 +1163,7 @@ func TestAccMQBroker_Update_engineVersion(t *testing.T) {
 		},
 	})
 }
+*/
 
 func TestAccMQBroker_Update_hostInstanceType(t *testing.T) {
 	ctx := acctest.Context(t)
@@ -1184,10 +1186,10 @@ func TestAccMQBroker_Update_hostInstanceType(t *testing.T) {
 		CheckDestroy:             testAccCheckBrokerDestroy(ctx),
 		Steps: []resource.TestStep{
 			{
-				Config: testAccBrokerConfig_instanceType(rName, testAccBrokerVersionNewer, "mq.t2.micro"),
+				Config: testAccBrokerConfig_instanceType(rName, testAccBrokerVersionNewer, "mq.t3.micro"),
 				Check: resource.ComposeTestCheckFunc(
 					testAccCheckBrokerExists(ctx, resourceName, &broker1),
-					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t2.micro"),
+					resource.TestCheckResourceAttr(resourceName, "host_instance_type", "mq.t3.micro"),
 				),
 			},
 			{
@@ -1796,7 +1798,7 @@ resource "aws_mq_broker" "test" {
   broker_name             = %[1]q
   engine_type             = "ActiveMQ"
   engine_version          = %[2]q
-  host_instance_type      = "mq.t2.micro"
+  host_instance_type      = "mq.t3.micro"
   security_groups         = [aws_security_group.test.id]
   authentication_strategy = "simple"
   storage_type            = "efs"
@@ -1827,7 +1829,7 @@ resource "aws_mq_broker" "test" {
   broker_name                = %[1]q
   engine_type                = "ActiveMQ"
   engine_version             = %[2]q
-  host_instance_type         = "mq.t2.micro"
+  host_instance_type         = "mq.t3.micro"
   security_groups            = [aws_security_group.test.id]
   authentication_strategy    = "simple"
   storage_type               = "efs"
@@ -1875,6 +1877,7 @@ resource "aws_mq_broker" "test" {
 `, rName, version)
 }
 
+/*
 func testAccBrokerConfig_engineVersionUpdate(rName, version string) string {
 	return fmt.Sprintf(`
 resource "aws_security_group" "test" {
@@ -1890,7 +1893,7 @@ resource "aws_mq_broker" "test" {
   apply_immediately  = true
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   logs {
@@ -1904,6 +1907,7 @@ resource "aws_mq_broker" "test" {
 }
 `, rName, version)
 }
+*/
 
 func testAccBrokerConfig_allFieldsDefaultVPC(rName, version, cfgName, cfgBody string) string {
 	return fmt.Sprintf(`
@@ -1941,7 +1945,7 @@ resource "aws_mq_broker" "test" {
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
   storage_type       = "efs"
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
 
   maintenance_window_start_time {
     day_of_week = "TUESDAY"
@@ -2036,7 +2040,7 @@ resource "aws_mq_broker" "test" {
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
   storage_type       = "efs"
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
 
   logs {
     general = true
@@ -2089,7 +2093,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   encryption_options {
@@ -2123,7 +2127,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   encryption_options {
@@ -2157,7 +2161,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   user {
@@ -2183,7 +2187,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   user {
@@ -2215,7 +2219,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   user {
@@ -2242,7 +2246,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   user {
@@ -2272,7 +2276,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id]
 
   user {
@@ -2311,7 +2315,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test.id, aws_security_group.test2.id]
 
   logs {
@@ -2349,7 +2353,7 @@ resource "aws_mq_broker" "test" {
   broker_name        = %[1]q
   engine_type        = "ActiveMQ"
   engine_version     = %[2]q
-  host_instance_type = "mq.t2.micro"
+  host_instance_type = "mq.t3.micro"
   security_groups    = [aws_security_group.test2.id]
 
   logs {
@@ -2571,7 +2575,7 @@ resource "aws_mq_broker" "test" {
   broker_name             = %[1]q
   engine_type             = "ActiveMQ"
   engine_version          = %[2]q
-  host_instance_type      = "mq.t2.micro"
+  host_instance_type      = "mq.t3.micro"
   security_groups         = [aws_security_group.test.id]
 
   logs {
diff --git a/internal/service/sagemaker/mlflow_tracking_server.go b/internal/service/sagemaker/mlflow_tracking_server.go
index 9ad84623fe85..04ef77db63f1 100644
--- a/internal/service/sagemaker/mlflow_tracking_server.go
+++ b/internal/service/sagemaker/mlflow_tracking_server.go
@@ -17,6 +17,7 @@ import (
 	"github.com/hashicorp/terraform-provider-aws/internal/enum"
 	"github.com/hashicorp/terraform-provider-aws/internal/errs"
 	"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
+	"github.com/hashicorp/terraform-provider-aws/internal/semver"
 	tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
 	"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
 	"github.com/hashicorp/terraform-provider-aws/internal/verify"
@@ -31,6 +32,7 @@ func resourceMlflowTrackingServer() *schema.Resource {
 		ReadWithoutTimeout:   resourceMlflowTrackingServerRead,
 		UpdateWithoutTimeout: resourceMlflowTrackingServerUpdate,
 		DeleteWithoutTimeout: resourceMlflowTrackingServerDelete,
+
 		Importer: &schema.ResourceImporter{
 			StateContext: schema.ImportStatePassthroughContext,
 		},
@@ -45,6 +47,17 @@ func resourceMlflowTrackingServer() *schema.Resource {
 				Required:     true,
 				ValidateFunc: validModelDataURL,
 			},
+			"automatic_model_registration": {
+				Type:     schema.TypeBool,
+				Optional: true,
+				Default:  false,
+			},
+			"mlflow_version": {
+				Type:     schema.TypeString,
+				Optional: true,
+				Computed: true,
+				ForceNew: true,
+			},
 			names.AttrRoleARN: {
 				Type:         schema.TypeString,
 				Required:     true,
@@ -56,27 +69,16 @@ func resourceMlflowTrackingServer() *schema.Resource {
 				Required: true,
 				ForceNew: true,
 			},
-			"mlflow_version": {
-				Type:     schema.TypeString,
-				Optional: true,
-				Computed: true,
-				ForceNew: true,
-			},
-			"tracking_server_url": {
-				Type:     schema.TypeString,
-				Computed: true,
-			},
-			"automatic_model_registration": {
-				Type:     schema.TypeBool,
-				Optional: true,
-				Default:  false,
-			},
 			"tracking_server_size": {
 				Type:             schema.TypeString,
 				Optional:         true,
 				Default:          awstypes.TrackingServerSizeS,
 				ValidateDiagFunc: enum.Validate[awstypes.TrackingServerSize](),
 			},
+			"tracking_server_url": {
+				Type:     schema.TypeString,
+				Computed: true,
+			},
 			"weekly_maintenance_window_start": {
 				Type:     schema.TypeString,
 				Optional: true,
@@ -93,13 +95,13 @@ func resourceMlflowTrackingServerCreate(ctx context.Context, d *schema.ResourceD
 	conn := meta.(*conns.AWSClient).SageMakerClient(ctx)
 
 	name := d.Get("tracking_server_name").(string)
-	input := &sagemaker.CreateMlflowTrackingServerInput{
-		TrackingServerName:         aws.String(name),
+	input := sagemaker.CreateMlflowTrackingServerInput{
 		ArtifactStoreUri:           aws.String(d.Get("artifact_store_uri").(string)),
-		RoleArn:                    aws.String(d.Get(names.AttrRoleARN).(string)),
 		AutomaticModelRegistration: aws.Bool(d.Get("automatic_model_registration").(bool)),
-		TrackingServerSize:         awstypes.TrackingServerSize(d.Get("tracking_server_size").(string)),
+		RoleArn:                    aws.String(d.Get(names.AttrRoleARN).(string)),
 		Tags:                       getTagsIn(ctx),
+		TrackingServerName:         aws.String(name),
+		TrackingServerSize:         awstypes.TrackingServerSize(d.Get("tracking_server_size").(string)),
 	}
 
 	if v, ok := d.GetOk("mlflow_version"); ok {
@@ -110,15 +112,16 @@ func resourceMlflowTrackingServerCreate(ctx context.Context, d *schema.ResourceD
 		input.WeeklyMaintenanceWindowStart = aws.String(v.(string))
 	}
 
-	_, err := conn.CreateMlflowTrackingServer(ctx, input)
+	_, err := conn.CreateMlflowTrackingServer(ctx, &input)
+
 	if err != nil {
-		return sdkdiag.AppendErrorf(diags, "creating SageMaker AI Mlflow Tracking Server %s: %s", name, err)
+		return sdkdiag.AppendErrorf(diags, "creating SageMaker AI Mlflow Tracking Server (%s): %s", name, err)
 	}
 
 	d.SetId(name)
 
 	if _, err := waitMlflowTrackingServerCreated(ctx, conn, d.Id()); err != nil {
-		return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) to delete: %s", d.Id(), err)
+		return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) create: %s", d.Id(), err)
 	}
 
 	return append(diags, resourceMlflowTrackingServerRead(ctx, d, meta)...)
@@ -140,15 +143,15 @@ func resourceMlflowTrackingServerRead(ctx context.Context, d *schema.ResourceDat
 		return sdkdiag.AppendErrorf(diags, "reading SageMaker AI Mlflow Tracking Server (%s): %s", d.Id(), err)
 	}
 
-	d.Set("tracking_server_name", output.TrackingServerName)
 	d.Set(names.AttrARN, output.TrackingServerArn)
 	d.Set("artifact_store_uri", output.ArtifactStoreUri)
+	d.Set("automatic_model_registration", output.AutomaticModelRegistration)
+	d.Set("mlflow_version", normalizeMlflowVersion(aws.ToString(output.MlflowVersion)))
 	d.Set(names.AttrRoleARN, output.RoleArn)
-	d.Set("mlflow_version", output.MlflowVersion)
+	d.Set("tracking_server_name", output.TrackingServerName)
 	d.Set("tracking_server_size", output.TrackingServerSize)
-	d.Set("weekly_maintenance_window_start", output.WeeklyMaintenanceWindowStart)
 	d.Set("tracking_server_url", output.TrackingServerUrl)
-	d.Set("automatic_model_registration", output.AutomaticModelRegistration)
+	d.Set("weekly_maintenance_window_start", output.WeeklyMaintenanceWindowStart)
 
 	return diags
 }
@@ -158,7 +161,7 @@ func resourceMlflowTrackingServerUpdate(ctx context.Context, d *schema.ResourceD
 	conn := meta.(*conns.AWSClient).SageMakerClient(ctx)
 
 	if d.HasChangesExcept(names.AttrTags, names.AttrTagsAll) {
-		input := &sagemaker.UpdateMlflowTrackingServerInput{
+		input := sagemaker.UpdateMlflowTrackingServerInput{
 			TrackingServerName: aws.String(d.Id()),
 		}
 
@@ -186,14 +189,14 @@ func resourceMlflowTrackingServerUpdate(ctx context.Context, d *schema.ResourceD
 			}
 		}
 
-		log.Printf("[DEBUG] SageMaker AI Mlflow Tracking Server update config: %#v", *input)
-		_, err := conn.UpdateMlflowTrackingServer(ctx, input)
+		_, err := conn.UpdateMlflowTrackingServer(ctx, &input)
+
 		if err != nil {
-			return sdkdiag.AppendErrorf(diags, "updating SageMaker AI Mlflow Tracking Server: %s", err)
+			return sdkdiag.AppendErrorf(diags, "updating SageMaker AI Mlflow Tracking Server (%s): %s", d.Id(), err)
 		}
 
 		if _, err := waitMlflowTrackingServerUpdated(ctx, conn, d.Id()); err != nil {
-			return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) to update: %s", d.Id(), err)
+			return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) update: %s", d.Id(), err)
 		}
 	}
 
@@ -204,30 +207,33 @@ func resourceMlflowTrackingServerDelete(ctx context.Context, d *schema.ResourceD
 	var diags diag.Diagnostics
 	conn := meta.(*conns.AWSClient).SageMakerClient(ctx)
 
-	input := &sagemaker.DeleteMlflowTrackingServerInput{
+	log.Printf("[DEBUG] Deleting SageMaker AI Mlflow Tracking Server: %s", d.Id())
+	input := sagemaker.DeleteMlflowTrackingServerInput{
 		TrackingServerName: aws.String(d.Id()),
 	}
+	_, err := conn.DeleteMlflowTrackingServer(ctx, &input)
 
-	if _, err := conn.DeleteMlflowTrackingServer(ctx, input); err != nil {
-		if errs.IsA[*awstypes.ResourceNotFound](err) {
-			return diags
-		}
+	if errs.IsA[*awstypes.ResourceNotFound](err) {
+		return diags
+	}
+
+	if err != nil {
 		return sdkdiag.AppendErrorf(diags, "deleting SageMaker AI Mlflow Tracking Server (%s): %s", d.Id(), err)
 	}
 
 	if _, err := waitMlflowTrackingServerDeleted(ctx, conn, d.Id()); err != nil {
-		return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) to delete: %s", d.Id(), err)
+		return sdkdiag.AppendErrorf(diags, "waiting for SageMaker AI Mlflow Tracking Server (%s) delete: %s", d.Id(), err)
 	}
 
 	return diags
 }
 
 func findMlflowTrackingServerByName(ctx context.Context, conn *sagemaker.Client, name string) (*sagemaker.DescribeMlflowTrackingServerOutput, error) {
-	input := &sagemaker.DescribeMlflowTrackingServerInput{
+	input := sagemaker.DescribeMlflowTrackingServerInput{
 		TrackingServerName: aws.String(name),
 	}
 
-	output, err := conn.DescribeMlflowTrackingServer(ctx, input)
+	output, err := conn.DescribeMlflowTrackingServer(ctx, &input)
 
 	if errs.IsA[*awstypes.ResourceNotFound](err) {
 		return nil, &retry.NotFoundError{
@@ -246,3 +252,10 @@ func findMlflowTrackingServerByName(ctx context.Context, conn *sagemaker.Client,
 
 	return output, nil
 }
+
+// normalizeMlflowVersion normalizes the MLflow version to major/minor
+// format (e.g., "1.26" instead of "1.26.0").
+func normalizeMlflowVersion(version string) string {
+	s, _ := semver.MajorMinor(version)
+	return s
+}
diff --git a/internal/service/sagemaker/mlflow_tracking_server_test.go b/internal/service/sagemaker/mlflow_tracking_server_test.go
index d175fc210bde..cf6549d61f7c 100644
--- a/internal/service/sagemaker/mlflow_tracking_server_test.go
+++ b/internal/service/sagemaker/mlflow_tracking_server_test.go
@@ -67,6 +67,36 @@ func TestAccSageMakerMlflowTrackingServer_basic(t *testing.T) {
 	})
 }
 
+func TestAccSageMakerMlflowTrackingServer_mlflowVersion(t *testing.T) {
+	ctx := acctest.Context(t)
+	var mpg sagemaker.DescribeMlflowTrackingServerOutput
+	rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
+	resourceName := "aws_sagemaker_mlflow_tracking_server.test"
+
+	resource.ParallelTest(t, resource.TestCase{
+		PreCheck:                 func() { acctest.PreCheck(ctx, t) },
+		ErrorCheck:               acctest.ErrorCheck(t, names.SageMakerServiceID),
+		ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
+		CheckDestroy:             testAccCheckMlflowTrackingServerDestroy(ctx),
+		Steps: []resource.TestStep{
+			{
+				Config: testAccMlflowTrackingServerConfig_mflowVersion(rName, "2.16"),
+				Check: resource.ComposeTestCheckFunc(
+					testAccCheckMlflowTrackingServerExists(ctx, resourceName, &mpg),
+					resource.TestCheckResourceAttr(resourceName, "tracking_server_name", rName),
+					resource.TestCheckResourceAttr(resourceName, "mlflow_version", "2.16"),
+					resource.TestCheckResourceAttr(resourceName, "automatic_model_registration", acctest.CtFalse),
+					resource.TestCheckResourceAttr(resourceName, "tracking_server_size", "Small"),
+					resource.TestCheckResourceAttrSet(resourceName, "tracking_server_url"),
+					resource.TestCheckResourceAttrPair(resourceName, names.AttrRoleARN, "aws_iam_role.test", names.AttrARN),
+					acctest.CheckResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "sagemaker", fmt.Sprintf("mlflow-tracking-server/%s", rName)),
+					resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, "0"),
+				),
+			},
+		},
+	})
+}
+
 func TestAccSageMakerMlflowTrackingServer_tags(t *testing.T) {
 	ctx := acctest.Context(t)
 	var mpg sagemaker.DescribeMlflowTrackingServerOutput
@@ -246,6 +276,17 @@ resource "aws_sagemaker_mlflow_tracking_server" "test" {
 `, rName))
 }
 
+func testAccMlflowTrackingServerConfig_mflowVersion(rName, mlflowVersion string) string {
+	return acctest.ConfigCompose(testAccMlflowTrackingServerConfig_base(rName), fmt.Sprintf(`
+resource "aws_sagemaker_mlflow_tracking_server" "test" {
+  tracking_server_name = %[1]q
+  mlflow_version       = %[2]q
+  role_arn             = aws_iam_role.test.arn
+  artifact_store_uri   = "s3://${aws_s3_bucket.test.bucket}/path"
+}
+`, rName, mlflowVersion))
+}
+
 func testAccMlflowTrackingServerConfig_update(rName string) string {
 	return acctest.ConfigCompose(testAccMlflowTrackingServerConfig_base(rName), fmt.Sprintf(`
 resource "aws_sagemaker_mlflow_tracking_server" "test" {
diff --git a/tools/tfsdk2fw/go.mod b/tools/tfsdk2fw/go.mod
index 2108d5711dac..44b66459e510 100644
--- a/tools/tfsdk2fw/go.mod
+++ b/tools/tfsdk2fw/go.mod
@@ -200,6 +200,8 @@ require (
 	github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.47.2 // indirect
 	github.com/aws/aws-sdk-go-v2/service/networkmanager v1.34.1 // indirect
 	github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.8.2 // indirect
+	github.com/aws/aws-sdk-go-v2/service/notifications v1.2.1 // indirect
+	github.com/aws/aws-sdk-go-v2/service/notificationscontacts v1.1.1 // indirect
 	github.com/aws/aws-sdk-go-v2/service/oam v1.17.4 // indirect
 	github.com/aws/aws-sdk-go-v2/service/opensearch v1.46.3 // indirect
 	github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.19.2 // indirect
diff --git a/tools/tfsdk2fw/go.sum b/tools/tfsdk2fw/go.sum
index af6c7d292c1d..de347fbc03e6 100644
--- a/tools/tfsdk2fw/go.sum
+++ b/tools/tfsdk2fw/go.sum
@@ -383,6 +383,10 @@ github.com/aws/aws-sdk-go-v2/service/networkmanager v1.34.1 h1:UTjG/1DbzclaYMjoC
 github.com/aws/aws-sdk-go-v2/service/networkmanager v1.34.1/go.mod h1:nBlWp17qsAWgDvhH3/oI2PPqrk/3pcsqLXEPvCzb1Ic=
 github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.8.2 h1:G0n5Bldyn/brzDXCIqcQrScv+ub6NAYXsblmFDxdRmo=
 github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.8.2/go.mod h1:pC3ZHIWCZGExYbsbC+ODkIQ8iLUNJ1F9XaQbiEVjhF8=
+github.com/aws/aws-sdk-go-v2/service/notifications v1.2.1 h1:Ofcf8x0SLQ4yDnd7fJK9Ynzvc7zLhAYaoqTemI+Dmag=
+github.com/aws/aws-sdk-go-v2/service/notifications v1.2.1/go.mod h1:TLnzVuPdsIrpZV5DPT9QnbDoK9P+tRC/s/0jYA2TZIs=
+github.com/aws/aws-sdk-go-v2/service/notificationscontacts v1.1.1 h1:zslYArxSmm7ACnpHBYcsIKf2oBhz9nZabvL4vVt4l78=
+github.com/aws/aws-sdk-go-v2/service/notificationscontacts v1.1.1/go.mod h1:YW1Bu9rrgTMrqe74FX/ADnfABsoOpQPMW8PH2Rmp+f4=
 github.com/aws/aws-sdk-go-v2/service/oam v1.17.4 h1:xQ9Mxd2f2uzF7Z5ijqVfhfxOKr8VhJtI3V1MFRYLUiU=
 github.com/aws/aws-sdk-go-v2/service/oam v1.17.4/go.mod h1:LBtiDaQEt3JcbaEW6eY5S5b28i0yF66RYqwUnGVOGns=
 github.com/aws/aws-sdk-go-v2/service/opensearch v1.46.3 h1:vWClqL1dTCuPtWkaGDW7Y6P9ocqHtfFrjlkWYARm1qI=


Reviews:
user: login: ewbankkit
body: LGTM :rocket:.

```console
% ACCTEST_TIMEOUT=720m make testacc TESTARGS='-run=TestAccSageMakerMlflowTrackingServer_' PKG=sagemaker ACCTEST_PARALLELISM=3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.8 test ./internal/service/sagemaker/... -v -count 1 -parallel 3  -run=TestAccSageMakerMlflowTrackingServer_ -timeout 720m -vet=off
2025/05/12 10:06:39 Initializing Terraform AWS Provider...
=== RUN   TestAccSageMakerMlflowTrackingServer_basic
=== PAUSE TestAccSageMakerMlflowTrackingServer_basic
=== RUN   TestAccSageMakerMlflowTrackingServer_mlflowVersion
=== PAUSE TestAccSageMakerMlflowTrackingServer_mlflowVersion
=== RUN   TestAccSageMakerMlflowTrackingServer_tags
=== PAUSE TestAccSageMakerMlflowTrackingServer_tags
=== RUN   TestAccSageMakerMlflowTrackingServer_disappears
=== PAUSE TestAccSageMakerMlflowTrackingServer_disappears
=== CONT  TestAccSageMakerMlflowTrackingServer_basic
=== CONT  TestAccSageMakerMlflowTrackingServer_tags
=== CONT  TestAccSageMakerMlflowTrackingServer_mlflowVersion
--- PASS: TestAccSageMakerMlflowTrackingServer_mlflowVersion (1862.38s)
=== CONT  TestAccSageMakerMlflowTrackingServer_disappears
--- PASS: TestAccSageMakerMlflowTrackingServer_tags (1865.08s)
--- PASS: TestAccSageMakerMlflowTrackingServer_basic (2147.97s)
--- PASS: TestAccSageMakerMlflowTrackingServer_disappears (2067.10s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/sagemaker	2071.803s
```
```console
% make testacc TESTARGS='-run=TestAccMQBroker_basic\|TestAccMQBroker_normalizedEngineVersion\|TestAccMQBroker_RabbitMQ_normalizedEngineVersion' PKG=mq
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.8 test ./internal/service/mq/... -v -count 1 -parallel 20  -run=TestAccMQBroker_basic\|TestAccMQBroker_normalizedEngineVersion\|TestAccMQBroker_RabbitMQ_normalizedEngineVersion -timeout 360m -vet=off
2025/05/12 14:16:50 Initializing Terraform AWS Provider...
=== RUN   TestAccMQBroker_basic
=== PAUSE TestAccMQBroker_basic
=== RUN   TestAccMQBroker_normalizedEngineVersion
=== PAUSE TestAccMQBroker_normalizedEngineVersion
=== RUN   TestAccMQBroker_RabbitMQ_normalizedEngineVersion
=== PAUSE TestAccMQBroker_RabbitMQ_normalizedEngineVersion
=== CONT  TestAccMQBroker_basic
=== CONT  TestAccMQBroker_RabbitMQ_normalizedEngineVersion
=== CONT  TestAccMQBroker_normalizedEngineVersion
=== NAME  TestAccMQBroker_RabbitMQ_normalizedEngineVersion
    broker_test.go:1310: Step 1/2 error: After applying this test step, the refresh plan was not empty.
        stdout
        
        
        Terraform used the selected providers to generate the following execution
        plan. Resource actions are indicated with the following symbols:
          ~ update in-place
        
        Terraform will perform the following actions:
        
          # aws_mq_broker.test will be updated in-place
          ~ resource "aws_mq_broker" "test" {
                id                            = "b-b86dfbdd-035d-47ff-b020-49d3d89cb02b"
                tags                          = {}
                # (17 unchanged attributes hidden)
        
                # (4 unchanged blocks hidden)
            }
        
        Plan: 0 to add, 1 to change, 0 to destroy.
--- FAIL: TestAccMQBroker_RabbitMQ_normalizedEngineVersion (737.76s)
--- PASS: TestAccMQBroker_normalizedEngineVersion (994.63s)
--- PASS: TestAccMQBroker_basic (1019.24s)
FAIL
FAIL	github.com/hashicorp/terraform-provider-aws/internal/service/mq	1023.897s
FAIL
make: *** [testacc] Error 1
```

Failures is unrelated to this change and is occurring in CI. See https://github.com/hashicorp/terraform-provider-aws/issues/39317.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T19:19:01Z
user: login: jar-b
body: LGTM 🚀
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-12T20:51:38Z
user: login: ewbankkit
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T12:16:04Z

Review comments:
diff_hunk: @@ -1119,6 +1119,7 @@ func TestAccMQBroker_Update_securityGroup(t *testing.T) {
 	})
 }
 
+/*
path: internal/service/mq/broker_test.go
user: login: jar-b
body: Can this be removed entirely? Or will it be re-enabled at some point in the future?
created_at: 2025-05-12T20:50:22Z
author_association: MEMBER
diff_hunk: @@ -1119,6 +1119,7 @@ func TestAccMQBroker_Update_securityGroup(t *testing.T) {
 	})
 }
 
+/*
path: internal/service/mq/broker_test.go
user: login: ewbankkit
body: I'm going to leave it in as it would be nice to test the functionality if the versions line up in the future.
created_at: 2025-05-13T12:16:04Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-30T19:52:06Z
body: ### Community Guidelines

This comment is added to every new Pull Request to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! :rocket:

#### Voting for Prioritization

* Please vote on this Pull Request by adding a :+1: [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original post to help the community and maintainers prioritize it.
* Please see our [prioritization guide](https://hashicorp.github.io/terraform-provider-aws/prioritization/) for additional information on how the maintainers handle prioritization.
* Please **do not** leave +1 or other comments that do not add relevant new information or questions; they generate extra noise for others following the Pull Request and do not help prioritize the request.

### Pull Request Authors

* Review the [contribution guide](https://hashicorp.github.io/terraform-provider-aws/) relating to the type of change you are making to ensure all of the necessary steps have been taken.
* Whether or not the branch has been rebased will **not** impact prioritization, but doing so is always a welcome surprise.


author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-04-30T19:52:07Z
body: :white_check_mark: Thank you for correcting the previously detected issues! The maintainers appreciate your efforts to make the review process as smooth as possible.

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-12T17:25:22Z
body: ### :warning: Our automation has detected the following potential issues with your pull request
---
<details><summary>:x: Dependency Changes (Click to expand)</summary><br>

Typically Go dependency changes are handled in this repository by dependabot or the maintainers. This is to prevent pull request merge conflicts and further delay reviews of contributions. For more information, see the [Dependency Updates](https://hashicorp.github.io/terraform-provider-aws/dependency-updates/) section of the contributing guide.

Remove any changes to the `go.mod` or `go.sum` files and commit them into this pull request to prevent delays with reviewing and potentially merging it.

Additional details:

* Check [open pull requests with the `dependencies` label](https://github.com/hashicorp/terraform-provider-aws/pulls?q=is%3Aopen+is%3Apr+label%3Adependencies) to view other dependency updates.
* If this pull request includes an update the AWS Go SDK (or any other dependency) version, only updates submitted via dependabot will be merged. This pull request will need to remove these changes and will need to be rebased after the existing dependency update via dependabot has been merged for this pull request to be reviewed.
* If this pull request is for supporting a new AWS service:
* Ensure the new AWS service changes are following the [Adding a New AWS Service](https://hashicorp.github.io/terraform-provider-aws/add-a-new-service/) section of the contributing guide, in particular that the dependency addition and initial provider support are in a separate pull request from other changes (e.g. new resources). Contributions not following this item will not be reviewed until the changes are split.
* If this pull request is already a separate pull request from the above item, you can ignore this message.
</details>


author_association: CONTRIBUTOR
user: login: stefanfreitag
created_at: 2025-05-12T19:23:49Z
body: @ewbankkit Thank you for the refactoring, much appreciated! 
author_association: CONTRIBUTOR
user: login: ewbankkit
created_at: 2025-05-13T12:16:22Z
body: @stefanfreitag Thanks for the contribution :tada: :clap:.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-13T12:16:37Z
body: > [!WARNING]
> This Issue has been closed, meaning that any additional comments are much easier for the maintainers to miss. Please assume that the maintainers will not see them.
>
> Ongoing conversations amongst community members are welcome, however, the issue will be locked after 30 days. Moving conversations to another venue, such as the [AWS Provider forum](https://discuss.hashicorp.com/c/terraform-providers/tf-aws/33), is recommended. If you have additional concerns, please open a new issue, referencing this one where needed.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-16T13:52:09Z
body: This functionality has been released in [v5.98.0 of the Terraform AWS Provider](https://github.com/hashicorp/terraform-provider-aws/blob/v5.98.0/CHANGELOG.md).  Please see the [Terraform documentation on provider versioning](https://www.terraform.io/docs/configuration/providers.html#provider-versions) 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](https://github.com/hashicorp/terraform-provider-aws/issues/new/choose) following the template. Thank you!
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-06-16T02:31:35Z
body: 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.
author_association: CONTRIBUTOR