in lib/constructs/data-lake-enrollment.ts [329:381]
public grantTableWithColumnPermissions(principal: iam.IPrincipal, permissionGrant: DataLakeEnrollment.TableWithColumnPermissionGrant){
const coreGrant = this.setupIamAndLakeFormationDatabasePermissionForPrincipal(principal, permissionGrant.DatabasePermissions, permissionGrant.GrantableDatabasePermissions);
const wildcardProperty: lakeformation.CfnPermissions.ColumnWildcardProperty = {
excludedColumnNames: permissionGrant.columns
};
const databaseName = this.DataEnrollment.Dataset_Datalake.getAtt('DatabaseInput.Name').toString();
var tableWithColumnsProperty : lakeformation.CfnPermissions.TableWithColumnsResourceProperty = {
columnNames: permissionGrant.columns,
databaseName: databaseName,
name: permissionGrant.table
};
if(permissionGrant.wildCardFilter === null){
tableWithColumnsProperty = {
columnNames: permissionGrant.columns,
databaseName: databaseName,
name: permissionGrant.table
};
}else{
if(permissionGrant.wildCardFilter == DataLakeEnrollment.TableWithColumnFilter.Include){
tableWithColumnsProperty = {
columnNames: permissionGrant.columns,
databaseName: databaseName,
name: permissionGrant.table
};
}
if(permissionGrant.wildCardFilter == DataLakeEnrollment.TableWithColumnFilter.Exclude){
tableWithColumnsProperty = {
databaseName: databaseName,
name: permissionGrant.table,
columnWildcard: {
excludedColumnNames: permissionGrant.columns
}
};
}
}
const tableWithColumnResourceProperty : lakeformation.CfnPermissions.ResourceProperty = {
tableWithColumnsResource: tableWithColumnsProperty
};
this.createLakeFormationPermission(`${coreGrant.grantIdPrefix}-${permissionGrant.table}-databaseTableWithColumnGrant`,coreGrant.dataLakePrincipal , tableWithColumnResourceProperty, permissionGrant.TableColumnPermissions, permissionGrant.GrantableTableColumnPermissions)
}