UNPKG

raindancers-network

Version:
82 lines (81 loc) 2.72 kB
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; }