Skip to content

dependencies: azurerm_mssql_server_security_alert_policy - update to API version 2023-08-01-preview/serversecurityalertpolicies - #29363

Merged
mbfrahry merged 8 commits into
mainfrom
deps/u_mssql_security_alert
May 8, 2025
Merged

mbfrahry merged 8 commits into
mainfrom
deps/u_mssql_security_alert

Conversation

@WodansSon

@WodansSon WodansSon commented Apr 17, 2025 •

Copy link
Copy Markdown
Collaborator

Community Note

  • Please vote on this PR by adding a 👍 reaction to the original PR to help the community and maintainers prioritize for review
  • Please do not leave comments along the lines of "+1", "me too" or "any updates", they generate extra noise for PR followers and do not help prioritize for review

Description

Update the azurerm_mssql_server_security_alert_policy resource to use the 2023-08-01-preview/serversecurityalertpolicies API due to deprecation of the 2014-04-01 APIs on 31 October 2025.

BREAKING CHANGE:

  • The state field no longer supports the New value in the 2023-08-01-preview/serversecurityalertpolicies API.

PR Checklist

  • I have followed the guidelines in our Contributing Documentation.
  • I have checked to ensure there aren't other open Pull Requests for the same update/change.
  • I have checked if my changes close any open issues. If so please include appropriate closing keywords below.
  • I have updated/added Documentation as required written in a helpful and kind way to assist users that may be unfamiliar with the resource / data source.
  • I have used a meaningful PR title to help maintainers and other users understand this change and help prevent duplicate work.
    For example: “resource_name_here - description of change e.g. adding property new_property_name_here”

Changes to existing Resource / Data Source

  • I have added an explanation of what my changes do and why I'd like you to include them (This may be covered by linking to an issue above, but may benefit from additional explanation).
  • I have written new tests for my resource or datasource changes & updated any relevant documentation.
  • I have successfully run tests with my changes locally. If not, please provide details on testing challenges that prevented you running the tests.
  • (For changes that include a state migration only). I have manually tested the migration path between relevant versions of the provider.

Testing

  • My submission includes Test coverage as described in the Contribution Guide and the tests pass. (if this is not possible for any reason, please include details of why you did or could not add test coverage)

image

Change Log

Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.

NOTE: This release contains a breaking change to the mssql_server_security_alert_policy resource. The state field no longer supports the New value in the 2023-08-01-preview/serversecurityalertpolicies API.

BREAKING CHANGE:

  • azurerm_mssql_server_security_alert_policy - The state field no longer supports the New value in the 2023-08-01-preview/serversecurityalertpolicies API. [GH-00000]

ENHANCEMENTS:

dependencies - serversecurityalertpolicies API updated to version 2023-08-01-preview/serversecurityalertpolicies [GH-00000]

This is a (please select all that apply):

  • Bug Fix
  • New Feature (ie adding a service, resource, or data source)
  • Enhancement
  • Dependency
  • Breaking Change

Related Issue(s)

Fixes #0000

Note

If this PR changes meaningfully during the course of review please update the title and description as required.

@WodansSon
WodansSon requested a review from a team as a code owner April 17, 2025 06:30
@WodansSon
WodansSon marked this pull request as draft April 17, 2025 06:51
@WodansSon
WodansSon marked this pull request as ready for review April 18, 2025 04:16
Comment on lines +96 to +97
// NOTE: 'SecurityAlertsPolicyStateNew' no longer exists in the new API...
ValidateFunc: validation.StringInSlice(serversecurityalertpolicies.PossibleValuesForSecurityAlertsPolicyState(),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this is a breaking change, will existing deployments be affected by its removal in the new api or only old ones?

so should we keep the validation for the old value around till 5.0 so users existing deployments are not broken?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I this this is fine as is except we can remove the comment. I did just check the current api and a few other api versions and the removed value doesn't exist and the value when passed into the api currently isn't allowed anymore. I don't see how someone could have New as their value and not see this issue. If it's going to cause issues for that use case, we could just add it back in but the work to get it out for 5.0 feels high here and not worth it

        Error: updating mssql server security alert policy: sql.ServerSecurityAlertPoliciesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="DataSecurityInvalidUserSuppliedParameter" Message="Invalid parameter 'state'. Allowed values are 'Enabled' or 'Disabled'.\r\nParameter name: state"

@mbfrahry mbfrahry left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hey @WodansSon, this change looks good except for the Update. We need to do d.HasChange on all the updatable values so we don't break ignore_changes

resourceGroupName := d.Get("resource_group_name").(string)
serverName := d.Get("server_name").(string)

alertPolicy := expandSecurityAlertPolicy(d)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not using d.HasChange breaks ignore_changes so we won't be able to use this function for the update

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

Comment on lines +96 to +97
// NOTE: 'SecurityAlertsPolicyStateNew' no longer exists in the new API...
ValidateFunc: validation.StringInSlice(serversecurityalertpolicies.PossibleValuesForSecurityAlertsPolicyState(),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I this this is fine as is except we can remove the comment. I did just check the current api and a few other api versions and the removed value doesn't exist and the value when passed into the api currently isn't allowed anymore. I don't see how someone could have New as their value and not see this issue. If it's going to cause issues for that use case, we could just add it back in but the work to get it out for 5.0 feels high here and not worth it

        Error: updating mssql server security alert policy: sql.ServerSecurityAlertPoliciesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="DataSecurityInvalidUserSuppliedParameter" Message="Invalid parameter 'state'. Allowed values are 'Enabled' or 'Disabled'.\r\nParameter name: state"

string(sql.SecurityAlertPolicyStateEnabled),
string(sql.SecurityAlertPolicyStateNew),
}, false),
// NOTE: 'SecurityAlertsPolicyStateNew' no longer exists in the new API...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We can remove this comment as it's not relevant unless looking at this PR

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

}

