Skip to content

Commit 25fe426

Browse files
Steven Ayersdanielcmessias
Steven Ayers
authored andcommitted
Adding initial files
1 parent 9623efd commit 25fe426

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

.changelog/24315.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
```release-note:note:enhancement
2+
resource/aws_lakeformation_permissions: Add LF-tag support
3+
datasource/aws_lakeformation_permissions: Add LF-tag support
4+
```

internal/service/lakeformation/filter.go

+40
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ func FilterPermissions(input *lakeformation.ListPermissionsInput, tableType stri
3131
return FilterDatabasePermissions(input.Principal.DataLakePrincipalIdentifier, allPermissions)
3232
}
3333

34+
if input.Resource.LFTag != nil {
35+
return FilterLFTagPermissions(input.Principal.DataLakePrincipalIdentifier, allPermissions)
36+
}
37+
38+
if input.Resource.LFTagPolicy != nil {
39+
return FilterLFTagPolicyPermissions(input.Principal.DataLakePrincipalIdentifier, allPermissions)
40+
}
41+
3442
if tableType == TableTypeTableWithColumns {
3543
return FilterTableWithColumnsPermissions(input.Principal.DataLakePrincipalIdentifier, input.Resource.Table, columnNames, excludedColumnNames, columnWildcard, allPermissions)
3644
}
@@ -176,3 +184,35 @@ func FilterDatabasePermissions(principal *string, allPermissions []*lakeformatio
176184

177185
return cleanPermissions
178186
}
187+
188+
func FilterLFTagPermissions(principal *string, allPermissions []*lakeformation.PrincipalResourcePermissions) []*lakeformation.PrincipalResourcePermissions {
189+
var cleanPermissions []*lakeformation.PrincipalResourcePermissions
190+
191+
for _, perm := range allPermissions {
192+
if aws.StringValue(principal) != aws.StringValue(perm.Principal.DataLakePrincipalIdentifier) {
193+
continue
194+
}
195+
196+
if perm.Resource.LFTag != nil {
197+
cleanPermissions = append(cleanPermissions, perm)
198+
}
199+
}
200+
201+
return cleanPermissions
202+
}
203+
204+
func FilterLFTagPolicyPermissions(principal *string, allPermissions []*lakeformation.PrincipalResourcePermissions) []*lakeformation.PrincipalResourcePermissions {
205+
var cleanPermissions []*lakeformation.PrincipalResourcePermissions
206+
207+
for _, perm := range allPermissions {
208+
if aws.StringValue(principal) != aws.StringValue(perm.Principal.DataLakePrincipalIdentifier) {
209+
continue
210+
}
211+
212+
if perm.Resource.LFTagPolicy != nil {
213+
cleanPermissions = append(cleanPermissions, perm)
214+
}
215+
}
216+
217+
return cleanPermissions
218+
}

internal/service/lakeformation/lakeformation_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@ func TestAccLakeFormation_serial(t *testing.T) {
1919
"databaseMultiple": testAccPermissions_databaseMultiple,
2020
"dataLocation": testAccPermissions_dataLocation,
2121
"disappears": testAccPermissions_disappears,
22+
"lfTag": testAccAWSLakeFormationPermissions_lf_tag,
23+
"lfTagPolicy": testAccAWSLakeFormationPermissions_lf_tag_policy,
2224
},
2325
"PermissionsDataSource": {
2426
"basic": testAccPermissionsDataSource_basic,
2527
"database": testAccPermissionsDataSource_database,
2628
"dataLocation": testAccPermissionsDataSource_dataLocation,
29+
"lfTag": testAccPermissionsDataSource_lf_tag,
30+
"lfTagPolicy": testAccPermissionsDataSource_lf_tag_policy,
2731
"table": testAccPermissionsDataSource_table,
2832
"tableWithColumns": testAccPermissionsDataSource_tableWithColumns,
2933
},

0 commit comments

Comments
 (0)