Files
agent-claw/cdk/node_modules/aws-cdk-lib/aws-lakeformation/lib/lakeformation.generated.js
2026-05-06 18:55:16 -05:00

2 lines
110 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnTagAssociation=exports.CfnTag=exports.CfnResource=exports.CfnPrincipalPermissions=exports.CfnPermissions=exports.CfnDataLakeSettings=exports.CfnDataCellsFilter=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnDataCellsFilter extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnDataCellsFilter",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::DataCellsFilter";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDataCellsFilterPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDataCellsFilter(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDataCellsFilter(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDataCellsFilter.CFN_RESOURCE_TYPE_NAME}_columnNames;_columnWildcard;_databaseName;_name;_rowFilter;_tableCatalogId;_tableName;cfnPropertyNames={columnNames:"ColumnNames",columnWildcard:"ColumnWildcard",databaseName:"DatabaseName",name:"Name",rowFilter:"RowFilter",tableCatalogId:"TableCatalogId",tableName:"TableName"};constructor(scope,id,props){super(scope,id,{type:CfnDataCellsFilter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnDataCellsFilterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDataCellsFilter),error}cdk().requireProperty(props,"databaseName",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"tableCatalogId",this),cdk().requireProperty(props,"tableName",this),this._columnNames=props.columnNames,this._columnWildcard=props.columnWildcard,this._databaseName=props.databaseName,this._name=props.name,this._rowFilter=props.rowFilter,this._tableCatalogId=props.tableCatalogId,this._tableName=props.tableName}get dataCellsFilterRef(){return{tableCatalogId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),databaseName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),tableName:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),dataCellsFilterName:cdk().Fn.select(3,cdk().Fn.split("|",this.ref))}}get columnNames(){return this._columnNames}set columnNames(value){cdk().traceProperty(this.node,"ColumnNames"),this._columnNames=value}get columnWildcard(){return this._columnWildcard}set columnWildcard(value){cdk().traceProperty(this.node,"ColumnWildcard"),this._columnWildcard=value}get databaseName(){return this._databaseName}set databaseName(value){cdk().traceProperty(this.node,"DatabaseName"),this._databaseName=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get rowFilter(){return this._rowFilter}set rowFilter(value){cdk().traceProperty(this.node,"RowFilter"),this._rowFilter=value}get tableCatalogId(){return this._tableCatalogId}set tableCatalogId(value){cdk().traceProperty(this.node,"TableCatalogId"),this._tableCatalogId=value}get tableName(){return this._tableName}set tableName(value){cdk().traceProperty(this.node,"TableName"),this._tableName=value}get cfnProperties(){return{columnNames:this._columnNames,columnWildcard:this._columnWildcard,databaseName:this._databaseName,name:this._name,rowFilter:this._rowFilter,tableCatalogId:this._tableCatalogId,tableName:this._tableName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnDataCellsFilter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDataCellsFilterPropsToCloudFormation(props)}}exports.CfnDataCellsFilter=CfnDataCellsFilter;function CfnDataCellsFilterRowFilterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allRowsWildcard",cdk().validateObject)(properties.allRowsWildcard)),errors.collect(cdk().propertyValidator("filterExpression",cdk().validateString)(properties.filterExpression)),errors.wrap('supplied properties not correct for "RowFilterProperty"')}function convertCfnDataCellsFilterRowFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataCellsFilterRowFilterPropertyValidator(properties).assertSuccess(),{AllRowsWildcard:cdk().objectToCloudFormation(properties.allRowsWildcard),FilterExpression:cdk().stringToCloudFormation(properties.filterExpression)}):properties}function CfnDataCellsFilterRowFilterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allRowsWildcard","AllRowsWildcard",properties.AllRowsWildcard!=null?cfn_parse().FromCloudFormation.getAny(properties.AllRowsWildcard):void 0),ret.addPropertyResult("filterExpression","FilterExpression",properties.FilterExpression!=null?cfn_parse().FromCloudFormation.getString(properties.FilterExpression):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDataCellsFilterColumnWildcardPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludedColumnNames",cdk().listValidator(cdk().validateString))(properties.excludedColumnNames)),errors.wrap('supplied properties not correct for "ColumnWildcardProperty"')}function convertCfnDataCellsFilterColumnWildcardPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataCellsFilterColumnWildcardPropertyValidator(properties).assertSuccess(),{ExcludedColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedColumnNames)}):properties}function CfnDataCellsFilterColumnWildcardPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludedColumnNames","ExcludedColumnNames",properties.ExcludedColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedColumnNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDataCellsFilterPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("columnNames",cdk().listValidator(cdk().validateString))(properties.columnNames)),errors.collect(cdk().propertyValidator("columnWildcard",CfnDataCellsFilterColumnWildcardPropertyValidator)(properties.columnWildcard)),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("rowFilter",CfnDataCellsFilterRowFilterPropertyValidator)(properties.rowFilter)),errors.collect(cdk().propertyValidator("tableCatalogId",cdk().requiredValidator)(properties.tableCatalogId)),errors.collect(cdk().propertyValidator("tableCatalogId",cdk().validateString)(properties.tableCatalogId)),errors.collect(cdk().propertyValidator("tableName",cdk().requiredValidator)(properties.tableName)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.wrap('supplied properties not correct for "CfnDataCellsFilterProps"')}function convertCfnDataCellsFilterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataCellsFilterPropsValidator(properties).assertSuccess(),{ColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.columnNames),ColumnWildcard:convertCfnDataCellsFilterColumnWildcardPropertyToCloudFormation(properties.columnWildcard),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name),RowFilter:convertCfnDataCellsFilterRowFilterPropertyToCloudFormation(properties.rowFilter),TableCatalogId:cdk().stringToCloudFormation(properties.tableCatalogId),TableName:cdk().stringToCloudFormation(properties.tableName)}):properties}function CfnDataCellsFilterPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("columnNames","ColumnNames",properties.ColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ColumnNames):void 0),ret.addPropertyResult("columnWildcard","ColumnWildcard",properties.ColumnWildcard!=null?CfnDataCellsFilterColumnWildcardPropertyFromCloudFormation(properties.ColumnWildcard):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("rowFilter","RowFilter",properties.RowFilter!=null?CfnDataCellsFilterRowFilterPropertyFromCloudFormation(properties.RowFilter):void 0),ret.addPropertyResult("tableCatalogId","TableCatalogId",properties.TableCatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.TableCatalogId):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDataLakeSettings extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnDataLakeSettings",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::DataLakeSettings";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDataLakeSettingsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDataLakeSettings(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDataLakeSettings(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDataLakeSettings.CFN_RESOURCE_TYPE_NAME}_admins;_allowExternalDataFiltering;_allowFullTableExternalDataAccess;_authorizedSessionTagValueList;_createDatabaseDefaultPermissions;_createTableDefaultPermissions;_externalDataFilteringAllowList;_mutationType;_parameters;_readOnlyAdmins;_trustedResourceOwners;cfnPropertyNames={admins:"Admins",allowExternalDataFiltering:"AllowExternalDataFiltering",allowFullTableExternalDataAccess:"AllowFullTableExternalDataAccess",authorizedSessionTagValueList:"AuthorizedSessionTagValueList",createDatabaseDefaultPermissions:"CreateDatabaseDefaultPermissions",createTableDefaultPermissions:"CreateTableDefaultPermissions",externalDataFilteringAllowList:"ExternalDataFilteringAllowList",mutationType:"MutationType",parameters:"Parameters",readOnlyAdmins:"ReadOnlyAdmins",trustedResourceOwners:"TrustedResourceOwners"};constructor(scope,id,props={}){super(scope,id,{type:CfnDataLakeSettings.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnDataLakeSettingsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDataLakeSettings),error}this._admins=props.admins,this._allowExternalDataFiltering=props.allowExternalDataFiltering,this._allowFullTableExternalDataAccess=props.allowFullTableExternalDataAccess,this._authorizedSessionTagValueList=props.authorizedSessionTagValueList,this._createDatabaseDefaultPermissions=props.createDatabaseDefaultPermissions,this._createTableDefaultPermissions=props.createTableDefaultPermissions,this._externalDataFilteringAllowList=props.externalDataFilteringAllowList,this._mutationType=props.mutationType,this._parameters=props.parameters,this._readOnlyAdmins=props.readOnlyAdmins,this._trustedResourceOwners=props.trustedResourceOwners}get dataLakeSettingsRef(){return{dataLakeSettingsId:this.ref}}get admins(){return this._admins}set admins(value){cdk().traceProperty(this.node,"Admins"),this._admins=value}get allowExternalDataFiltering(){return this._allowExternalDataFiltering}set allowExternalDataFiltering(value){cdk().traceProperty(this.node,"AllowExternalDataFiltering"),this._allowExternalDataFiltering=value}get allowFullTableExternalDataAccess(){return this._allowFullTableExternalDataAccess}set allowFullTableExternalDataAccess(value){cdk().traceProperty(this.node,"AllowFullTableExternalDataAccess"),this._allowFullTableExternalDataAccess=value}get authorizedSessionTagValueList(){return this._authorizedSessionTagValueList}set authorizedSessionTagValueList(value){cdk().traceProperty(this.node,"AuthorizedSessionTagValueList"),this._authorizedSessionTagValueList=value}get createDatabaseDefaultPermissions(){return this._createDatabaseDefaultPermissions}set createDatabaseDefaultPermissions(value){cdk().traceProperty(this.node,"CreateDatabaseDefaultPermissions"),this._createDatabaseDefaultPermissions=value}get createTableDefaultPermissions(){return this._createTableDefaultPermissions}set createTableDefaultPermissions(value){cdk().traceProperty(this.node,"CreateTableDefaultPermissions"),this._createTableDefaultPermissions=value}get externalDataFilteringAllowList(){return this._externalDataFilteringAllowList}set externalDataFilteringAllowList(value){cdk().traceProperty(this.node,"ExternalDataFilteringAllowList"),this._externalDataFilteringAllowList=value}get mutationType(){return this._mutationType}set mutationType(value){cdk().traceProperty(this.node,"MutationType"),this._mutationType=value}get parameters(){return this._parameters}set parameters(value){cdk().traceProperty(this.node,"Parameters"),this._parameters=value}get readOnlyAdmins(){return this._readOnlyAdmins}set readOnlyAdmins(value){cdk().traceProperty(this.node,"ReadOnlyAdmins"),this._readOnlyAdmins=value}get trustedResourceOwners(){return this._trustedResourceOwners}set trustedResourceOwners(value){cdk().traceProperty(this.node,"TrustedResourceOwners"),this._trustedResourceOwners=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{admins:this._admins,allowExternalDataFiltering:this._allowExternalDataFiltering,allowFullTableExternalDataAccess:this._allowFullTableExternalDataAccess,authorizedSessionTagValueList:this._authorizedSessionTagValueList,createDatabaseDefaultPermissions:this._createDatabaseDefaultPermissions,createTableDefaultPermissions:this._createTableDefaultPermissions,externalDataFilteringAllowList:this._externalDataFilteringAllowList,mutationType:this._mutationType,parameters:this._parameters,readOnlyAdmins:this._readOnlyAdmins,trustedResourceOwners:this._trustedResourceOwners}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnDataLakeSettings.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDataLakeSettingsPropsToCloudFormation(props)}}exports.CfnDataLakeSettings=CfnDataLakeSettings;function CfnDataLakeSettingsDataLakePrincipalPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataLakePrincipalIdentifier",cdk().requiredValidator)(properties.dataLakePrincipalIdentifier)),errors.collect(cdk().propertyValidator("dataLakePrincipalIdentifier",cdk().validateString)(properties.dataLakePrincipalIdentifier)),errors.wrap('supplied properties not correct for "DataLakePrincipalProperty"')}function convertCfnDataLakeSettingsDataLakePrincipalPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataLakeSettingsDataLakePrincipalPropertyValidator(properties).assertSuccess(),{DataLakePrincipalIdentifier:cdk().stringToCloudFormation(properties.dataLakePrincipalIdentifier)}):properties}function CfnDataLakeSettingsDataLakePrincipalPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataLakePrincipalIdentifier","DataLakePrincipalIdentifier",properties.DataLakePrincipalIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.DataLakePrincipalIdentifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDataLakeSettingsPrincipalPermissionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("permissions",cdk().requiredValidator)(properties.permissions)),errors.collect(cdk().propertyValidator("permissions",cdk().listValidator(cdk().validateString))(properties.permissions)),errors.collect(cdk().propertyValidator("principal",cdk().requiredValidator)(properties.principal)),errors.collect(cdk().propertyValidator("principal",CfnDataLakeSettingsDataLakePrincipalPropertyValidator)(properties.principal)),errors.wrap('supplied properties not correct for "PrincipalPermissionsProperty"')}function convertCfnDataLakeSettingsPrincipalPermissionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataLakeSettingsPrincipalPermissionsPropertyValidator(properties).assertSuccess(),{Permissions:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissions),Principal:convertCfnDataLakeSettingsDataLakePrincipalPropertyToCloudFormation(properties.principal)}):properties}function CfnDataLakeSettingsPrincipalPermissionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("permissions","Permissions",properties.Permissions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Permissions):void 0),ret.addPropertyResult("principal","Principal",properties.Principal!=null?CfnDataLakeSettingsDataLakePrincipalPropertyFromCloudFormation(properties.Principal):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDataLakeSettingsPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("admins",cdk().listValidator(CfnDataLakeSettingsDataLakePrincipalPropertyValidator))(properties.admins)),errors.collect(cdk().propertyValidator("allowExternalDataFiltering",cdk().validateBoolean)(properties.allowExternalDataFiltering)),errors.collect(cdk().propertyValidator("allowFullTableExternalDataAccess",cdk().validateBoolean)(properties.allowFullTableExternalDataAccess)),errors.collect(cdk().propertyValidator("authorizedSessionTagValueList",cdk().listValidator(cdk().validateString))(properties.authorizedSessionTagValueList)),errors.collect(cdk().propertyValidator("createDatabaseDefaultPermissions",cdk().listValidator(CfnDataLakeSettingsPrincipalPermissionsPropertyValidator))(properties.createDatabaseDefaultPermissions)),errors.collect(cdk().propertyValidator("createTableDefaultPermissions",cdk().listValidator(CfnDataLakeSettingsPrincipalPermissionsPropertyValidator))(properties.createTableDefaultPermissions)),errors.collect(cdk().propertyValidator("externalDataFilteringAllowList",cdk().listValidator(CfnDataLakeSettingsDataLakePrincipalPropertyValidator))(properties.externalDataFilteringAllowList)),errors.collect(cdk().propertyValidator("mutationType",cdk().validateString)(properties.mutationType)),errors.collect(cdk().propertyValidator("parameters",cdk().validateObject)(properties.parameters)),errors.collect(cdk().propertyValidator("readOnlyAdmins",cdk().listValidator(CfnDataLakeSettingsDataLakePrincipalPropertyValidator))(properties.readOnlyAdmins)),errors.collect(cdk().propertyValidator("trustedResourceOwners",cdk().listValidator(cdk().validateString))(properties.trustedResourceOwners)),errors.wrap('supplied properties not correct for "CfnDataLakeSettingsProps"')}function convertCfnDataLakeSettingsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDataLakeSettingsPropsValidator(properties).assertSuccess(),{Admins:cdk().listMapper(convertCfnDataLakeSettingsDataLakePrincipalPropertyToCloudFormation)(properties.admins),AllowExternalDataFiltering:cdk().booleanToCloudFormation(properties.allowExternalDataFiltering),AllowFullTableExternalDataAccess:cdk().booleanToCloudFormation(properties.allowFullTableExternalDataAccess),AuthorizedSessionTagValueList:cdk().listMapper(cdk().stringToCloudFormation)(properties.authorizedSessionTagValueList),CreateDatabaseDefaultPermissions:cdk().listMapper(convertCfnDataLakeSettingsPrincipalPermissionsPropertyToCloudFormation)(properties.createDatabaseDefaultPermissions),CreateTableDefaultPermissions:cdk().listMapper(convertCfnDataLakeSettingsPrincipalPermissionsPropertyToCloudFormation)(properties.createTableDefaultPermissions),ExternalDataFilteringAllowList:cdk().listMapper(convertCfnDataLakeSettingsDataLakePrincipalPropertyToCloudFormation)(properties.externalDataFilteringAllowList),MutationType:cdk().stringToCloudFormation(properties.mutationType),Parameters:cdk().objectToCloudFormation(properties.parameters),ReadOnlyAdmins:cdk().listMapper(convertCfnDataLakeSettingsDataLakePrincipalPropertyToCloudFormation)(properties.readOnlyAdmins),TrustedResourceOwners:cdk().listMapper(cdk().stringToCloudFormation)(properties.trustedResourceOwners)}):properties}function CfnDataLakeSettingsPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("admins","Admins",properties.Admins!=null?cfn_parse().FromCloudFormation.getArray(CfnDataLakeSettingsDataLakePrincipalPropertyFromCloudFormation)(properties.Admins):void 0),ret.addPropertyResult("allowExternalDataFiltering","AllowExternalDataFiltering",properties.AllowExternalDataFiltering!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AllowExternalDataFiltering):void 0),ret.addPropertyResult("allowFullTableExternalDataAccess","AllowFullTableExternalDataAccess",properties.AllowFullTableExternalDataAccess!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AllowFullTableExternalDataAccess):void 0),ret.addPropertyResult("authorizedSessionTagValueList","AuthorizedSessionTagValueList",properties.AuthorizedSessionTagValueList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AuthorizedSessionTagValueList):void 0),ret.addPropertyResult("createDatabaseDefaultPermissions","CreateDatabaseDefaultPermissions",properties.CreateDatabaseDefaultPermissions!=null?cfn_parse().FromCloudFormation.getArray(CfnDataLakeSettingsPrincipalPermissionsPropertyFromCloudFormation)(properties.CreateDatabaseDefaultPermissions):void 0),ret.addPropertyResult("createTableDefaultPermissions","CreateTableDefaultPermissions",properties.CreateTableDefaultPermissions!=null?cfn_parse().FromCloudFormation.getArray(CfnDataLakeSettingsPrincipalPermissionsPropertyFromCloudFormation)(properties.CreateTableDefaultPermissions):void 0),ret.addPropertyResult("externalDataFilteringAllowList","ExternalDataFilteringAllowList",properties.ExternalDataFilteringAllowList!=null?cfn_parse().FromCloudFormation.getArray(CfnDataLakeSettingsDataLakePrincipalPropertyFromCloudFormation)(properties.ExternalDataFilteringAllowList):void 0),ret.addPropertyResult("mutationType","MutationType",properties.MutationType!=null?cfn_parse().FromCloudFormation.getString(properties.MutationType):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getAny(properties.Parameters):void 0),ret.addPropertyResult("readOnlyAdmins","ReadOnlyAdmins",properties.ReadOnlyAdmins!=null?cfn_parse().FromCloudFormation.getArray(CfnDataLakeSettingsDataLakePrincipalPropertyFromCloudFormation)(properties.ReadOnlyAdmins):void 0),ret.addPropertyResult("trustedResourceOwners","TrustedResourceOwners",properties.TrustedResourceOwners!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TrustedResourceOwners):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPermissions extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnPermissions",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::Permissions";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPermissionsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPermissions(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnPermissions(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPermissions.CFN_RESOURCE_TYPE_NAME}_dataLakePrincipal;_permissions;_permissionsWithGrantOption;_resource;cfnPropertyNames={dataLakePrincipal:"DataLakePrincipal",permissions:"Permissions",permissionsWithGrantOption:"PermissionsWithGrantOption",resource:"Resource"};constructor(scope,id,props){super(scope,id,{type:CfnPermissions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnPermissionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPermissions),error}cdk().requireProperty(props,"dataLakePrincipal",this),cdk().requireProperty(props,"resource",this),this._dataLakePrincipal=props.dataLakePrincipal,this._permissions=props.permissions,this._permissionsWithGrantOption=props.permissionsWithGrantOption,this._resource=props.resource}get permissionsRef(){return{permissionsId:this.ref}}get dataLakePrincipal(){return this._dataLakePrincipal}set dataLakePrincipal(value){cdk().traceProperty(this.node,"DataLakePrincipal"),this._dataLakePrincipal=value}get permissions(){return this._permissions}set permissions(value){cdk().traceProperty(this.node,"Permissions"),this._permissions=value}get permissionsWithGrantOption(){return this._permissionsWithGrantOption}set permissionsWithGrantOption(value){cdk().traceProperty(this.node,"PermissionsWithGrantOption"),this._permissionsWithGrantOption=value}get resource(){return this._resource}set resource(value){cdk().traceProperty(this.node,"Resource"),this._resource=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{dataLakePrincipal:this._dataLakePrincipal,permissions:this._permissions,permissionsWithGrantOption:this._permissionsWithGrantOption,resource:this._resource}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPermissions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPermissionsPropsToCloudFormation(props)}}exports.CfnPermissions=CfnPermissions;function CfnPermissionsDataLakePrincipalPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataLakePrincipalIdentifier",cdk().validateString)(properties.dataLakePrincipalIdentifier)),errors.wrap('supplied properties not correct for "DataLakePrincipalProperty"')}function convertCfnPermissionsDataLakePrincipalPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsDataLakePrincipalPropertyValidator(properties).assertSuccess(),{DataLakePrincipalIdentifier:cdk().stringToCloudFormation(properties.dataLakePrincipalIdentifier)}):properties}function CfnPermissionsDataLakePrincipalPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataLakePrincipalIdentifier","DataLakePrincipalIdentifier",properties.DataLakePrincipalIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.DataLakePrincipalIdentifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsTableWildcardPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.wrap('supplied properties not correct for "TableWildcardProperty"')}function convertCfnPermissionsTableWildcardPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsTableWildcardPropertyValidator(properties).assertSuccess(),{}):properties}function CfnPermissionsTableWildcardPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsTableResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tableWildcard",CfnPermissionsTableWildcardPropertyValidator)(properties.tableWildcard)),errors.wrap('supplied properties not correct for "TableResourceProperty"')}function convertCfnPermissionsTableResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsTableResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name),TableWildcard:convertCfnPermissionsTableWildcardPropertyToCloudFormation(properties.tableWildcard)}):properties}function CfnPermissionsTableResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tableWildcard","TableWildcard",properties.TableWildcard!=null?CfnPermissionsTableWildcardPropertyFromCloudFormation(properties.TableWildcard):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsDatabaseResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "DatabaseResourceProperty"')}function convertCfnPermissionsDatabaseResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsDatabaseResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnPermissionsDatabaseResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsDataLocationResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("s3Resource",cdk().validateString)(properties.s3Resource)),errors.wrap('supplied properties not correct for "DataLocationResourceProperty"')}function convertCfnPermissionsDataLocationResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsDataLocationResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),S3Resource:cdk().stringToCloudFormation(properties.s3Resource)}):properties}function CfnPermissionsDataLocationResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("s3Resource","S3Resource",properties.S3Resource!=null?cfn_parse().FromCloudFormation.getString(properties.S3Resource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsColumnWildcardPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludedColumnNames",cdk().listValidator(cdk().validateString))(properties.excludedColumnNames)),errors.wrap('supplied properties not correct for "ColumnWildcardProperty"')}function convertCfnPermissionsColumnWildcardPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsColumnWildcardPropertyValidator(properties).assertSuccess(),{ExcludedColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedColumnNames)}):properties}function CfnPermissionsColumnWildcardPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludedColumnNames","ExcludedColumnNames",properties.ExcludedColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedColumnNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsTableWithColumnsResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("columnNames",cdk().listValidator(cdk().validateString))(properties.columnNames)),errors.collect(cdk().propertyValidator("columnWildcard",CfnPermissionsColumnWildcardPropertyValidator)(properties.columnWildcard)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "TableWithColumnsResourceProperty"')}function convertCfnPermissionsTableWithColumnsResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsTableWithColumnsResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),ColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.columnNames),ColumnWildcard:convertCfnPermissionsColumnWildcardPropertyToCloudFormation(properties.columnWildcard),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnPermissionsTableWithColumnsResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("columnNames","ColumnNames",properties.ColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ColumnNames):void 0),ret.addPropertyResult("columnWildcard","ColumnWildcard",properties.ColumnWildcard!=null?CfnPermissionsColumnWildcardPropertyFromCloudFormation(properties.ColumnWildcard):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataLocationResource",CfnPermissionsDataLocationResourcePropertyValidator)(properties.dataLocationResource)),errors.collect(cdk().propertyValidator("databaseResource",CfnPermissionsDatabaseResourcePropertyValidator)(properties.databaseResource)),errors.collect(cdk().propertyValidator("tableResource",CfnPermissionsTableResourcePropertyValidator)(properties.tableResource)),errors.collect(cdk().propertyValidator("tableWithColumnsResource",CfnPermissionsTableWithColumnsResourcePropertyValidator)(properties.tableWithColumnsResource)),errors.wrap('supplied properties not correct for "ResourceProperty"')}function convertCfnPermissionsResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsResourcePropertyValidator(properties).assertSuccess(),{DataLocationResource:convertCfnPermissionsDataLocationResourcePropertyToCloudFormation(properties.dataLocationResource),DatabaseResource:convertCfnPermissionsDatabaseResourcePropertyToCloudFormation(properties.databaseResource),TableResource:convertCfnPermissionsTableResourcePropertyToCloudFormation(properties.tableResource),TableWithColumnsResource:convertCfnPermissionsTableWithColumnsResourcePropertyToCloudFormation(properties.tableWithColumnsResource)}):properties}function CfnPermissionsResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("databaseResource","DatabaseResource",properties.DatabaseResource!=null?CfnPermissionsDatabaseResourcePropertyFromCloudFormation(properties.DatabaseResource):void 0),ret.addPropertyResult("dataLocationResource","DataLocationResource",properties.DataLocationResource!=null?CfnPermissionsDataLocationResourcePropertyFromCloudFormation(properties.DataLocationResource):void 0),ret.addPropertyResult("tableResource","TableResource",properties.TableResource!=null?CfnPermissionsTableResourcePropertyFromCloudFormation(properties.TableResource):void 0),ret.addPropertyResult("tableWithColumnsResource","TableWithColumnsResource",properties.TableWithColumnsResource!=null?CfnPermissionsTableWithColumnsResourcePropertyFromCloudFormation(properties.TableWithColumnsResource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPermissionsPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataLakePrincipal",cdk().requiredValidator)(properties.dataLakePrincipal)),errors.collect(cdk().propertyValidator("dataLakePrincipal",CfnPermissionsDataLakePrincipalPropertyValidator)(properties.dataLakePrincipal)),errors.collect(cdk().propertyValidator("permissions",cdk().listValidator(cdk().validateString))(properties.permissions)),errors.collect(cdk().propertyValidator("permissionsWithGrantOption",cdk().listValidator(cdk().validateString))(properties.permissionsWithGrantOption)),errors.collect(cdk().propertyValidator("resource",cdk().requiredValidator)(properties.resource)),errors.collect(cdk().propertyValidator("resource",CfnPermissionsResourcePropertyValidator)(properties.resource)),errors.wrap('supplied properties not correct for "CfnPermissionsProps"')}function convertCfnPermissionsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPermissionsPropsValidator(properties).assertSuccess(),{DataLakePrincipal:convertCfnPermissionsDataLakePrincipalPropertyToCloudFormation(properties.dataLakePrincipal),Permissions:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissions),PermissionsWithGrantOption:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissionsWithGrantOption),Resource:convertCfnPermissionsResourcePropertyToCloudFormation(properties.resource)}):properties}function CfnPermissionsPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataLakePrincipal","DataLakePrincipal",properties.DataLakePrincipal!=null?CfnPermissionsDataLakePrincipalPropertyFromCloudFormation(properties.DataLakePrincipal):void 0),ret.addPropertyResult("permissions","Permissions",properties.Permissions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Permissions):void 0),ret.addPropertyResult("permissionsWithGrantOption","PermissionsWithGrantOption",properties.PermissionsWithGrantOption!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PermissionsWithGrantOption):void 0),ret.addPropertyResult("resource","Resource",properties.Resource!=null?CfnPermissionsResourcePropertyFromCloudFormation(properties.Resource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPrincipalPermissions extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnPrincipalPermissions",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::PrincipalPermissions";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPrincipalPermissionsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPrincipalPermissions(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnPrincipalPermissions(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPrincipalPermissions.CFN_RESOURCE_TYPE_NAME}_catalog;_permissions;_permissionsWithGrantOption;_principal;_resource;cfnPropertyNames={catalog:"Catalog",permissions:"Permissions",permissionsWithGrantOption:"PermissionsWithGrantOption",principal:"Principal",resource:"Resource"};constructor(scope,id,props){super(scope,id,{type:CfnPrincipalPermissions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnPrincipalPermissionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPrincipalPermissions),error}cdk().requireProperty(props,"permissions",this),cdk().requireProperty(props,"permissionsWithGrantOption",this),cdk().requireProperty(props,"principal",this),cdk().requireProperty(props,"resource",this),this._catalog=props.catalog,this._permissions=props.permissions,this._permissionsWithGrantOption=props.permissionsWithGrantOption,this._principal=props.principal,this._resource=props.resource}get principalPermissionsRef(){return{principalIdentifier:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),resourceIdentifier:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get catalog(){return this._catalog}set catalog(value){cdk().traceProperty(this.node,"Catalog"),this._catalog=value}get permissions(){return this._permissions}set permissions(value){cdk().traceProperty(this.node,"Permissions"),this._permissions=value}get permissionsWithGrantOption(){return this._permissionsWithGrantOption}set permissionsWithGrantOption(value){cdk().traceProperty(this.node,"PermissionsWithGrantOption"),this._permissionsWithGrantOption=value}get principal(){return this._principal}set principal(value){cdk().traceProperty(this.node,"Principal"),this._principal=value}get resource(){return this._resource}set resource(value){cdk().traceProperty(this.node,"Resource"),this._resource=value}get attrPrincipalIdentifier(){return cdk().Token.asString(this.getAtt("PrincipalIdentifier",cdk().ResolutionTypeHint.STRING))}get attrResourceIdentifier(){return cdk().Token.asString(this.getAtt("ResourceIdentifier",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{catalog:this._catalog,permissions:this._permissions,permissionsWithGrantOption:this._permissionsWithGrantOption,principal:this._principal,resource:this._resource}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPrincipalPermissions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPrincipalPermissionsPropsToCloudFormation(props)}}exports.CfnPrincipalPermissions=CfnPrincipalPermissions;function CfnPrincipalPermissionsLFTagKeyResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("tagKey",cdk().requiredValidator)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagKey",cdk().validateString)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagValues",cdk().requiredValidator)(properties.tagValues)),errors.collect(cdk().propertyValidator("tagValues",cdk().listValidator(cdk().validateString))(properties.tagValues)),errors.wrap('supplied properties not correct for "LFTagKeyResourceProperty"')}function convertCfnPrincipalPermissionsLFTagKeyResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsLFTagKeyResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),TagKey:cdk().stringToCloudFormation(properties.tagKey),TagValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.tagValues)}):properties}function CfnPrincipalPermissionsLFTagKeyResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("tagKey","TagKey",properties.TagKey!=null?cfn_parse().FromCloudFormation.getString(properties.TagKey):void 0),ret.addPropertyResult("tagValues","TagValues",properties.TagValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TagValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsTableResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tableWildcard",cdk().validateObject)(properties.tableWildcard)),errors.wrap('supplied properties not correct for "TableResourceProperty"')}function convertCfnPrincipalPermissionsTableResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsTableResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name),TableWildcard:cdk().objectToCloudFormation(properties.tableWildcard)}):properties}function CfnPrincipalPermissionsTableResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tableWildcard","TableWildcard",properties.TableWildcard!=null?cfn_parse().FromCloudFormation.getAny(properties.TableWildcard):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsDataCellsFilterResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tableCatalogId",cdk().requiredValidator)(properties.tableCatalogId)),errors.collect(cdk().propertyValidator("tableCatalogId",cdk().validateString)(properties.tableCatalogId)),errors.collect(cdk().propertyValidator("tableName",cdk().requiredValidator)(properties.tableName)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.wrap('supplied properties not correct for "DataCellsFilterResourceProperty"')}function convertCfnPrincipalPermissionsDataCellsFilterResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsDataCellsFilterResourcePropertyValidator(properties).assertSuccess(),{DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name),TableCatalogId:cdk().stringToCloudFormation(properties.tableCatalogId),TableName:cdk().stringToCloudFormation(properties.tableName)}):properties}function CfnPrincipalPermissionsDataCellsFilterResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tableCatalogId","TableCatalogId",properties.TableCatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.TableCatalogId):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsColumnWildcardPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludedColumnNames",cdk().listValidator(cdk().validateString))(properties.excludedColumnNames)),errors.wrap('supplied properties not correct for "ColumnWildcardProperty"')}function convertCfnPrincipalPermissionsColumnWildcardPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsColumnWildcardPropertyValidator(properties).assertSuccess(),{ExcludedColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedColumnNames)}):properties}function CfnPrincipalPermissionsColumnWildcardPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludedColumnNames","ExcludedColumnNames",properties.ExcludedColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedColumnNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsTableWithColumnsResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("columnNames",cdk().listValidator(cdk().validateString))(properties.columnNames)),errors.collect(cdk().propertyValidator("columnWildcard",CfnPrincipalPermissionsColumnWildcardPropertyValidator)(properties.columnWildcard)),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "TableWithColumnsResourceProperty"')}function convertCfnPrincipalPermissionsTableWithColumnsResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsTableWithColumnsResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),ColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.columnNames),ColumnWildcard:convertCfnPrincipalPermissionsColumnWildcardPropertyToCloudFormation(properties.columnWildcard),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnPrincipalPermissionsTableWithColumnsResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("columnNames","ColumnNames",properties.ColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ColumnNames):void 0),ret.addPropertyResult("columnWildcard","ColumnWildcard",properties.ColumnWildcard!=null?CfnPrincipalPermissionsColumnWildcardPropertyFromCloudFormation(properties.ColumnWildcard):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsLFTagPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tagKey",cdk().validateString)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagValues",cdk().listValidator(cdk().validateString))(properties.tagValues)),errors.wrap('supplied properties not correct for "LFTagProperty"')}function convertCfnPrincipalPermissionsLFTagPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsLFTagPropertyValidator(properties).assertSuccess(),{TagKey:cdk().stringToCloudFormation(properties.tagKey),TagValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.tagValues)}):properties}function CfnPrincipalPermissionsLFTagPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tagKey","TagKey",properties.TagKey!=null?cfn_parse().FromCloudFormation.getString(properties.TagKey):void 0),ret.addPropertyResult("tagValues","TagValues",properties.TagValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TagValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsLFTagPolicyResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("expression",cdk().requiredValidator)(properties.expression)),errors.collect(cdk().propertyValidator("expression",cdk().listValidator(CfnPrincipalPermissionsLFTagPropertyValidator))(properties.expression)),errors.collect(cdk().propertyValidator("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.wrap('supplied properties not correct for "LFTagPolicyResourceProperty"')}function convertCfnPrincipalPermissionsLFTagPolicyResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsLFTagPolicyResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),Expression:cdk().listMapper(convertCfnPrincipalPermissionsLFTagPropertyToCloudFormation)(properties.expression),ResourceType:cdk().stringToCloudFormation(properties.resourceType)}):properties}function CfnPrincipalPermissionsLFTagPolicyResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getArray(CfnPrincipalPermissionsLFTagPropertyFromCloudFormation)(properties.Expression):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsDatabaseResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "DatabaseResourceProperty"')}function convertCfnPrincipalPermissionsDatabaseResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsDatabaseResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnPrincipalPermissionsDatabaseResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsDataLocationResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("resourceArn",cdk().requiredValidator)(properties.resourceArn)),errors.collect(cdk().propertyValidator("resourceArn",cdk().validateString)(properties.resourceArn)),errors.wrap('supplied properties not correct for "DataLocationResourceProperty"')}function convertCfnPrincipalPermissionsDataLocationResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsDataLocationResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),ResourceArn:cdk().stringToCloudFormation(properties.resourceArn)}):properties}function CfnPrincipalPermissionsDataLocationResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalog",cdk().validateObject)(properties.catalog)),errors.collect(cdk().propertyValidator("dataCellsFilter",CfnPrincipalPermissionsDataCellsFilterResourcePropertyValidator)(properties.dataCellsFilter)),errors.collect(cdk().propertyValidator("dataLocation",CfnPrincipalPermissionsDataLocationResourcePropertyValidator)(properties.dataLocation)),errors.collect(cdk().propertyValidator("database",CfnPrincipalPermissionsDatabaseResourcePropertyValidator)(properties.database)),errors.collect(cdk().propertyValidator("lfTag",CfnPrincipalPermissionsLFTagKeyResourcePropertyValidator)(properties.lfTag)),errors.collect(cdk().propertyValidator("lfTagPolicy",CfnPrincipalPermissionsLFTagPolicyResourcePropertyValidator)(properties.lfTagPolicy)),errors.collect(cdk().propertyValidator("table",CfnPrincipalPermissionsTableResourcePropertyValidator)(properties.table)),errors.collect(cdk().propertyValidator("tableWithColumns",CfnPrincipalPermissionsTableWithColumnsResourcePropertyValidator)(properties.tableWithColumns)),errors.wrap('supplied properties not correct for "ResourceProperty"')}function convertCfnPrincipalPermissionsResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsResourcePropertyValidator(properties).assertSuccess(),{Catalog:cdk().objectToCloudFormation(properties.catalog),DataCellsFilter:convertCfnPrincipalPermissionsDataCellsFilterResourcePropertyToCloudFormation(properties.dataCellsFilter),DataLocation:convertCfnPrincipalPermissionsDataLocationResourcePropertyToCloudFormation(properties.dataLocation),Database:convertCfnPrincipalPermissionsDatabaseResourcePropertyToCloudFormation(properties.database),LFTag:convertCfnPrincipalPermissionsLFTagKeyResourcePropertyToCloudFormation(properties.lfTag),LFTagPolicy:convertCfnPrincipalPermissionsLFTagPolicyResourcePropertyToCloudFormation(properties.lfTagPolicy),Table:convertCfnPrincipalPermissionsTableResourcePropertyToCloudFormation(properties.table),TableWithColumns:convertCfnPrincipalPermissionsTableWithColumnsResourcePropertyToCloudFormation(properties.tableWithColumns)}):properties}function CfnPrincipalPermissionsResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalog","Catalog",properties.Catalog!=null?cfn_parse().FromCloudFormation.getAny(properties.Catalog):void 0),ret.addPropertyResult("database","Database",properties.Database!=null?CfnPrincipalPermissionsDatabaseResourcePropertyFromCloudFormation(properties.Database):void 0),ret.addPropertyResult("dataCellsFilter","DataCellsFilter",properties.DataCellsFilter!=null?CfnPrincipalPermissionsDataCellsFilterResourcePropertyFromCloudFormation(properties.DataCellsFilter):void 0),ret.addPropertyResult("dataLocation","DataLocation",properties.DataLocation!=null?CfnPrincipalPermissionsDataLocationResourcePropertyFromCloudFormation(properties.DataLocation):void 0),ret.addPropertyResult("lfTag","LFTag",properties.LFTag!=null?CfnPrincipalPermissionsLFTagKeyResourcePropertyFromCloudFormation(properties.LFTag):void 0),ret.addPropertyResult("lfTagPolicy","LFTagPolicy",properties.LFTagPolicy!=null?CfnPrincipalPermissionsLFTagPolicyResourcePropertyFromCloudFormation(properties.LFTagPolicy):void 0),ret.addPropertyResult("table","Table",properties.Table!=null?CfnPrincipalPermissionsTableResourcePropertyFromCloudFormation(properties.Table):void 0),ret.addPropertyResult("tableWithColumns","TableWithColumns",properties.TableWithColumns!=null?CfnPrincipalPermissionsTableWithColumnsResourcePropertyFromCloudFormation(properties.TableWithColumns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsDataLakePrincipalPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataLakePrincipalIdentifier",cdk().validateString)(properties.dataLakePrincipalIdentifier)),errors.wrap('supplied properties not correct for "DataLakePrincipalProperty"')}function convertCfnPrincipalPermissionsDataLakePrincipalPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsDataLakePrincipalPropertyValidator(properties).assertSuccess(),{DataLakePrincipalIdentifier:cdk().stringToCloudFormation(properties.dataLakePrincipalIdentifier)}):properties}function CfnPrincipalPermissionsDataLakePrincipalPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataLakePrincipalIdentifier","DataLakePrincipalIdentifier",properties.DataLakePrincipalIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.DataLakePrincipalIdentifier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrincipalPermissionsPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalog",cdk().validateString)(properties.catalog)),errors.collect(cdk().propertyValidator("permissions",cdk().requiredValidator)(properties.permissions)),errors.collect(cdk().propertyValidator("permissions",cdk().listValidator(cdk().validateString))(properties.permissions)),errors.collect(cdk().propertyValidator("permissionsWithGrantOption",cdk().requiredValidator)(properties.permissionsWithGrantOption)),errors.collect(cdk().propertyValidator("permissionsWithGrantOption",cdk().listValidator(cdk().validateString))(properties.permissionsWithGrantOption)),errors.collect(cdk().propertyValidator("principal",cdk().requiredValidator)(properties.principal)),errors.collect(cdk().propertyValidator("principal",CfnPrincipalPermissionsDataLakePrincipalPropertyValidator)(properties.principal)),errors.collect(cdk().propertyValidator("resource",cdk().requiredValidator)(properties.resource)),errors.collect(cdk().propertyValidator("resource",CfnPrincipalPermissionsResourcePropertyValidator)(properties.resource)),errors.wrap('supplied properties not correct for "CfnPrincipalPermissionsProps"')}function convertCfnPrincipalPermissionsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrincipalPermissionsPropsValidator(properties).assertSuccess(),{Catalog:cdk().stringToCloudFormation(properties.catalog),Permissions:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissions),PermissionsWithGrantOption:cdk().listMapper(cdk().stringToCloudFormation)(properties.permissionsWithGrantOption),Principal:convertCfnPrincipalPermissionsDataLakePrincipalPropertyToCloudFormation(properties.principal),Resource:convertCfnPrincipalPermissionsResourcePropertyToCloudFormation(properties.resource)}):properties}function CfnPrincipalPermissionsPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalog","Catalog",properties.Catalog!=null?cfn_parse().FromCloudFormation.getString(properties.Catalog):void 0),ret.addPropertyResult("permissions","Permissions",properties.Permissions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Permissions):void 0),ret.addPropertyResult("permissionsWithGrantOption","PermissionsWithGrantOption",properties.PermissionsWithGrantOption!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PermissionsWithGrantOption):void 0),ret.addPropertyResult("principal","Principal",properties.Principal!=null?CfnPrincipalPermissionsDataLakePrincipalPropertyFromCloudFormation(properties.Principal):void 0),ret.addPropertyResult("resource","Resource",properties.Resource!=null?CfnPrincipalPermissionsResourcePropertyFromCloudFormation(properties.Resource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnResource extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnResource",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::Resource";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnResourcePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnResource(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnResource(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnResource.CFN_RESOURCE_TYPE_NAME}_hybridAccessEnabled;_resourceArn;_roleArn;_useServiceLinkedRole;_withFederation;cfnPropertyNames={hybridAccessEnabled:"HybridAccessEnabled",resourceArn:"ResourceArn",roleArn:"RoleArn",useServiceLinkedRole:"UseServiceLinkedRole",withFederation:"WithFederation"};constructor(scope,id,props){super(scope,id,{type:CfnResource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnResourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnResource),error}cdk().requireProperty(props,"resourceArn",this),cdk().requireProperty(props,"useServiceLinkedRole",this),this._hybridAccessEnabled=props.hybridAccessEnabled,this._resourceArn=props.resourceArn,this._roleArn=props.roleArn,this._useServiceLinkedRole=props.useServiceLinkedRole,this._withFederation=props.withFederation}get resourceRef(){return{resourceId:this.ref}}get hybridAccessEnabled(){return this._hybridAccessEnabled}set hybridAccessEnabled(value){cdk().traceProperty(this.node,"HybridAccessEnabled"),this._hybridAccessEnabled=value}get resourceArn(){return this._resourceArn}set resourceArn(value){cdk().traceProperty(this.node,"ResourceArn"),this._resourceArn=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get useServiceLinkedRole(){return this._useServiceLinkedRole}set useServiceLinkedRole(value){cdk().traceProperty(this.node,"UseServiceLinkedRole"),this._useServiceLinkedRole=value}get withFederation(){return this._withFederation}set withFederation(value){cdk().traceProperty(this.node,"WithFederation"),this._withFederation=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{hybridAccessEnabled:this._hybridAccessEnabled,resourceArn:this._resourceArn,roleArn:this._roleArn,useServiceLinkedRole:this._useServiceLinkedRole,withFederation:this._withFederation}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnResource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnResourcePropsToCloudFormation(props)}}exports.CfnResource=CfnResource;function CfnResourcePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("hybridAccessEnabled",cdk().validateBoolean)(properties.hybridAccessEnabled)),errors.collect(cdk().propertyValidator("resourceArn",cdk().requiredValidator)(properties.resourceArn)),errors.collect(cdk().propertyValidator("resourceArn",cdk().validateString)(properties.resourceArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("useServiceLinkedRole",cdk().requiredValidator)(properties.useServiceLinkedRole)),errors.collect(cdk().propertyValidator("useServiceLinkedRole",cdk().validateBoolean)(properties.useServiceLinkedRole)),errors.collect(cdk().propertyValidator("withFederation",cdk().validateBoolean)(properties.withFederation)),errors.wrap('supplied properties not correct for "CfnResourceProps"')}function convertCfnResourcePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResourcePropsValidator(properties).assertSuccess(),{HybridAccessEnabled:cdk().booleanToCloudFormation(properties.hybridAccessEnabled),ResourceArn:cdk().stringToCloudFormation(properties.resourceArn),RoleArn:cdk().stringToCloudFormation(properties.roleArn),UseServiceLinkedRole:cdk().booleanToCloudFormation(properties.useServiceLinkedRole),WithFederation:cdk().booleanToCloudFormation(properties.withFederation)}):properties}function CfnResourcePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("hybridAccessEnabled","HybridAccessEnabled",properties.HybridAccessEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.HybridAccessEnabled):void 0),ret.addPropertyResult("resourceArn","ResourceArn",properties.ResourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceArn):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("useServiceLinkedRole","UseServiceLinkedRole",properties.UseServiceLinkedRole!=null?cfn_parse().FromCloudFormation.getBoolean(properties.UseServiceLinkedRole):void 0),ret.addPropertyResult("withFederation","WithFederation",properties.WithFederation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.WithFederation):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTag extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnTag",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::Tag";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTagPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTag(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnTag(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTag.CFN_RESOURCE_TYPE_NAME}_catalogId;_tagKey;_tagValues;cfnPropertyNames={catalogId:"CatalogId",tagKey:"TagKey",tagValues:"TagValues"};constructor(scope,id,props){super(scope,id,{type:CfnTag.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnTagProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTag),error}cdk().requireProperty(props,"tagKey",this),cdk().requireProperty(props,"tagValues",this),this._catalogId=props.catalogId,this._tagKey=props.tagKey,this._tagValues=props.tagValues}get tagRef(){return{tagKey:this.ref}}get catalogId(){return this._catalogId}set catalogId(value){cdk().traceProperty(this.node,"CatalogId"),this._catalogId=value}get tagKey(){return this._tagKey}set tagKey(value){cdk().traceProperty(this.node,"TagKey"),this._tagKey=value}get tagValues(){return this._tagValues}set tagValues(value){cdk().traceProperty(this.node,"TagValues"),this._tagValues=value}get cfnProperties(){return{catalogId:this._catalogId,tagKey:this._tagKey,tagValues:this._tagValues}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTag.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTagPropsToCloudFormation(props)}}exports.CfnTag=CfnTag;function CfnTagPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("tagKey",cdk().requiredValidator)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagKey",cdk().validateString)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagValues",cdk().requiredValidator)(properties.tagValues)),errors.collect(cdk().propertyValidator("tagValues",cdk().listValidator(cdk().validateString))(properties.tagValues)),errors.wrap('supplied properties not correct for "CfnTagProps"')}function convertCfnTagPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagPropsValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),TagKey:cdk().stringToCloudFormation(properties.tagKey),TagValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.tagValues)}):properties}function CfnTagPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("tagKey","TagKey",properties.TagKey!=null?cfn_parse().FromCloudFormation.getString(properties.TagKey):void 0),ret.addPropertyResult("tagValues","TagValues",properties.TagValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TagValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTagAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lakeformation.CfnTagAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::LakeFormation::TagAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTagAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTagAssociation(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnTagAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTagAssociation.CFN_RESOURCE_TYPE_NAME}_lfTags;_resource;cfnPropertyNames={lfTags:"LFTags",resource:"Resource"};constructor(scope,id,props){super(scope,id,{type:CfnTagAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lakeformation_CfnTagAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTagAssociation),error}cdk().requireProperty(props,"lfTags",this),cdk().requireProperty(props,"resource",this),this._lfTags=props.lfTags,this._resource=props.resource}get tagAssociationRef(){return{resourceIdentifier:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),tagsIdentifier:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get lfTags(){return this._lfTags}set lfTags(value){cdk().traceProperty(this.node,"LFTags"),this._lfTags=value}get resource(){return this._resource}set resource(value){cdk().traceProperty(this.node,"Resource"),this._resource=value}get attrResourceIdentifier(){return cdk().Token.asString(this.getAtt("ResourceIdentifier",cdk().ResolutionTypeHint.STRING))}get attrTagsIdentifier(){return cdk().Token.asString(this.getAtt("TagsIdentifier",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{lfTags:this._lfTags,resource:this._resource}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTagAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTagAssociationPropsToCloudFormation(props)}}exports.CfnTagAssociation=CfnTagAssociation;function CfnTagAssociationLFTagPairPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("tagKey",cdk().requiredValidator)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagKey",cdk().validateString)(properties.tagKey)),errors.collect(cdk().propertyValidator("tagValues",cdk().requiredValidator)(properties.tagValues)),errors.collect(cdk().propertyValidator("tagValues",cdk().listValidator(cdk().validateString))(properties.tagValues)),errors.wrap('supplied properties not correct for "LFTagPairProperty"')}function convertCfnTagAssociationLFTagPairPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationLFTagPairPropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),TagKey:cdk().stringToCloudFormation(properties.tagKey),TagValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.tagValues)}):properties}function CfnTagAssociationLFTagPairPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("tagKey","TagKey",properties.TagKey!=null?cfn_parse().FromCloudFormation.getString(properties.TagKey):void 0),ret.addPropertyResult("tagValues","TagValues",properties.TagValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TagValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTagAssociationTableResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tableWildcard",cdk().validateObject)(properties.tableWildcard)),errors.wrap('supplied properties not correct for "TableResourceProperty"')}function convertCfnTagAssociationTableResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationTableResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name),TableWildcard:cdk().objectToCloudFormation(properties.tableWildcard)}):properties}function CfnTagAssociationTableResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tableWildcard","TableWildcard",properties.TableWildcard!=null?cfn_parse().FromCloudFormation.getAny(properties.TableWildcard):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTagAssociationTableWithColumnsResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("columnNames",cdk().requiredValidator)(properties.columnNames)),errors.collect(cdk().propertyValidator("columnNames",cdk().listValidator(cdk().validateString))(properties.columnNames)),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "TableWithColumnsResourceProperty"')}function convertCfnTagAssociationTableWithColumnsResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationTableWithColumnsResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),ColumnNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.columnNames),DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnTagAssociationTableWithColumnsResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("columnNames","ColumnNames",properties.ColumnNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ColumnNames):void 0),ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTagAssociationDatabaseResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalogId",cdk().requiredValidator)(properties.catalogId)),errors.collect(cdk().propertyValidator("catalogId",cdk().validateString)(properties.catalogId)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "DatabaseResourceProperty"')}function convertCfnTagAssociationDatabaseResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationDatabaseResourcePropertyValidator(properties).assertSuccess(),{CatalogId:cdk().stringToCloudFormation(properties.catalogId),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnTagAssociationDatabaseResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalogId","CatalogId",properties.CatalogId!=null?cfn_parse().FromCloudFormation.getString(properties.CatalogId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTagAssociationResourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("catalog",cdk().validateObject)(properties.catalog)),errors.collect(cdk().propertyValidator("database",CfnTagAssociationDatabaseResourcePropertyValidator)(properties.database)),errors.collect(cdk().propertyValidator("table",CfnTagAssociationTableResourcePropertyValidator)(properties.table)),errors.collect(cdk().propertyValidator("tableWithColumns",CfnTagAssociationTableWithColumnsResourcePropertyValidator)(properties.tableWithColumns)),errors.wrap('supplied properties not correct for "ResourceProperty"')}function convertCfnTagAssociationResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationResourcePropertyValidator(properties).assertSuccess(),{Catalog:cdk().objectToCloudFormation(properties.catalog),Database:convertCfnTagAssociationDatabaseResourcePropertyToCloudFormation(properties.database),Table:convertCfnTagAssociationTableResourcePropertyToCloudFormation(properties.table),TableWithColumns:convertCfnTagAssociationTableWithColumnsResourcePropertyToCloudFormation(properties.tableWithColumns)}):properties}function CfnTagAssociationResourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("catalog","Catalog",properties.Catalog!=null?cfn_parse().FromCloudFormation.getAny(properties.Catalog):void 0),ret.addPropertyResult("database","Database",properties.Database!=null?CfnTagAssociationDatabaseResourcePropertyFromCloudFormation(properties.Database):void 0),ret.addPropertyResult("table","Table",properties.Table!=null?CfnTagAssociationTableResourcePropertyFromCloudFormation(properties.Table):void 0),ret.addPropertyResult("tableWithColumns","TableWithColumns",properties.TableWithColumns!=null?CfnTagAssociationTableWithColumnsResourcePropertyFromCloudFormation(properties.TableWithColumns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTagAssociationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("lfTags",cdk().requiredValidator)(properties.lfTags)),errors.collect(cdk().propertyValidator("lfTags",cdk().listValidator(CfnTagAssociationLFTagPairPropertyValidator))(properties.lfTags)),errors.collect(cdk().propertyValidator("resource",cdk().requiredValidator)(properties.resource)),errors.collect(cdk().propertyValidator("resource",CfnTagAssociationResourcePropertyValidator)(properties.resource)),errors.wrap('supplied properties not correct for "CfnTagAssociationProps"')}function convertCfnTagAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTagAssociationPropsValidator(properties).assertSuccess(),{LFTags:cdk().listMapper(convertCfnTagAssociationLFTagPairPropertyToCloudFormation)(properties.lfTags),Resource:convertCfnTagAssociationResourcePropertyToCloudFormation(properties.resource)}):properties}function CfnTagAssociationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("lfTags","LFTags",properties.LFTags!=null?cfn_parse().FromCloudFormation.getArray(CfnTagAssociationLFTagPairPropertyFromCloudFormation)(properties.LFTags):void 0),ret.addPropertyResult("resource","Resource",properties.Resource!=null?CfnTagAssociationResourcePropertyFromCloudFormation(properties.Resource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}