// Sets the tests 'Primary' and 'Secondary' locations based on the 'ARM_MICROSOFT_TEST' environment variable due to subscription quota policies
func setTestDataLocationBySubscription(data acceptance.TestData) acceptance.TestData {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Similar to a previous comment from another PR, we can remove this and just update the teamcity settings

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

@mbfrahry mbfrahry left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks @WodansSon! It looks like there was an error with one of the tests

TestAccMsSqlServerSecurityAlertPolicy_update
storageAccountAccessKey parameter can not be null when storageEndpoint parameter is not null

@WodansSon

Copy link
Copy Markdown
Collaborator Author

@mbfrahry

Thanks @WodansSon! It looks like there was an error with one of the tests

TestAccMsSqlServerSecurityAlertPolicy_update
storageAccountAccessKey parameter can not be null when storageEndpoint parameter is not null

Fixed.

@mbfrahry mbfrahry left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hey @WodansSon, this looks good but I just a minor nit around the test config naming.

`, r.server(data))
}

func (r MsSqlServerSecurityAlertPolicyResource) updateStepOne(data acceptance.TestData) string {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I understand the desire to use this naming scheme but we should have the test config names describe what is going on in the test so we can reuse test steps where necessary rather than having to rely on comments in other tests to understand what the config is doing

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

@mbfrahry mbfrahry left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM! Thanks @WodansSon

@mbfrahry mbfrahry changed the title [Dependencies:] azurerm_mssql_server_security_alert_policy - update to version 2023-08-01-preview/serversecurityalertpolicies API dependencies: azurerm_mssql_server_security_alert_policy - update to API version 2023-08-01-preview/serversecurityalertpolicies May 8, 2025
@mbfrahry mbfrahry added this to the v4.28.0 milestone May 8, 2025
@mbfrahry
mbfrahry dismissed katbyte’s stale review May 8, 2025 23:03

Dismissing stale review

@mbfrahry
mbfrahry merged commit c3fe9f3 into main May 8, 2025
@mbfrahry
mbfrahry deleted the deps/u_mssql_security_alert branch May 8, 2025 23:03
mbfrahry added a commit that referenced this pull request May 8, 2025
jackofallops added a commit that referenced this pull request May 9, 2025
* changelog for 4.28 release

* Update CHANGELOG.md #29410

* Update CHANGELOG.md #29397

* Update CHANGELOG.md #27454

* Update CHANGELOG.md #28919

* Update CHANGELOG.md #29443

* Update CHANGELOG.md #29443

* Update CHANGELOG.md #29456

* Update CHANGELOG.md for #29424

* Update CHANGELOG.md for #29150

* Update CHANGELOG.md #29435

* Update CHANGELOG.md #29431

* Update CHANGELOG.md #29396

* Update CHANGELOG.md #29197

* Update CHANGELOG.md for #28705

* Update CHANGELOG.md #28954

* Update CHANGELOG.md for #29363

* prep for release

---------

Co-authored-by: catriona-m <86247157+catriona-m@users.noreply.github.com>
Co-authored-by: Wodans Son <20408400+WodansSon@users.noreply.github.com>
Co-authored-by: sreallymatt <106555974+sreallymatt@users.noreply.github.com>
Co-authored-by: Matthew Frahry <mbfrahry@gmail.com>
Co-authored-by: jackofallops <ste@hashicorp.com>
@github-actions

github-actions Bot commented Jun 8, 2025

Copy link
Copy Markdown
Contributor

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 contributions.
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 Jun 8, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants