# API Reference
## Constructs
### DataLake
A CDK construct to create a DataLake.
#### Initializers
```typescript
import { DataLake } from '@randyridgley/cdk-datalake-constructs'
new DataLake(scope: Construct, id: string, props: DataLakeProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataLakeProperties`](#@randyridgley/cdk-datalake-constructs.DataLakeProperties)
---
#### Methods
##### `createDownloaderCustomResource`
```typescript
public createDownloaderCustomResource(stageName: string)
```
###### `stageName`Required
- *Type:* `string`
---
#### Properties
##### `databases`Required
```typescript
public readonly databases: {[ key: string ]: Database};
```
- *Type:* {[ key: string ]: [`@aws-cdk/aws-glue-alpha.Database`](#@aws-cdk/aws-glue-alpha.Database)}
---
##### `datalakeAdminRole`Required
```typescript
public readonly datalakeAdminRole: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
##### `datalakeDbCreatorRole`Required
```typescript
public readonly datalakeDbCreatorRole: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
##### `lakeKind`Required
```typescript
public readonly lakeKind: LakeKind;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.LakeKind`](#@randyridgley/cdk-datalake-constructs.LakeKind)
---
##### `logBucket`Required
```typescript
public readonly logBucket: Bucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.Bucket`](#aws-cdk-lib.aws_s3.Bucket)
---
##### `stageName`Required
```typescript
public readonly stageName: Stage;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.Stage`](#@randyridgley/cdk-datalake-constructs.Stage)
---
##### `athenaWorkgroup`Optional
```typescript
public readonly athenaWorkgroup: CfnWorkGroup;
```
- *Type:* [`aws-cdk-lib.aws_athena.CfnWorkGroup`](#aws-cdk-lib.aws_athena.CfnWorkGroup)
---
##### `vpc`Optional
```typescript
public readonly vpc: Vpc;
```
- *Type:* [`aws-cdk-lib.aws_ec2.Vpc`](#aws-cdk-lib.aws_ec2.Vpc)
---
### DataLakeAdministrator
#### Initializers
```typescript
import { DataLakeAdministrator } from '@randyridgley/cdk-datalake-constructs'
new DataLakeAdministrator(scope: Construct, id: string, props: DataLakeAdministratorProps)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataLakeAdministratorProps`](#@randyridgley/cdk-datalake-constructs.DataLakeAdministratorProps)
---
#### Properties
##### `role`Required
```typescript
public readonly role: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
### DataLakeAnalyst
#### Initializers
```typescript
import { DataLakeAnalyst } from '@randyridgley/cdk-datalake-constructs'
new DataLakeAnalyst(scope: Construct, id: string, props: DataLakeAnalystProps)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataLakeAnalystProps`](#@randyridgley/cdk-datalake-constructs.DataLakeAnalystProps)
---
#### Properties
##### `user`Required
```typescript
public readonly user: User;
```
- *Type:* [`aws-cdk-lib.aws_iam.User`](#aws-cdk-lib.aws_iam.User)
---
### DataLakeBucket
#### Initializers
```typescript
import { DataLakeBucket } from '@randyridgley/cdk-datalake-constructs'
new DataLakeBucket(scope: Construct, id: string, props: DataLakeBucketProps)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataLakeBucketProps`](#@randyridgley/cdk-datalake-constructs.DataLakeBucketProps)
---
#### Properties
##### `bucket`Required
```typescript
public readonly bucket: Bucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.Bucket`](#aws-cdk-lib.aws_s3.Bucket)
---
### DataLakeCreator
#### Initializers
```typescript
import { DataLakeCreator } from '@randyridgley/cdk-datalake-constructs'
new DataLakeCreator(scope: Construct, id: string, props: DataLakeCreatorProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataLakeCreatorProperties`](#@randyridgley/cdk-datalake-constructs.DataLakeCreatorProperties)
---
#### Properties
##### `role`Required
```typescript
public readonly role: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
### GlueCrawler
#### Initializers
```typescript
import { GlueCrawler } from '@randyridgley/cdk-datalake-constructs'
new GlueCrawler(scope: Construct, id: string, props: IGlueCrawlerProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.IGlueCrawlerProperties`](#@randyridgley/cdk-datalake-constructs.IGlueCrawlerProperties)
---
#### Methods
##### `metricFailure`
```typescript
public metricFailure(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSuccess`
```typescript
public metricSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
#### Properties
##### `crawler`Required
```typescript
public readonly crawler: CfnCrawler;
```
- *Type:* [`aws-cdk-lib.aws_glue.CfnCrawler`](#aws-cdk-lib.aws_glue.CfnCrawler)
---
##### `metricFailureRule`Required
```typescript
public readonly metricFailureRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `metricSuccessRule`Required
```typescript
public readonly metricSuccessRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `role`Required
```typescript
public readonly role: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
### GlueJob
#### Initializers
```typescript
import { GlueJob } from '@randyridgley/cdk-datalake-constructs'
new GlueJob(scope: Construct, id: string, props: GlueJobProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueJobProperties`](#@randyridgley/cdk-datalake-constructs.GlueJobProperties)
---
#### Methods
##### `diskSpaceUsedMbMetric`
```typescript
public diskSpaceUsedMbMetric(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `elapsedTimeMetric`
```typescript
public elapsedTimeMetric(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `jvmHeapUsageMetric`
```typescript
public jvmHeapUsageMetric(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metric`
```typescript
public metric(metricName: string, dimensionType: string, props?: MetricOptions)
```
###### `metricName`Required
- *Type:* `string`
---
###### `dimensionType`Required
- *Type:* `string`
---
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricAllExecutionAttemptsFailed`
```typescript
public metricAllExecutionAttemptsFailed(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricFailure`
```typescript
public metricFailure(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSuccess`
```typescript
public metricSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricTimeout`
```typescript
public metricTimeout(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `runTimeInMiliseconds`
```typescript
public runTimeInMiliseconds(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
#### Properties
##### `allExecutionAttemptsFailedEventDetailType`Required
```typescript
public readonly allExecutionAttemptsFailedEventDetailType: string;
```
- *Type:* `string`
---
##### `allExecutionAttemptsFailedEventSource`Required
```typescript
public readonly allExecutionAttemptsFailedEventSource: string;
```
- *Type:* `string`
---
##### `executionFailureRule`Required
```typescript
public readonly executionFailureRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `job`Required
```typescript
public readonly job: CfnJob;
```
- *Type:* [`aws-cdk-lib.aws_glue.CfnJob`](#aws-cdk-lib.aws_glue.CfnJob)
---
##### `lambdaFunction`Required
```typescript
public readonly lambdaFunction: SingletonFunction;
```
- *Type:* [`aws-cdk-lib.aws_lambda.SingletonFunction`](#aws-cdk-lib.aws_lambda.SingletonFunction)
---
##### `metricFailureRule`Required
```typescript
public readonly metricFailureRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `metricSuccessRule`Required
```typescript
public readonly metricSuccessRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `metricTimeoutRule`Required
```typescript
public readonly metricTimeoutRule: Rule;
```
- *Type:* [`aws-cdk-lib.aws_events.Rule`](#aws-cdk-lib.aws_events.Rule)
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `role`Required
```typescript
public readonly role: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
### GlueJobOps
#### Initializers
```typescript
import { GlueJobOps } from '@randyridgley/cdk-datalake-constructs'
new GlueJobOps(scope: Construct, id: string, props: IGlueOpsProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.IGlueOpsProperties`](#@randyridgley/cdk-datalake-constructs.IGlueOpsProperties)
---
#### Properties
##### `alarmsSev2`Required
```typescript
public readonly alarmsSev2: Alarm[];
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)[]
---
##### `alarmsSev3`Required
```typescript
public readonly alarmsSev3: Alarm[];
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)[]
---
##### `job`Required
```typescript
public readonly job: GlueJob;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueJob`](#@randyridgley/cdk-datalake-constructs.GlueJob)
---
##### `jvmHeapSizeExceeding80PercentAlarm`Required
```typescript
public readonly jvmHeapSizeExceeding80PercentAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `jvmHeapSizeExceeding90PercentAlarm`Required
```typescript
public readonly jvmHeapSizeExceeding90PercentAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `metricAllExecutionAttemptsFailedAlarm`Required
```typescript
public readonly metricAllExecutionAttemptsFailedAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `metricExecutionFailureAlarm`Required
```typescript
public readonly metricExecutionFailureAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `dashboard`Required
```typescript
public readonly dashboard: Dashboard;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Dashboard`](#aws-cdk-lib.aws_cloudwatch.Dashboard)
---
### GlueTable
#### Initializers
```typescript
import { GlueTable } from '@randyridgley/cdk-datalake-constructs'
new GlueTable(scope: Construct, id: string, props: IGlueTableProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.IGlueTableProperties`](#@randyridgley/cdk-datalake-constructs.IGlueTableProperties)
---
#### Properties
##### `table`Required
```typescript
public readonly table: CfnTable;
```
- *Type:* [`aws-cdk-lib.aws_glue.CfnTable`](#aws-cdk-lib.aws_glue.CfnTable)
---
##### `tableName`Required
```typescript
public readonly tableName: string;
```
- *Type:* `string`
---
### KinesisOps
#### Initializers
```typescript
import { KinesisOps } from '@randyridgley/cdk-datalake-constructs'
new KinesisOps(scope: Construct, id: string, props: IKinesisOpsProperties)
```
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.IKinesisOpsProperties`](#@randyridgley/cdk-datalake-constructs.IKinesisOpsProperties)
---
#### Properties
##### `alarmsSev2`Required
```typescript
public readonly alarmsSev2: Alarm[];
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)[]
---
##### `alarmsSev3`Required
```typescript
public readonly alarmsSev3: Alarm[];
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)[]
---
##### `deliveryStream`Required
```typescript
public readonly deliveryStream: S3DeliveryStream;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.S3DeliveryStream`](#@randyridgley/cdk-datalake-constructs.S3DeliveryStream)
---
##### `firehoseDeliveryToS3CriticalAlarm`Required
```typescript
public readonly firehoseDeliveryToS3CriticalAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `firehoseDeliveryToS3WarningAlarm`Required
```typescript
public readonly firehoseDeliveryToS3WarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamGetRecordsWarningAlarm`Required
```typescript
public readonly inputStreamGetRecordsWarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamIteratorAgeCriticalAlarm`Required
```typescript
public readonly inputStreamIteratorAgeCriticalAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamIteratorAgeWarningAlarm`Required
```typescript
public readonly inputStreamIteratorAgeWarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamPutRecordsWarningAlarm`Required
```typescript
public readonly inputStreamPutRecordsWarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamReadThroughputWarningAlarm`Required
```typescript
public readonly inputStreamReadThroughputWarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `inputStreamWriteThroughputWarningAlarm`Required
```typescript
public readonly inputStreamWriteThroughputWarningAlarm: Alarm;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Alarm`](#aws-cdk-lib.aws_cloudwatch.Alarm)
---
##### `stream`Required
```typescript
public readonly stream: KinesisStream;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.KinesisStream`](#@randyridgley/cdk-datalake-constructs.KinesisStream)
---
##### `streamName`Required
```typescript
public readonly streamName: string;
```
- *Type:* `string`
---
##### `dashboard`Required
```typescript
public readonly dashboard: Dashboard;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.Dashboard`](#aws-cdk-lib.aws_cloudwatch.Dashboard)
---
### KinesisStream
#### Initializers
```typescript
import { KinesisStream } from '@randyridgley/cdk-datalake-constructs'
new KinesisStream(parent: Construct, name: string, props: StreamProps)
```
##### `parent`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `name`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`aws-cdk-lib.aws_kinesis.StreamProps`](#aws-cdk-lib.aws_kinesis.StreamProps)
---
#### Methods
##### `metric`
```typescript
public metric(metricName: string, props?: MetricOptions)
```
###### `metricName`Required
- *Type:* `string`
---
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricGetRecordsBytes`
```typescript
public metricGetRecordsBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricGetRecordsIteratorAgeMilliseconds`
```typescript
public metricGetRecordsIteratorAgeMilliseconds(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricGetRecordsLatency`
```typescript
public metricGetRecordsLatency(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricGetRecordsRecords`
```typescript
public metricGetRecordsRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricGetRecordsSuccess`
```typescript
public metricGetRecordsSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricIncomingBytes`
```typescript
public metricIncomingBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricIncomingRecords`
```typescript
public metricIncomingRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordBytes`
```typescript
public metricPutRecordBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordLatency`
```typescript
public metricPutRecordLatency(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordsBytes`
```typescript
public metricPutRecordsBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordsLatency`
```typescript
public metricPutRecordsLatency(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordsRecords`
```typescript
public metricPutRecordsRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordsSuccess`
```typescript
public metricPutRecordsSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricPutRecordSuccess`
```typescript
public metricPutRecordSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricReadProvisionedThroughputExceeded`
```typescript
public metricReadProvisionedThroughputExceeded(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardEventBytes`
```typescript
public metricSubscribeToShardEventBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardEventMillisBehindLatest`
```typescript
public metricSubscribeToShardEventMillisBehindLatest(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardEventRecords`
```typescript
public metricSubscribeToShardEventRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardEventSuccess`
```typescript
public metricSubscribeToShardEventSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardRateExceeded`
```typescript
public metricSubscribeToShardRateExceeded(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricSubscribeToShardSuccess`
```typescript
public metricSubscribeToShardSuccess(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricWriteProvisionedThroughputExceeded`
```typescript
public metricWriteProvisionedThroughputExceeded(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
#### Properties
##### `stream`Required
```typescript
public readonly stream: Stream;
```
- *Type:* [`aws-cdk-lib.aws_kinesis.Stream`](#aws-cdk-lib.aws_kinesis.Stream)
---
### S3DeliveryStream
#### Initializers
```typescript
import { S3DeliveryStream } from '@randyridgley/cdk-datalake-constructs'
new S3DeliveryStream(parent: Construct, name: string, props: DeliveryStreamProperties)
```
##### `parent`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `name`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DeliveryStreamProperties`](#@randyridgley/cdk-datalake-constructs.DeliveryStreamProperties)
---
#### Methods
##### `metric`
```typescript
public metric(metricName: string, props?: MetricOptions)
```
###### `metricName`Required
- *Type:* `string`
---
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricBackupToS3Bytes`
```typescript
public metricBackupToS3Bytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricBackupToS3DataFreshness`
```typescript
public metricBackupToS3DataFreshness(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricBackupToS3Records`
```typescript
public metricBackupToS3Records(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricBackupToS3Success`
```typescript
public metricBackupToS3Success(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDataReadFromKinesisStreamBytes`
```typescript
public metricDataReadFromKinesisStreamBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDataReadFromKinesisStreamRecords`
```typescript
public metricDataReadFromKinesisStreamRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDeliveryToS3Bytes`
```typescript
public metricDeliveryToS3Bytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDeliveryToS3DataFreshness`
```typescript
public metricDeliveryToS3DataFreshness(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDeliveryToS3Records`
```typescript
public metricDeliveryToS3Records(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricDeliveryToS3Success`
```typescript
public metricDeliveryToS3Success(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricIncomingBytes`
```typescript
public metricIncomingBytes(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
##### `metricIncomingRecords`
```typescript
public metricIncomingRecords(props?: MetricOptions)
```
###### `props`Optional
- *Type:* [`aws-cdk-lib.aws_cloudwatch.MetricOptions`](#aws-cdk-lib.aws_cloudwatch.MetricOptions)
---
#### Properties
##### `deliveryStreamArn`Required
```typescript
public readonly deliveryStreamArn: string;
```
- *Type:* `string`
---
##### `deliveryStreamName`Required
```typescript
public readonly deliveryStreamName: string;
```
- *Type:* `string`
---
##### `s3Bucket`Required
```typescript
public readonly s3Bucket: IBucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)
---
## Structs
### CrossAccountProperties
#### Initializer
```typescript
import { CrossAccountProperties } from '@randyridgley/cdk-datalake-constructs'
const crossAccountProperties: CrossAccountProperties = { ... }
```
##### `consumerAccountIds`Required
```typescript
public readonly consumerAccountIds: string[];
```
- *Type:* `string`[]
---
##### `dataCatalogOwnerAccountId`Required
```typescript
public readonly dataCatalogOwnerAccountId: string;
```
- *Type:* `string`
---
### DataCatalogOwner
#### Initializer
```typescript
import { DataCatalogOwner } from '@randyridgley/cdk-datalake-constructs'
const dataCatalogOwner: DataCatalogOwner = { ... }
```
##### `accountId`Required
```typescript
public readonly accountId: string;
```
- *Type:* `string`
---
### DataLakeAdministratorProps
#### Initializer
```typescript
import { DataLakeAdministratorProps } from '@randyridgley/cdk-datalake-constructs'
const dataLakeAdministratorProps: DataLakeAdministratorProps = { ... }
```
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
### DataLakeAnalystProps
#### Initializer
```typescript
import { DataLakeAnalystProps } from '@randyridgley/cdk-datalake-constructs'
const dataLakeAnalystProps: DataLakeAnalystProps = { ... }
```
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `readAccessBuckets`Optional
```typescript
public readonly readAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
##### `writeAccessBuckets`Optional
```typescript
public readonly writeAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
### DataLakeBucketProps
#### Initializer
```typescript
import { DataLakeBucketProps } from '@randyridgley/cdk-datalake-constructs'
const dataLakeBucketProps: DataLakeBucketProps = { ... }
```
##### `bucketName`Required
```typescript
public readonly bucketName: string;
```
- *Type:* `string`
---
##### `crossAccount`Required
```typescript
public readonly crossAccount: boolean;
```
- *Type:* `boolean`
---
##### `dataCatalogAccountId`Required
```typescript
public readonly dataCatalogAccountId: string;
```
- *Type:* `string`
---
##### `logBucket`Required
```typescript
public readonly logBucket: Bucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.Bucket`](#aws-cdk-lib.aws_s3.Bucket)
---
##### `s3Properties`Optional
```typescript
public readonly s3Properties: BucketProps;
```
- *Type:* [`aws-cdk-lib.aws_s3.BucketProps`](#aws-cdk-lib.aws_s3.BucketProps)
---
### DataLakeCreatorProperties
#### Initializer
```typescript
import { DataLakeCreatorProperties } from '@randyridgley/cdk-datalake-constructs'
const dataLakeCreatorProperties: DataLakeCreatorProperties = { ... }
```
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
### DataLakeProperties
#### Initializer
```typescript
import { DataLakeProperties } from '@randyridgley/cdk-datalake-constructs'
const dataLakeProperties: DataLakeProperties = { ... }
```
##### `lakeKind`Required
```typescript
public readonly lakeKind: LakeKind;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.LakeKind`](#@randyridgley/cdk-datalake-constructs.LakeKind)
The Type of DataLake this instance is.
This can be a DATA_PRODUCT only, CENTRAL_CATALOG, CONSUMER, or DATA_PRODUCT_AND_CATALOG type.
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
The name of the DataLake.
---
##### `stageName`Required
```typescript
public readonly stageName: Stage;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.Stage`](#@randyridgley/cdk-datalake-constructs.Stage)
The Stage the DataLake will be deployed.
---
##### `createAthenaWorkgroup`Optional
```typescript
public readonly createAthenaWorkgroup: boolean;
```
- *Type:* `boolean`
- *Default:* false
Create default Athena workgroup for querying data lake resources.
---
##### `createDefaultDatabse`Optional
```typescript
public readonly createDefaultDatabse: boolean;
```
- *Type:* `boolean`
- *Default:* false
Create default glue database for the data lake.
---
##### `crossAccountAccess`Optional
```typescript
public readonly crossAccountAccess: CrossAccountProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.CrossAccountProperties`](#@randyridgley/cdk-datalake-constructs.CrossAccountProperties)
- *Default:* No cross account ids
Cross account AWS account IDs.
> https://aws.amazon.com/premiumsupport/knowledge-center/glue-data-catalog-cross-account-access/
---
##### `datalakeAdminRole`Optional
```typescript
public readonly datalakeAdminRole: Role;
```
- *Type:* [`aws-cdk-lib.aws_iam.Role`](#aws-cdk-lib.aws_iam.Role)
- *Default:* Admin role created based on best practices
Data Lake Admin role.
> https://docs.aws.amazon.com/lake-formation/latest/dg/permissions-reference.html
---
##### `datalakeCreatorRole`Optional
```typescript
public readonly datalakeCreatorRole: Role;
```
- *Type:* [`aws-cdk-lib.aws_iam.Role`](#aws-cdk-lib.aws_iam.Role)
- *Default:* Database creator role created based on best practices
Data Lake Database Creator role.
> https://docs.aws.amazon.com/lake-formation/latest/dg/permissions-reference.html
---
##### `dataProducts`Optional
```typescript
public readonly dataProducts: DataProduct[];
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataProduct`](#@randyridgley/cdk-datalake-constructs.DataProduct)[]
- *Default:* No data products
The List of DataProducts for this account.
---
##### `glueSecurityGroup`Optional
```typescript
public readonly glueSecurityGroup: SecurityGroup;
```
- *Type:* [`aws-cdk-lib.aws_ec2.SecurityGroup`](#aws-cdk-lib.aws_ec2.SecurityGroup)
- *Default:* No security group
Security group to attach to Glue jobs.
> https://docs.aws.amazon.com/glue/latest/dg/setup-vpc-for-glue-access.html
---
##### `logBucketProps`Optional
```typescript
public readonly logBucketProps: BucketProps;
```
- *Type:* [`aws-cdk-lib.aws_s3.BucketProps`](#aws-cdk-lib.aws_s3.BucketProps)
---
##### `policyTags`Optional
```typescript
public readonly policyTags: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: `string`}
- *Default:* No tags
List of Lake Formation TBAC policy tags.
> https://docs.aws.amazon.com/lake-formation/latest/dg/TBAC-section.html
---
##### `vpc`Optional
```typescript
public readonly vpc: Vpc;
```
- *Type:* [`aws-cdk-lib.aws_ec2.Vpc`](#aws-cdk-lib.aws_ec2.Vpc)
- *Default:* No vpc
VPC for Glue jobs.
---
### DataProductProperties
#### Initializer
```typescript
import { DataProductProperties } from '@randyridgley/cdk-datalake-constructs'
const dataProductProperties: DataProductProperties = { ... }
```
##### `accountId`Required
```typescript
public readonly accountId: string;
```
- *Type:* `string`
---
##### `databaseName`Required
```typescript
public readonly databaseName: string;
```
- *Type:* `string`
---
##### `pipelines`Required
```typescript
public readonly pipelines: Pipeline[];
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.Pipeline`](#@randyridgley/cdk-datalake-constructs.Pipeline)[]
---
##### `dataCatalogAccountId`Optional
```typescript
public readonly dataCatalogAccountId: string;
```
- *Type:* `string`
---
##### `s3BucketProps`Optional
```typescript
public readonly s3BucketProps: BucketProps;
```
- *Type:* [`aws-cdk-lib.aws_s3.BucketProps`](#aws-cdk-lib.aws_s3.BucketProps)
---
### DataSetResult
#### Initializer
```typescript
import { DataSetResult } from '@randyridgley/cdk-datalake-constructs'
const dataSetResult: DataSetResult = { ... }
```
##### `destinationBucketName`Required
```typescript
public readonly destinationBucketName: string;
```
- *Type:* `string`
---
##### `destinationPrefix`Required
```typescript
public readonly destinationPrefix: string;
```
- *Type:* `string`
---
##### `rawBucketName`Required
```typescript
public readonly rawBucketName: string;
```
- *Type:* `string`
---
##### `refinedBucketName`Required
```typescript
public readonly refinedBucketName: string;
```
- *Type:* `string`
---
##### `trustedBucketName`Required
```typescript
public readonly trustedBucketName: string;
```
- *Type:* `string`
---
##### `sourceBucketName`Optional
```typescript
public readonly sourceBucketName: string;
```
- *Type:* `string`
---
##### `sourceKeys`Optional
```typescript
public readonly sourceKeys: string[];
```
- *Type:* `string`[]
---
### DataStreamProperties
#### Initializer
```typescript
import { DataStreamProperties } from '@randyridgley/cdk-datalake-constructs'
const dataStreamProperties: DataStreamProperties = { ... }
```
##### `dataCatalogOwner`Required
```typescript
public readonly dataCatalogOwner: DataCatalogOwner;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataCatalogOwner`](#@randyridgley/cdk-datalake-constructs.DataCatalogOwner)
---
##### `destinationBucketName`Required
```typescript
public readonly destinationBucketName: string;
```
- *Type:* `string`
---
##### `destinationPrefix`Required
```typescript
public readonly destinationPrefix: string;
```
- *Type:* `string`
---
##### `lambdaDataGenerator`Required
```typescript
public readonly lambdaDataGenerator: LambdaDataGeneratorProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.LambdaDataGeneratorProperties`](#@randyridgley/cdk-datalake-constructs.LambdaDataGeneratorProperties)
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `streamName`Required
```typescript
public readonly streamName: string;
```
- *Type:* `string`
---
### DataTierBucketProps
#### Initializer
```typescript
import { DataTierBucketProps } from '@randyridgley/cdk-datalake-constructs'
const dataTierBucketProps: DataTierBucketProps = { ... }
```
##### `crossAccount`Required
```typescript
public readonly crossAccount: boolean;
```
- *Type:* `boolean`
---
##### `dataCatalogAccountId`Required
```typescript
public readonly dataCatalogAccountId: string;
```
- *Type:* `string`
---
##### `datalakeAdminRole`Required
```typescript
public readonly datalakeAdminRole: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
##### `datalakeDbCreatorRole`Required
```typescript
public readonly datalakeDbCreatorRole: IRole;
```
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
---
##### `lakeType`Required
```typescript
public readonly lakeType: LakeKind;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.LakeKind`](#@randyridgley/cdk-datalake-constructs.LakeKind)
---
##### `logBucket`Required
```typescript
public readonly logBucket: Bucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.Bucket`](#aws-cdk-lib.aws_s3.Bucket)
---
##### `pipelineName`Required
```typescript
public readonly pipelineName: string;
```
- *Type:* `string`
---
##### `tier`Required
```typescript
public readonly tier: DataTier;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)
---
##### `bucketName`Optional
```typescript
public readonly bucketName: string;
```
- *Type:* `string`
---
##### `s3BucketProps`Optional
```typescript
public readonly s3BucketProps: BucketProps;
```
- *Type:* [`aws-cdk-lib.aws_s3.BucketProps`](#aws-cdk-lib.aws_s3.BucketProps)
---
### DeliveryStreamProperties
#### Initializer
```typescript
import { DeliveryStreamProperties } from '@randyridgley/cdk-datalake-constructs'
const deliveryStreamProperties: DeliveryStreamProperties = { ... }
```
##### `kinesisStream`Required
```typescript
public readonly kinesisStream: Stream;
```
- *Type:* [`aws-cdk-lib.aws_kinesis.Stream`](#aws-cdk-lib.aws_kinesis.Stream)
---
##### `s3Bucket`Required
```typescript
public readonly s3Bucket: IBucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)
---
##### `compression`Optional
```typescript
public readonly compression: CompressionType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.CompressionType`](#@randyridgley/cdk-datalake-constructs.CompressionType)
---
##### `s3Prefix`Optional
```typescript
public readonly s3Prefix: string;
```
- *Type:* `string`
---
##### `transformFunction`Optional
```typescript
public readonly transformFunction: Function;
```
- *Type:* [`aws-cdk-lib.aws_lambda.Function`](#aws-cdk-lib.aws_lambda.Function)
---
### GlueJobProperties
#### Initializer
```typescript
import { GlueJobProperties } from '@randyridgley/cdk-datalake-constructs'
const glueJobProperties: GlueJobProperties = { ... }
```
##### `deploymentBucket`Required
```typescript
public readonly deploymentBucket: IBucket;
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)
---
##### `jobScript`Required
```typescript
public readonly jobScript: string;
```
- *Type:* `string`
---
##### `jobType`Required
```typescript
public readonly jobType: GlueJobType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueJobType`](#@randyridgley/cdk-datalake-constructs.GlueJobType)
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `workerType`Required
```typescript
public readonly workerType: GlueWorkerType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueWorkerType`](#@randyridgley/cdk-datalake-constructs.GlueWorkerType)
---
##### `description`Optional
```typescript
public readonly description: string;
```
- *Type:* `string`
---
##### `glueVersion`Optional
```typescript
public readonly glueVersion: GlueVersion;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueVersion`](#@randyridgley/cdk-datalake-constructs.GlueVersion)
---
##### `jobArgs`Optional
```typescript
public readonly jobArgs: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: `string`}
---
##### `maxCapacity`Optional
```typescript
public readonly maxCapacity: number;
```
- *Type:* `number`
---
##### `maxConcurrentRuns`Optional
```typescript
public readonly maxConcurrentRuns: number;
```
- *Type:* `number`
---
##### `maxRetries`Optional
```typescript
public readonly maxRetries: number;
```
- *Type:* `number`
---
##### `numberOfWorkers`Optional
```typescript
public readonly numberOfWorkers: number;
```
- *Type:* `number`
---
##### `readAccessBuckets`Optional
```typescript
public readonly readAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
##### `roleName`Optional
```typescript
public readonly roleName: string;
```
- *Type:* `string`
---
##### `timeout`Optional
```typescript
public readonly timeout: number;
```
- *Type:* `number`
---
##### `writeAccessBuckets`Optional
```typescript
public readonly writeAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
### JDBCProperties
#### Initializer
```typescript
import { JDBCProperties } from '@randyridgley/cdk-datalake-constructs'
const jDBCProperties: JDBCProperties = { ... }
```
##### `jdbc`Required
```typescript
public readonly jdbc: string;
```
- *Type:* `string`
---
##### `password`Required
```typescript
public readonly password: string;
```
- *Type:* `string`
---
##### `username`Required
```typescript
public readonly username: string;
```
- *Type:* `string`
---
### JobProperties
#### Initializer
```typescript
import { JobProperties } from '@randyridgley/cdk-datalake-constructs'
const jobProperties: JobProperties = { ... }
```
##### `jobScript`Required
```typescript
public readonly jobScript: string;
```
- *Type:* `string`
---
##### `jobType`Required
```typescript
public readonly jobType: GlueJobType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueJobType`](#@randyridgley/cdk-datalake-constructs.GlueJobType)
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `workerType`Required
```typescript
public readonly workerType: GlueWorkerType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueWorkerType`](#@randyridgley/cdk-datalake-constructs.GlueWorkerType)
---
##### `description`Optional
```typescript
public readonly description: string;
```
- *Type:* `string`
---
##### `destinationLocation`Optional
```typescript
public readonly destinationLocation: DataTier;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)
---
##### `glueVersion`Optional
```typescript
public readonly glueVersion: GlueVersion;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueVersion`](#@randyridgley/cdk-datalake-constructs.GlueVersion)
---
##### `jobArgs`Optional
```typescript
public readonly jobArgs: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: `string`}
---
##### `maxCapacity`Optional
```typescript
public readonly maxCapacity: number;
```
- *Type:* `number`
---
##### `maxConcurrentRuns`Optional
```typescript
public readonly maxConcurrentRuns: number;
```
- *Type:* `number`
---
##### `maxRetries`Optional
```typescript
public readonly maxRetries: number;
```
- *Type:* `number`
---
##### `numberOfWorkers`Optional
```typescript
public readonly numberOfWorkers: number;
```
- *Type:* `number`
---
##### `readAccessBuckets`Optional
```typescript
public readonly readAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
##### `roleName`Optional
```typescript
public readonly roleName: string;
```
- *Type:* `string`
---
##### `timeout`Optional
```typescript
public readonly timeout: number;
```
- *Type:* `number`
---
##### `writeAccessBuckets`Optional
```typescript
public readonly writeAccessBuckets: IBucket[];
```
- *Type:* [`aws-cdk-lib.aws_s3.IBucket`](#aws-cdk-lib.aws_s3.IBucket)[]
---
### LambdaDataGeneratorProperties
#### Initializer
```typescript
import { LambdaDataGeneratorProperties } from '@randyridgley/cdk-datalake-constructs'
const lambdaDataGeneratorProperties: LambdaDataGeneratorProperties = { ... }
```
##### `code`Required
```typescript
public readonly code: Code;
```
- *Type:* [`aws-cdk-lib.aws_lambda.Code`](#aws-cdk-lib.aws_lambda.Code)
---
##### `functionName`Required
```typescript
public readonly functionName: string;
```
- *Type:* `string`
---
##### `handler`Required
```typescript
public readonly handler: string;
```
- *Type:* `string`
---
##### `ruleName`Required
```typescript
public readonly ruleName: string;
```
- *Type:* `string`
---
##### `runtime`Required
```typescript
public readonly runtime: Runtime;
```
- *Type:* [`aws-cdk-lib.aws_lambda.Runtime`](#aws-cdk-lib.aws_lambda.Runtime)
---
##### `schedule`Required
```typescript
public readonly schedule: Schedule;
```
- *Type:* [`aws-cdk-lib.aws_events.Schedule`](#aws-cdk-lib.aws_events.Schedule)
---
##### `timeout`Required
```typescript
public readonly timeout: Duration;
```
- *Type:* [`aws-cdk-lib.Duration`](#aws-cdk-lib.Duration)
---
### NameBuilderParameters
#### Initializer
```typescript
import { NameBuilderParameters } from '@randyridgley/cdk-datalake-constructs'
const nameBuilderParameters: NameBuilderParameters = { ... }
```
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `accountId`Optional
```typescript
public readonly accountId: string;
```
- *Type:* `string`
---
##### `region`Optional
```typescript
public readonly region: string;
```
- *Type:* `string`
---
##### `resourceUse`Optional
```typescript
public readonly resourceUse: string;
```
- *Type:* `string`
---
##### `stage`Optional
```typescript
public readonly stage: string;
```
- *Type:* `string`
---
### PipelineProperties
#### Initializer
```typescript
import { PipelineProperties } from '@randyridgley/cdk-datalake-constructs'
const pipelineProperties: PipelineProperties = { ... }
```
##### `dataDropTier`Required
```typescript
public readonly dataDropTier: DataTier;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)
---
##### `destinationPrefix`Required
```typescript
public readonly destinationPrefix: string;
```
- *Type:* `string`
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `type`Required
```typescript
public readonly type: DataPipelineType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataPipelineType`](#@randyridgley/cdk-datalake-constructs.DataPipelineType)
---
##### `jdbcProperties`Optional
```typescript
public readonly jdbcProperties: JDBCProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.JDBCProperties`](#@randyridgley/cdk-datalake-constructs.JDBCProperties)
---
##### `job`Optional
```typescript
public readonly job: JobProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.JobProperties`](#@randyridgley/cdk-datalake-constructs.JobProperties)
---
##### `s3Properties`Optional
```typescript
public readonly s3Properties: S3Properties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.S3Properties`](#@randyridgley/cdk-datalake-constructs.S3Properties)
---
##### `streamProperties`Optional
```typescript
public readonly streamProperties: StreamProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.StreamProperties`](#@randyridgley/cdk-datalake-constructs.StreamProperties)
---
##### `table`Optional
```typescript
public readonly table: TableProps;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.TableProps`](#@randyridgley/cdk-datalake-constructs.TableProps)
---
##### `tiers`Optional
```typescript
public readonly tiers: DataTier[];
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)[]
---
### S3Properties
#### Initializer
```typescript
import { S3Properties } from '@randyridgley/cdk-datalake-constructs'
const s3Properties: S3Properties = { ... }
```
##### `sourceBucketName`Required
```typescript
public readonly sourceBucketName: string;
```
- *Type:* `string`
---
##### `sourceKeys`Required
```typescript
public readonly sourceKeys: string[];
```
- *Type:* `string`[]
---
### StreamProperties
#### Initializer
```typescript
import { StreamProperties } from '@randyridgley/cdk-datalake-constructs'
const streamProperties: StreamProperties = { ... }
```
##### `streamName`Required
```typescript
public readonly streamName: string;
```
- *Type:* `string`
---
##### `lambdaDataGenerator`Optional
```typescript
public readonly lambdaDataGenerator: LambdaDataGeneratorProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.LambdaDataGeneratorProperties`](#@randyridgley/cdk-datalake-constructs.LambdaDataGeneratorProperties)
---
### TableProps
#### Initializer
```typescript
import { TableProps } from '@randyridgley/cdk-datalake-constructs'
const tableProps: TableProps = { ... }
```
##### `catalogId`Required
```typescript
public readonly catalogId: string;
```
- *Type:* `string`
---
##### `columns`Required
```typescript
public readonly columns: IResolvable | ColumnProperty | IResolvable[];
```
- *Type:* [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable) | [`aws-cdk-lib.aws_glue.CfnTable.ColumnProperty`](#aws-cdk-lib.aws_glue.CfnTable.ColumnProperty) | [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable)[]
---
##### `description`Required
```typescript
public readonly description: string;
```
- *Type:* `string`
---
##### `inputFormat`Required
```typescript
public readonly inputFormat: string;
```
- *Type:* `string`
---
##### `outputFormat`Required
```typescript
public readonly outputFormat: string;
```
- *Type:* `string`
---
##### `parameters`Required
```typescript
public readonly parameters: {[ key: string ]: any};
```
- *Type:* {[ key: string ]: `any`}
---
##### `partitionKeys`Required
```typescript
public readonly partitionKeys: IResolvable | ColumnProperty | IResolvable[];
```
- *Type:* [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable) | [`aws-cdk-lib.aws_glue.CfnTable.ColumnProperty`](#aws-cdk-lib.aws_glue.CfnTable.ColumnProperty) | [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable)[]
---
##### `serdeParameters`Required
```typescript
public readonly serdeParameters: {[ key: string ]: any};
```
- *Type:* {[ key: string ]: `any`}
---
##### `serializationLibrary`Required
```typescript
public readonly serializationLibrary: string;
```
- *Type:* `string`
---
##### `tableName`Required
```typescript
public readonly tableName: string;
```
- *Type:* `string`
---
## Classes
### DataProduct
- *Implements:* [`constructs.IDependable`](#constructs.IDependable)
#### Initializers
```typescript
import { DataProduct } from '@randyridgley/cdk-datalake-constructs'
new DataProduct(props: DataProductProperties)
```
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataProductProperties`](#@randyridgley/cdk-datalake-constructs.DataProductProperties)
---
#### Properties
##### `accountId`Required
```typescript
public readonly accountId: string;
```
- *Type:* `string`
---
##### `databaseName`Required
```typescript
public readonly databaseName: string;
```
- *Type:* `string`
---
##### `pipelines`Required
```typescript
public readonly pipelines: Pipeline[];
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.Pipeline`](#@randyridgley/cdk-datalake-constructs.Pipeline)[]
---
##### `dataCatalogAccountId`Optional
```typescript
public readonly dataCatalogAccountId: string;
```
- *Type:* `string`
---
##### `s3BucketProps`Optional
```typescript
public readonly s3BucketProps: BucketProps;
```
- *Type:* [`aws-cdk-lib.aws_s3.BucketProps`](#aws-cdk-lib.aws_s3.BucketProps)
---
### Pipeline
#### Initializers
```typescript
import { Pipeline } from '@randyridgley/cdk-datalake-constructs'
new Pipeline(props: PipelineProperties)
```
##### `props`Required
- *Type:* [`@randyridgley/cdk-datalake-constructs.PipelineProperties`](#@randyridgley/cdk-datalake-constructs.PipelineProperties)
---
#### Properties
##### `dataSetDropTier`Required
```typescript
public readonly dataSetDropTier: DataTier;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)
---
##### `destinationPrefix`Required
```typescript
public readonly destinationPrefix: string;
```
- *Type:* `string`
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `tiers`Required
```typescript
public readonly tiers: DataTier[];
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataTier`](#@randyridgley/cdk-datalake-constructs.DataTier)[]
---
##### `type`Required
```typescript
public readonly type: DataPipelineType;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.DataPipelineType`](#@randyridgley/cdk-datalake-constructs.DataPipelineType)
---
##### `jdbcProperties`Optional
```typescript
public readonly jdbcProperties: JDBCProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.JDBCProperties`](#@randyridgley/cdk-datalake-constructs.JDBCProperties)
---
##### `job`Optional
```typescript
public readonly job: JobProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.JobProperties`](#@randyridgley/cdk-datalake-constructs.JobProperties)
---
##### `s3Properties`Optional
```typescript
public readonly s3Properties: S3Properties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.S3Properties`](#@randyridgley/cdk-datalake-constructs.S3Properties)
---
##### `streamProperties`Optional
```typescript
public readonly streamProperties: StreamProperties;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.StreamProperties`](#@randyridgley/cdk-datalake-constructs.StreamProperties)
---
##### `table`Optional
```typescript
public readonly table: TableProps;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.TableProps`](#@randyridgley/cdk-datalake-constructs.TableProps)
---
## Protocols
### IGlueCrawlerProperties
- *Implemented By:* [`@randyridgley/cdk-datalake-constructs.IGlueCrawlerProperties`](#@randyridgley/cdk-datalake-constructs.IGlueCrawlerProperties)
#### Properties
##### `bucketName`Required
```typescript
public readonly bucketName: string;
```
- *Type:* `string`
---
##### `databaseName`Required
```typescript
public readonly databaseName: string;
```
- *Type:* `string`
---
##### `lfS3Resource`Required
```typescript
public readonly lfS3Resource: CfnResource;
```
- *Type:* [`aws-cdk-lib.CfnResource`](#aws-cdk-lib.CfnResource)
---
##### `name`Required
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `bucketPrefix`Optional
```typescript
public readonly bucketPrefix: string;
```
- *Type:* `string`
---
##### `roleName`Optional
```typescript
public readonly roleName: string;
```
- *Type:* `string`
---
##### `trigger`Optional
```typescript
public readonly trigger: CfnTrigger;
```
- *Type:* [`aws-cdk-lib.aws_glue.CfnTrigger`](#aws-cdk-lib.aws_glue.CfnTrigger)
---
### IGlueOpsProperties
- *Implemented By:* [`@randyridgley/cdk-datalake-constructs.IGlueOpsProperties`](#@randyridgley/cdk-datalake-constructs.IGlueOpsProperties)
#### Properties
##### `job`Required
```typescript
public readonly job: GlueJob;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.GlueJob`](#@randyridgley/cdk-datalake-constructs.GlueJob)
---
##### `jvmHeapSizeExceeding80percent`Optional
```typescript
public readonly jvmHeapSizeExceeding80percent: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `jvmHeapSizeExceeding90percent`Optional
```typescript
public readonly jvmHeapSizeExceeding90percent: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `metricAllExecutionAttemptsFailed`Optional
```typescript
public readonly metricAllExecutionAttemptsFailed: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `metricExecutionFailure`Optional
```typescript
public readonly metricExecutionFailure: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
### IGlueTableProperties
- *Implemented By:* [`@randyridgley/cdk-datalake-constructs.IGlueTableProperties`](#@randyridgley/cdk-datalake-constructs.IGlueTableProperties)
#### Properties
##### `catalogId`Required
```typescript
public readonly catalogId: string;
```
- *Type:* `string`
---
##### `columns`Required
```typescript
public readonly columns: IResolvable | ColumnProperty | IResolvable[];
```
- *Type:* [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable) | [`aws-cdk-lib.aws_glue.CfnTable.ColumnProperty`](#aws-cdk-lib.aws_glue.CfnTable.ColumnProperty) | [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable)[]
---
##### `databaseName`Required
```typescript
public readonly databaseName: string;
```
- *Type:* `string`
---
##### `description`Required
```typescript
public readonly description: string;
```
- *Type:* `string`
---
##### `inputFormat`Required
```typescript
public readonly inputFormat: string;
```
- *Type:* `string`
---
##### `outputFormat`Required
```typescript
public readonly outputFormat: string;
```
- *Type:* `string`
---
##### `parameters`Required
```typescript
public readonly parameters: {[ key: string ]: any};
```
- *Type:* {[ key: string ]: `any`}
---
##### `partitionKeys`Required
```typescript
public readonly partitionKeys: IResolvable | ColumnProperty | IResolvable[];
```
- *Type:* [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable) | [`aws-cdk-lib.aws_glue.CfnTable.ColumnProperty`](#aws-cdk-lib.aws_glue.CfnTable.ColumnProperty) | [`aws-cdk-lib.IResolvable`](#aws-cdk-lib.IResolvable)[]
---
##### `s3Location`Required
```typescript
public readonly s3Location: string;
```
- *Type:* `string`
---
##### `serdeParameters`Required
```typescript
public readonly serdeParameters: {[ key: string ]: any};
```
- *Type:* {[ key: string ]: `any`}
---
##### `serializationLibrary`Required
```typescript
public readonly serializationLibrary: string;
```
- *Type:* `string`
---
##### `tableName`Required
```typescript
public readonly tableName: string;
```
- *Type:* `string`
---
### IKinesisOpsProperties
- *Implemented By:* [`@randyridgley/cdk-datalake-constructs.IKinesisOpsProperties`](#@randyridgley/cdk-datalake-constructs.IKinesisOpsProperties)
#### Properties
##### `deliveryStream`Required
```typescript
public readonly deliveryStream: S3DeliveryStream;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.S3DeliveryStream`](#@randyridgley/cdk-datalake-constructs.S3DeliveryStream)
---
##### `stream`Required
```typescript
public readonly stream: KinesisStream;
```
- *Type:* [`@randyridgley/cdk-datalake-constructs.KinesisStream`](#@randyridgley/cdk-datalake-constructs.KinesisStream)
---
##### `firehoseDeliveryToS3Critical`Optional
```typescript
public readonly firehoseDeliveryToS3Critical: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `firehoseDeliveryToS3Warning`Optional
```typescript
public readonly firehoseDeliveryToS3Warning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamGetRecordsWarning`Optional
```typescript
public readonly inputStreamGetRecordsWarning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamIteratorAgeCritical`Optional
```typescript
public readonly inputStreamIteratorAgeCritical: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamIteratorAgeWarning`Optional
```typescript
public readonly inputStreamIteratorAgeWarning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamPutRecordsWarning`Optional
```typescript
public readonly inputStreamPutRecordsWarning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamReadThroughputWarning`Optional
```typescript
public readonly inputStreamReadThroughputWarning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
##### `inputStreamWriteThroughputWarning`Optional
```typescript
public readonly inputStreamWriteThroughputWarning: CreateAlarmOptions;
```
- *Type:* [`aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions`](#aws-cdk-lib.aws_cloudwatch.CreateAlarmOptions)
---
## Enums
### CompressionType
#### `UNCOMPRESSED`
---
#### `GZIP`
---
#### `ZIP`
---
#### `SNAPPY`
---
### DataPipelineType
#### `STREAM`
---
#### `JDBC`
---
#### `S3`
---
### DataTier
#### `RAW`
---
#### `REFINED`
---
#### `TRUSTED`
---
### DeliveryStreamType
#### `DIRECT_PUT`
---
#### `KINESIS_STREAM_AS_SOURCE`
---
### GlueJobType
#### `GLUE_ETL`
---
#### `GLUE_STREAMING`
---
### GlueVersion
#### `V_0`
---
#### `V_1`
---
#### `V_2`
---
#### `V_3`
---
### GlueWorkerType
#### `STANDARD`
---
#### `G1_X`
---
#### `G2_X`
---
### LakeKind
#### `DATA_PRODUCT`
---
#### `CENTRAL_CATALOG`
---
#### `CONSUMER`
---
#### `DATA_PRODUCT_AND_CATALOG`
---
### Permissions
#### `ALTER`
---
#### `CREATE_DATABASE`
---
#### `CREATE_TABLE`
---
#### `DATA_LOCATION_ACCESS`
---
#### `DELETE`
---
#### `DESCRIBE`
---
#### `DROP`
---
#### `INSERT`
---
#### `SELECT`
---
#### `ASSOCIATE`
---
#### `CREATE_TABLE_READ_WRITE`
---
### ProcessorType
#### `LAMBDA`
---
### Stage
#### `ALPHA`
---
#### `BETA`
---
#### `GAMMA`
---
#### `PROD`
---