public grantTableWithColumnPermissions()

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)


    }