Skip to content

Commit 873a441

Browse files
authored
[Internal] Bump Go SDK to v0.86.0 & Generate Latest TF Structs (#5092)
## Changes <!-- Summary of your changes that are easy to understand --> Bump Go SDK to v0.86.0 & Generate Latest TF Structs. ## Tests <!-- How is this tested? Please see the checklist below and also describe any other relevant tests --> - [ ] `make test` run locally - [ ] relevant change in `docs/` folder - [ ] covered with integration tests in `internal/acceptance` - [ ] using Go SDK - [ ] using TF Plugin Framework - [ ] has entry in `NEXT_CHANGELOG.md` file --------- Co-authored-by: Omer Lachish <[email protected]>
1 parent f07faae commit 873a441

File tree

188 files changed

+94215
-75301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+94215
-75301
lines changed

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f2843dd06e095a39dda2d454a97ceaf6767a2bf3
1+
c4784cea599325a13472b1455e7434d639362d8b

.gitattributes

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ docs/data-sources/apps_settings_custom_template.md linguist-generated=true
1818
docs/data-sources/apps_settings_custom_templates.md linguist-generated=true
1919
docs/data-sources/budget_policies.md linguist-generated=true
2020
docs/data-sources/budget_policy.md linguist-generated=true
21+
docs/data-sources/data_quality_monitor.md linguist-generated=true
22+
docs/data-sources/data_quality_monitors.md linguist-generated=true
23+
docs/data-sources/data_quality_refresh.md linguist-generated=true
24+
docs/data-sources/data_quality_refreshes.md linguist-generated=true
2125
docs/data-sources/database_database_catalog.md linguist-generated=true
2226
docs/data-sources/database_database_catalogs.md linguist-generated=true
2327
docs/data-sources/database_instance.md linguist-generated=true
@@ -53,6 +57,8 @@ docs/resources/account_setting_v2.md linguist-generated=true
5357
docs/resources/alert_v2.md linguist-generated=true
5458
docs/resources/apps_settings_custom_template.md linguist-generated=true
5559
docs/resources/budget_policy.md linguist-generated=true
60+
docs/resources/data_quality_monitor.md linguist-generated=true
61+
docs/resources/data_quality_refresh.md linguist-generated=true
5662
docs/resources/database_database_catalog.md linguist-generated=true
5763
docs/resources/database_instance.md linguist-generated=true
5864
docs/resources/database_synced_database_table.md linguist-generated=true
@@ -97,6 +103,12 @@ internal/providers/pluginfw/products/apps_settings_custom_template/resource_apps
97103
internal/providers/pluginfw/products/budget_policy/data_budget_policies.go linguist-generated=true
98104
internal/providers/pluginfw/products/budget_policy/data_budget_policy.go linguist-generated=true
99105
internal/providers/pluginfw/products/budget_policy/resource_budget_policy.go linguist-generated=true
106+
internal/providers/pluginfw/products/data_quality_monitor/data_data_quality_monitor.go linguist-generated=true
107+
internal/providers/pluginfw/products/data_quality_monitor/data_data_quality_monitors.go linguist-generated=true
108+
internal/providers/pluginfw/products/data_quality_monitor/resource_data_quality_monitor.go linguist-generated=true
109+
internal/providers/pluginfw/products/data_quality_refresh/data_data_quality_refresh.go linguist-generated=true
110+
internal/providers/pluginfw/products/data_quality_refresh/data_data_quality_refreshes.go linguist-generated=true
111+
internal/providers/pluginfw/products/data_quality_refresh/resource_data_quality_refresh.go linguist-generated=true
100112
internal/providers/pluginfw/products/database_database_catalog/data_database_database_catalog.go linguist-generated=true
101113
internal/providers/pluginfw/products/database_database_catalog/data_database_database_catalogs.go linguist-generated=true
102114
internal/providers/pluginfw/products/database_database_catalog/resource_database_database_catalog.go linguist-generated=true
@@ -177,6 +189,8 @@ internal/service/dashboards_tf/legacy_model.go linguist-generated=true
177189
internal/service/dashboards_tf/model.go linguist-generated=true
178190
internal/service/database_tf/legacy_model.go linguist-generated=true
179191
internal/service/database_tf/model.go linguist-generated=true
192+
internal/service/dataquality_tf/legacy_model.go linguist-generated=true
193+
internal/service/dataquality_tf/model.go linguist-generated=true
180194
internal/service/files_tf/legacy_model.go linguist-generated=true
181195
internal/service/files_tf/model.go linguist-generated=true
182196
internal/service/iam_tf/legacy_model.go linguist-generated=true

.github/workflows/next-changelog.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222
run: |
2323
# Use the GitHub API to fetch changed files
2424
files=$(gh pr view ${{ github.event.pull_request.number }} --json files -q '.files[].path')
25-
25+
2626
# Sanitize to avoid code injection
2727
sanitized_files=$(echo "$files" | sed 's/[^a-zA-Z0-9._/-]/_/g')
28-
28+
2929
# Store the sanitized list of files in a temporary file to avoid env variable issues
3030
echo "$sanitized_files" > modified_files.txt
3131
@@ -36,10 +36,10 @@ jobs:
3636
run: |
3737
# Use the GitHub API to fetch the PR message
3838
pr_message=$(gh pr view ${{ github.event.pull_request.number }} --json body -q '.body')
39-
39+
4040
# Sanitize the PR message to avoid code injection, keeping the equal sign
4141
sanitized_pr_message=$(echo "$pr_message" | sed 's/[^a-zA-Z0-9._/-=]/_/g')
42-
42+
4343
# Store the sanitized PR message
4444
echo "$sanitized_pr_message" > pr_message.txt
4545
@@ -48,12 +48,12 @@ jobs:
4848
# Read the sanitized files and PR message from the temporary files
4949
modified_files=$(cat modified_files.txt)
5050
pr_message=$(cat pr_message.txt)
51-
51+
5252
# Check if NEXT_CHANGELOG.md exists in the list of changed files
5353
echo "Changed files: $modified_files"
5454
if ! echo "$modified_files" | grep -q "NEXT_CHANGELOG.md"; then
5555
echo "NEXT_CHANGELOG.md not modified."
56-
56+
5757
# Check if PR message contains NO_CHANGELOG=true
5858
if echo "$pr_message" | grep -q "NO_CHANGELOG=true"; then
5959
echo "NO_CHANGELOG=true found in PR message. Skipping changelog check."
@@ -79,7 +79,7 @@ jobs:
7979
echo "Adding instructions comment."
8080
gh pr comment ${{ github.event.pull_request.number }} --body \
8181
"<!-- NEXT_CHANGELOG_INSTRUCTIONS -->
82-
Please ensure that the NEXT_CHANGELOG.md file is updated with any relevant changes.
82+
Please ensure that the NEXT_CHANGELOG.md file is updated with any relevant changes.
8383
If this is not necessary for your PR, please include the following in your PR description:
8484
NO_CHANGELOG=true
8585
and rerun the job."
@@ -93,7 +93,7 @@ jobs:
9393
# Check if there is a previous instructions comment
9494
previous_comment_ids=$(gh api "repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" \
9595
--jq '.[] | select(.body | startswith("<!-- NEXT_CHANGELOG_INSTRUCTIONS -->")) | .id')
96-
96+
9797
# If a comment exists, delete it
9898
if [ -n "$previous_comment_ids" ]; then
9999
echo "Deleting previous instructions comment."

NEXT_CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
### Breaking Changes
66

77
* Remove stale resources/datasources/documentation related to Clean Room services.
8-
98
### New Features and Improvements
109

1110
* Add `arm` option to `databricks_node_type` instead of `graviton` ([#5028](https://github.com/databricks/terraform-provider-databricks/pull/5028))
11+
* Add `data_quality_monitor` resource and data sources ([#5092](https://github.com/databricks/terraform-provider-databricks/pull/5092)).
12+
* Add `data_quality_refresh` resource and data sources ([#5092](https://github.com/databricks/terraform-provider-databricks/pull/5092)).
1213
* Perform workspace-level permission assignment by `user_name`, `group_name`, or `service_principal_name` ([#5068](https://github.com/databricks/terraform-provider-databricks/pull/5068)).
1314

1415
### Bug Fixes
@@ -24,3 +25,5 @@
2425
### Exporter
2526

2627
### Internal Changes
28+
29+
* Bump the Go SDK to v0.86.0 ([#5092](https://github.com/databricks/terraform-provider-databricks/pull/5092)).

catalog/data_metastore_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func TestMetastoreDataById(t *testing.T) {
1414
qa.ResourceFixture{
1515
MockAccountClientFunc: func(m *mocks.MockAccountClient) {
1616
e := m.GetMockAccountMetastoresAPI().EXPECT()
17-
e.GetByMetastoreId(mock.Anything, "abc").Return(&catalog.AccountsMetastoreInfo{
17+
e.GetByMetastoreId(mock.Anything, "abc").Return(&catalog.AccountsGetMetastoreResponse{
1818
MetastoreInfo: &catalog.MetastoreInfo{
1919
Name: "xyz",
2020
MetastoreId: "abc",

catalog/resource_metastore.go

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,27 @@ func updateForceSendFields(req *catalog.UpdateMetastore) {
3838
}
3939
}
4040

41+
func toCreateAccountsMetastore(create *catalog.CreateMetastore) *catalog.CreateAccountsMetastore {
42+
return &catalog.CreateAccountsMetastore{
43+
Name: create.Name,
44+
Region: create.Region,
45+
StorageRoot: create.StorageRoot,
46+
ForceSendFields: create.ForceSendFields,
47+
}
48+
}
49+
50+
func toUpdateAccountsMetastore(update *catalog.UpdateMetastore) *catalog.UpdateAccountsMetastore {
51+
return &catalog.UpdateAccountsMetastore{
52+
DeltaSharingOrganizationName: update.DeltaSharingOrganizationName,
53+
DeltaSharingRecipientTokenLifetimeInSeconds: update.DeltaSharingRecipientTokenLifetimeInSeconds,
54+
DeltaSharingScope: update.DeltaSharingScope,
55+
Owner: update.Owner,
56+
PrivilegeModelVersion: update.PrivilegeModelVersion,
57+
StorageRootCredentialId: update.StorageRootCredentialId,
58+
ForceSendFields: update.ForceSendFields,
59+
}
60+
}
61+
4162
func ResourceMetastore() common.Resource {
4263
s := common.StructToSchema(MetastoreInfo{},
4364
func(m map[string]*schema.Schema) map[string]*schema.Schema {
@@ -74,7 +95,7 @@ func ResourceMetastore() common.Resource {
7495
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
7596
mi, err := acc.Metastores.Create(ctx,
7697
catalog.AccountsCreateMetastore{
77-
MetastoreInfo: &create,
98+
MetastoreInfo: toCreateAccountsMetastore(&create),
7899
})
79100
if err != nil {
80101
return err
@@ -85,7 +106,7 @@ func ResourceMetastore() common.Resource {
85106
}
86107
_, err = acc.Metastores.Update(ctx, catalog.AccountsUpdateMetastore{
87108
MetastoreId: mi.MetastoreInfo.MetastoreId,
88-
MetastoreInfo: &update,
109+
MetastoreInfo: toUpdateAccountsMetastore(&update),
89110
})
90111
if err != nil {
91112
return err
@@ -131,12 +152,13 @@ func ResourceMetastore() common.Resource {
131152

132153
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
133154
if d.HasChange("owner") {
155+
ownerUpdate := catalog.UpdateMetastore{
156+
Id: update.Id,
157+
Owner: update.Owner,
158+
}
134159
_, err := acc.Metastores.Update(ctx, catalog.AccountsUpdateMetastore{
135-
MetastoreId: d.Id(),
136-
MetastoreInfo: &catalog.UpdateMetastore{
137-
Id: update.Id,
138-
Owner: update.Owner,
139-
},
160+
MetastoreId: d.Id(),
161+
MetastoreInfo: toUpdateAccountsMetastore(&ownerUpdate),
140162
})
141163
if err != nil {
142164
return err
@@ -150,18 +172,19 @@ func ResourceMetastore() common.Resource {
150172
update.Owner = ""
151173
_, err := acc.Metastores.Update(ctx, catalog.AccountsUpdateMetastore{
152174
MetastoreId: d.Id(),
153-
MetastoreInfo: &update,
175+
MetastoreInfo: toUpdateAccountsMetastore(&update),
154176
})
155177
if err != nil {
156178
if d.HasChange("owner") {
157179
// Rollback
158180
old, new := d.GetChange("owner")
181+
rollbackUpdate := catalog.UpdateMetastore{
182+
Id: update.Id,
183+
Owner: old.(string),
184+
}
159185
_, rollbackErr := acc.Metastores.Update(ctx, catalog.AccountsUpdateMetastore{
160-
MetastoreId: d.Id(),
161-
MetastoreInfo: &catalog.UpdateMetastore{
162-
Id: update.Id,
163-
Owner: old.(string),
164-
},
186+
MetastoreId: d.Id(),
187+
MetastoreInfo: toUpdateAccountsMetastore(&rollbackUpdate),
165188
})
166189
if rollbackErr != nil {
167190
return common.OwnerRollbackError(err, rollbackErr, old.(string), new.(string))
@@ -207,7 +230,8 @@ func ResourceMetastore() common.Resource {
207230
Delete: func(ctx context.Context, d *schema.ResourceData, c *common.DatabricksClient) error {
208231
force := d.Get("force_destroy").(bool)
209232
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
210-
return acc.Metastores.Delete(ctx, catalog.DeleteAccountMetastoreRequest{Force: force, MetastoreId: d.Id()})
233+
_, err := acc.Metastores.Delete(ctx, catalog.DeleteAccountMetastoreRequest{Force: force, MetastoreId: d.Id()})
234+
return err
211235
}, func(w *databricks.WorkspaceClient) error {
212236
return w.Metastores.Delete(ctx, catalog.DeleteMetastoreRequest{Force: force, Id: d.Id()})
213237
})

catalog/resource_metastore_assignment.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func ResourceMetastoreAssignment() common.Resource {
3333
create.WorkspaceId = workspaceId
3434

3535
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
36-
err := acc.MetastoreAssignments.Create(ctx,
36+
_, err := acc.MetastoreAssignments.Create(ctx,
3737
catalog.AccountsCreateMetastoreAssignment{
3838
WorkspaceId: workspaceId,
3939
MetastoreId: metastoreId,
@@ -90,12 +90,13 @@ func ResourceMetastoreAssignment() common.Resource {
9090
update.WorkspaceId = workspaceId
9191

9292
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
93-
return acc.MetastoreAssignments.Update(ctx,
93+
_, err := acc.MetastoreAssignments.Update(ctx,
9494
catalog.AccountsUpdateMetastoreAssignment{
9595
WorkspaceId: workspaceId,
9696
MetastoreId: metastoreId,
9797
MetastoreAssignment: &update,
9898
})
99+
return err
99100
}, func(w *databricks.WorkspaceClient) error {
100101
return w.Metastores.UpdateAssignment(ctx, update)
101102
})
@@ -110,7 +111,8 @@ func ResourceMetastoreAssignment() common.Resource {
110111
return err
111112
}
112113
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
113-
return acc.MetastoreAssignments.DeleteByWorkspaceIdAndMetastoreId(ctx, workspaceId, metastoreId)
114+
_, err := acc.MetastoreAssignments.DeleteByWorkspaceIdAndMetastoreId(ctx, workspaceId, metastoreId)
115+
return err
114116
}, func(w *databricks.WorkspaceClient) error {
115117
return w.Metastores.Unassign(ctx, catalog.UnassignRequest{
116118
MetastoreId: metastoreId,

catalog/resource_metastore_data_access.go

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,35 @@ var dacSchema = common.StructToSchema(StorageCredentialInfo{},
7575
return adjustDataAccessSchema(m)
7676
})
7777

78+
func toCreateAccountsStorageCredential(create *catalog.CreateStorageCredential) *catalog.CreateAccountsStorageCredential {
79+
return &catalog.CreateAccountsStorageCredential{
80+
AwsIamRole: create.AwsIamRole,
81+
AzureManagedIdentity: create.AzureManagedIdentity,
82+
AzureServicePrincipal: create.AzureServicePrincipal,
83+
CloudflareApiToken: create.CloudflareApiToken,
84+
Comment: create.Comment,
85+
DatabricksGcpServiceAccount: create.DatabricksGcpServiceAccount,
86+
Name: create.Name,
87+
ReadOnly: create.ReadOnly,
88+
ForceSendFields: create.ForceSendFields,
89+
}
90+
}
91+
92+
func toUpdateAccountsStorageCredential(update *catalog.UpdateStorageCredential) *catalog.UpdateAccountsStorageCredential {
93+
return &catalog.UpdateAccountsStorageCredential{
94+
AwsIamRole: update.AwsIamRole,
95+
AzureManagedIdentity: update.AzureManagedIdentity,
96+
AzureServicePrincipal: update.AzureServicePrincipal,
97+
CloudflareApiToken: update.CloudflareApiToken,
98+
Comment: update.Comment,
99+
DatabricksGcpServiceAccount: update.DatabricksGcpServiceAccount,
100+
IsolationMode: update.IsolationMode,
101+
Owner: update.Owner,
102+
ReadOnly: update.ReadOnly,
103+
ForceSendFields: update.ForceSendFields,
104+
}
105+
}
106+
78107
func ResourceMetastoreDataAccess() common.Resource {
79108
p := common.NewPairID("metastore_id", "name")
80109
return common.Resource{
@@ -97,17 +126,18 @@ func ResourceMetastoreDataAccess() common.Resource {
97126
dac, err := acc.StorageCredentials.Create(ctx,
98127
catalog.AccountsCreateStorageCredential{
99128
MetastoreId: metastoreId,
100-
CredentialInfo: &create,
129+
CredentialInfo: toCreateAccountsStorageCredential(&create),
101130
})
102131
if err != nil {
103132
return err
104133
}
105134
if d.Get("is_default").(bool) {
135+
updateReq := catalog.UpdateMetastore{
136+
StorageRootCredentialId: dac.CredentialInfo.Id,
137+
}
106138
_, err = acc.Metastores.Update(ctx, catalog.AccountsUpdateMetastore{
107-
MetastoreId: metastoreId,
108-
MetastoreInfo: &catalog.UpdateMetastore{
109-
StorageRootCredentialId: dac.CredentialInfo.Id,
110-
},
139+
MetastoreId: metastoreId,
140+
MetastoreInfo: toUpdateAccountsMetastore(&updateReq),
111141
})
112142
if err != nil {
113143
return err
@@ -179,11 +209,12 @@ func ResourceMetastoreDataAccess() common.Resource {
179209
return err
180210
}
181211
return c.AccountOrWorkspaceRequest(func(acc *databricks.AccountClient) error {
182-
return acc.StorageCredentials.Delete(ctx, catalog.DeleteAccountStorageCredentialRequest{
212+
_, err := acc.StorageCredentials.Delete(ctx, catalog.DeleteAccountStorageCredentialRequest{
183213
MetastoreId: metastoreId,
184214
StorageCredentialName: dacName,
185215
Force: force,
186216
})
217+
return err
187218
}, func(w *databricks.WorkspaceClient) error {
188219
return w.StorageCredentials.Delete(ctx, catalog.DeleteStorageCredentialRequest{
189220
Name: dacName,

0 commit comments

Comments
 (0)