> **Experimental**
>
> `@aws-cdk/aws-neptune-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# DatabaseClusterProps

Properties for a new database cluster.

Extends: DatabaseClusterProps
Used as props by: DatabaseCluster

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/cluster.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0-alpha.0/packages/@aws-cdk/aws-neptune-alpha/lib/cluster.ts#L194)

## Example

```ts
const cluster = new neptune.DatabaseCluster(this, 'ServerlessDatabase', {
  vpc,
  instanceType: neptune.InstanceType.SERVERLESS,
  serverlessScalingConfiguration: {
    minCapacity: 1,
    maxCapacity: 5,
  },
});
```

## Properties

- `associatedRoles`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html)[] — A list of AWS Identity and Access Management (IAM) role that can be used by the cluster to access other AWS services.

  **Default:** No role is attached to the cluster.

- `autoMinorVersionUpgrade`: boolean = false — If set to true, Neptune will automatically update the engine of the entire cluster to the latest minor version after a stabilization window of 2 to 3 weeks.

- `backupRetention`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = cdk.Duration.days(1) — How many days to retain the backup.

- `cloudwatchLogsExports`: [LogType](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.LogType.html)[] — The list of log types that need to be enabled for exporting to CloudWatch Logs.

  **Default:** no log exports

- `cloudwatchLogsRetention`: [RetentionDays](/cdk/api/v2/docs/aws-cdk-lib.aws_logs.RetentionDays.html) — The number of days log events are kept in CloudWatch Logs.

  **Default:** logs never expire

  When updating
  this property, unsetting it doesn't remove the log retention policy. To
  remove the retention policy, set the value to `Infinity`.

- `cloudwatchLogsRetentionRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) — The IAM role for the Lambda function associated with the custom resource that sets the retention policy.

  **Default:** a new role is created.

- `clusterParameterGroup`: [IClusterParameterGroup](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.IClusterParameterGroup.html) — Additional parameters to pass to the database engine.

  **Default:** No parameter group.

- `copyTagsToSnapshot`: boolean = false — Whether to copy tags to the snapshot when a snapshot is created.

- `dbClusterName`: string — An optional identifier for the cluster.

  **Default:** A name is automatically generated.

- `deletionProtection`: boolean — Indicates whether the DB cluster should have deletion protection enabled.

  **Default:** true if ``removalPolicy`` is RETAIN, false otherwise

- `engineVersion`: [EngineVersion](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.EngineVersion.html) — What version of the database to start.

  **Default:** The default engine version.

- `iamAuthentication`: boolean = `false` — Map AWS Identity and Access Management (IAM) accounts to database accounts.

- `instanceIdentifierBase`: string — Base identifier for instances.

  **Default:** `dbClusterName` is used with the word "Instance" appended. If `dbClusterName` is not provided, the identifier is automatically generated.

  Every replica is named by appending the replica number to this string, 1-based.

- `instances`: number = 1 — Number of Neptune compute instances.

- `instanceType`: [InstanceType](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.InstanceType.html) (required) — What type of instance to start for the replicas.

- `kmsKey`: [IKeyRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_kms.IKeyRef.html) — The KMS key for storage encryption.

  **Default:** default master key.

- `parameterGroup`: [IParameterGroup](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.IParameterGroup.html) — The DB parameter group to associate with the instance.

  **Default:** no parameter group

- `port`: number = 8182 — The port number on which the DB instances in the DB cluster accept connections.

- `preferredBackupWindow`: string — A daily time range in 24-hours UTC format in which backups preferably execute.

  **Default:** a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see

  Must be at least 30 minutes long.

  Example: '01:00-02:00'

- `preferredMaintenanceWindow`: string — A weekly time range in which maintenance should preferably execute.

  **Default:** 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.

  Must be at least 30 minutes long.

  Example: 'tue:04:17-tue:04:47'

- `removalPolicy`: [RemovalPolicy](/cdk/api/v2/docs/aws-cdk-lib.RemovalPolicy.html) — The removal policy to apply when the cluster and its instances are removed or replaced during a stack update, or when the stack is deleted.

  **Default:** Retain cluster.

  This
  removal policy also applies to the implicit security group created for the
  cluster if one is not supplied as a parameter.

- `securityGroups`: [ISecurityGroup](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.ISecurityGroup.html)[] — Security group.

  **Default:** a new security group is created.

- `serverlessScalingConfiguration`: [ServerlessScalingConfiguration](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.ServerlessScalingConfiguration.html) — Specify minimum and maximum NCUs capacity for a serverless cluster.

  **Default:** required if instanceType is db.serverless

  See https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-capacity-scaling.html

- `storageEncrypted`: boolean = true — Whether to enable storage encryption.

- `subnetGroup`: [ISubnetGroup](/cdk/api/v2/docs/@aws-cdk_aws-neptune-alpha.ISubnetGroup.html) — Existing subnet group for the cluster.

  **Default:** a new subnet group will be created.

- `vpc`: [IVpc](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html) (required) — What subnets to run the Neptune instances in.

  Must be at least 2 subnets in two different AZs.

- `vpcSubnets`: [SubnetSelection](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.SubnetSelection.html) — Where to place the instances within the VPC.

  **Default:** private subnets
