raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
82 lines (81 loc) • 2.72 kB
TypeScript
import { aws_s3 as s3, aws_iam as iam } from 'aws-cdk-lib';
import * as constructs from 'constructs';
import * as gluedatabase from '../glue/database/gluedatabase';
/**
* Permissions that can be used as part of a LakeFormation Permissions
* refer https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GrantPermissions.html
*/
export declare enum Permissions {
ALL = "ALL",
SELECT = "SELECT",
ALTER = "ALTER",
DROP = "DROP",
DELETE = "DELETE",
INSERT = "INSERT",
DESCRIBE = "DESCRIBE",
CREATE_DATABASE = "CREATE_DATABASE",
CREATE_TABLE = "CREATE_TABLE",
DATA_LOCATION_ACCESS = "DATA_LOCATION_ACESS",
CREATE_TAG = "CREATE_TAG",
ASSOCIATE = "ASSOCIATE",
CREATE_TABLE_READ_WRITE = "CREATE_TABLE_READ_WRITE"
}
export interface AddNewBucketToLakeFormationProps {
/**
* Name of Bucket
*/
readonly name: string;
/**
* and optional role to use to join the Lake. This will default the the standard Service rule, if not
* specified, which is the recommended approach.
*/
readonly role?: iam.Role;
/**
* Lifecycle Rules for objects that are stored in the Bucket. This will default to lifeccyle pattern that will
* eventually move unused obejects to glacier.
*/
readonly lifecycleRules?: s3.LifecycleRule[] | undefined;
}
/**
* Glue Database that holds ingest Tables.
*/
export interface AddDatabaseProps {
/**
* Name for database
*/
readonly databaseName: string;
}
export interface LakeFormationProps {
/**
* Opt out of Mechanisms for high data protection, that are appropriate for production
* @default false
*/
readonly nonproduction?: boolean | undefined;
/**
* The cdk exec role will be creating Datalake Objects so will require permission
* @default true
*/
readonly makeCdkExecRoleLakeAdmin?: boolean | undefined;
}
/**
* Create a Class for the methods
* the methods that we use to operate on our 'Datalake'
*/
export declare class LakeFormation extends constructs.Construct {
/**
* Used to determine if buckets are backedup, and protected from Stack Destruction.
*/
nonproduction: boolean | undefined;
constructor(scope: constructs.Construct, id: string, props: LakeFormationProps);
/**
* Create a new bucket and associate it to the the Lakeformation.
* @param props AddNewBucketToLakeFormationProps
* @returns s3.Bucket
*/
addNewBucketToLakeFormation(props: AddNewBucketToLakeFormationProps): s3.Bucket;
/**
* @param props AddDatabaseProps
* @returns gluedatabase.GlueDataBase
*/
addDatabase(props: AddDatabaseProps): gluedatabase.GlueDataBase;
}