@@ -15,17 +15,17 @@ import (
1515)
1616
1717// diffPermissionsForPrincipal returns an array of catalog.PermissionsChange of this permissions list with `diff` privileges removed
18- func diffPermissionsForPrincipal (principal string , desired catalog.PermissionsList , existing catalog.PermissionsList ) (diff []catalog.PermissionsChange ) {
18+ func diffPermissionsForPrincipal (principal string , desired [] catalog.PrivilegeAssignment , existing [] catalog.PrivilegeAssignment ) (diff []catalog.PermissionsChange ) {
1919 // diffs change sets for principal
2020 configured := map [string ]* schema.Set {}
21- for _ , v := range desired . PrivilegeAssignments {
21+ for _ , v := range desired {
2222 if v .Principal == principal {
2323 configured [v .Principal ] = permissions .SliceToSet (v .Privileges )
2424 }
2525 }
2626 // existing permissions that needs removal for principal
2727 remote := map [string ]* schema.Set {}
28- for _ , v := range existing . PrivilegeAssignments {
28+ for _ , v := range existing {
2929 if v .Principal == principal {
3030 remote [v .Principal ] = permissions .SliceToSet (v .Privileges )
3131 }
@@ -66,25 +66,25 @@ func diffPermissionsForPrincipal(principal string, desired catalog.PermissionsLi
6666}
6767
6868// replacePermissionsForPrincipal merges removal diff of existing permissions on the platform
69- func replacePermissionsForPrincipal (a permissions.UnityCatalogPermissionsAPI , securable string , name string , principal string , list catalog.PermissionsList ) error {
69+ func replacePermissionsForPrincipal (a permissions.UnityCatalogPermissionsAPI , securable string , name string , principal string , list catalog.GetPermissionsResponse ) error {
7070 securableType := permissions .Mappings .GetSecurableType (securable )
7171 existing , err := a .GetPermissions (securableType , name )
7272 if err != nil {
7373 return err
7474 }
75- err = a .UpdatePermissions (securableType , name , diffPermissionsForPrincipal (principal , list , * existing ))
75+ err = a .UpdatePermissions (securableType , name , diffPermissionsForPrincipal (principal , list . PrivilegeAssignments , existing . PrivilegeAssignments ))
7676 if err != nil {
7777 return err
7878 }
79- return a .WaitForUpdate (1 * time .Minute , securableType , name , list , func (current * catalog.PermissionsList , desired catalog.PermissionsList ) []catalog.PermissionsChange {
80- return diffPermissionsForPrincipal (principal , desired , * current )
79+ return a .WaitForUpdate (1 * time .Minute , securableType , name , list . PrivilegeAssignments , func (current [] catalog.PrivilegeAssignment , desired [] catalog.PrivilegeAssignment ) []catalog.PermissionsChange {
80+ return diffPermissionsForPrincipal (principal , desired , current )
8181 })
8282}
8383
8484// filterPermissionsForPrincipal extracts permissions for the given principal and transforms to permissions.UnityCatalogPrivilegeAssignment to match Schema
85- func filterPermissionsForPrincipal (in catalog.PermissionsList , principal string ) (* permissions.UnityCatalogPrivilegeAssignment , error ) {
85+ func filterPermissionsForPrincipal (in [] catalog.PrivilegeAssignment , principal string ) (* permissions.UnityCatalogPrivilegeAssignment , error ) {
8686 grantsForPrincipal := []permissions.UnityCatalogPrivilegeAssignment {}
87- for _ , v := range in . PrivilegeAssignments {
87+ for _ , v := range in {
8888 privileges := []string {}
8989 if v .Principal == principal {
9090 for _ , p := range v .Privileges {
@@ -166,7 +166,7 @@ func ResourceGrant() common.Resource {
166166 }
167167 principal := d .Get ("principal" ).(string )
168168 privileges := permissions .SetToSlice (d .Get ("privileges" ).(* schema.Set ))
169- var grants = catalog.PermissionsList {
169+ var grants = catalog.GetPermissionsResponse {
170170 PrivilegeAssignments : []catalog.PrivilegeAssignment {
171171 {
172172 Principal : principal ,
@@ -192,7 +192,7 @@ func ResourceGrant() common.Resource {
192192 if err != nil {
193193 return err
194194 }
195- grantsForPrincipal , err := filterPermissionsForPrincipal (* grants , principal )
195+ grantsForPrincipal , err := filterPermissionsForPrincipal (grants . PrivilegeAssignments , principal )
196196 if err != nil {
197197 return err
198198 }
@@ -216,7 +216,7 @@ func ResourceGrant() common.Resource {
216216 return err
217217 }
218218 privileges := permissions .SetToSlice (d .Get ("privileges" ).(* schema.Set ))
219- var grants = catalog.PermissionsList {
219+ var grants = catalog.GetPermissionsResponse {
220220 PrivilegeAssignments : []catalog.PrivilegeAssignment {
221221 {
222222 Principal : principal ,
@@ -241,7 +241,7 @@ func ResourceGrant() common.Resource {
241241 return err
242242 }
243243 unityCatalogPermissionsAPI := permissions .NewUnityCatalogPermissionsAPI (ctx , c )
244- return replacePermissionsForPrincipal (unityCatalogPermissionsAPI , securable , name , principal , catalog.PermissionsList {})
244+ return replacePermissionsForPrincipal (unityCatalogPermissionsAPI , securable , name , principal , catalog.GetPermissionsResponse {})
245245 },
246246 }
247247}
0 commit comments