import { ResourceProps } from './principalpermissions/ResourceProps';
import { Value } from '../../cloudformation/Value';
import { DataLakePrincipalProps } from './principalpermissions/DataLakePrincipalProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PrincipalPermissionsAttributes = {
    ResourceIdentifier: Attribute<string>;
    PrincipalIdentifier: Attribute<string>;
};
export type PrincipalPermissions = AwsResource<'AWS::LakeFormation::PrincipalPermissions', PrincipalPermissionsProperties, PrincipalPermissionsAttributes>;
/**
  The <code>AWS::LakeFormation::PrincipalPermissions</code> resource represents the permissions that a principal has on a Data Catalog resource (such as AWS Glue databases or AWS Glue tables). When you create a <code>PrincipalPermissions</code> resource, the permissions are granted via the AWS Lake Formation <code>GrantPermissions</code> API operation. When you delete a <code>PrincipalPermissions</code> resource, the permissions on principal-resource pair are revoked via the AWS Lake Formation <code>RevokePermissions</code> API operation.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html">the AWS Docs</a>
*/
export declare function principalPermissions(principalPermissionsProps: PrincipalPermissionsProperties): PrincipalPermissions;
/**
  The <code>AWS::LakeFormation::PrincipalPermissions</code> resource represents the permissions that a principal has on a Data Catalog resource (such as AWS Glue databases or AWS Glue tables). When you create a <code>PrincipalPermissions</code> resource, the permissions are granted via the AWS Lake Formation <code>GrantPermissions</code> API operation. When you delete a <code>PrincipalPermissions</code> resource, the permissions on principal-resource pair are revoked via the AWS Lake Formation <code>RevokePermissions</code> API operation.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-principalpermissions.html">the AWS Docs</a>
*/
export interface PrincipalPermissionsProperties {
    /** <code>Resource</code>  <a name="cfn-lakeformation-principalpermissions-resource"></a>
  The resource to be granted or revoked permissions.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    resource: ResourceProps;
    /** <code>Permissions</code>  <a name="cfn-lakeformation-principalpermissions-permissions"></a>
  The permissions granted or revoked.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    permissions: Value<Value<string>[]>;
    /** <code>Catalog</code>  <a name="cfn-lakeformation-principalpermissions-catalog"></a>
  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    catalog?: Value<string>;
    /** <code>Principal</code>  <a name="cfn-lakeformation-principalpermissions-principal"></a>
  The principal to be granted a permission.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    principal: DataLakePrincipalProps;
    /** <code>PermissionsWithGrantOption</code>  <a name="cfn-lakeformation-principalpermissions-permissionswithgrantoption"></a>
  Indicates the ability to grant permissions (as a subset of permissions granted).<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    permissionsWithGrantOption: Value<Value<string>[]>;
}
