# IEngine

A common interface for database engines.

Don't implement this interface directly,
instead implement one of the known sub-interfaces,
like IClusterEngine and IInstanceEngine.

- Source: [`aws-rds/lib/engine.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-rds/lib/engine.ts#L9)

## Properties

- `defaultUsername`: string — The default name of the master database user if one was not provided explicitly.

  The global default of 'admin' will be used if this is `undefined`.
  Note that 'admin' is a reserved word in PostgreSQL and cannot be used.

- `engineFamily`: string — The family this engine belongs to, like "MYSQL", or "POSTGRESQL".

  **Default:** the engine doesn't belong to any family

  This property is used when creating a Database Proxy.
  Most engines don't belong to any family
  (and because of that, you can't create Database Proxies for their Clusters or Instances).

- `engineType`: string (required) — The type of the engine, for example "mysql".

- `engineVersion`: [EngineVersion](/cdk/api/v2/docs/aws-cdk-lib.aws_rds.EngineVersion.html) — The exact version of the engine that is used, for example "5.1.42".

  **Default:** use the default version for this engine type

- `parameterGroupFamily`: string — The family to use for ParameterGroups using this engine.

  **Default:** the ParameterGroup family is not known (which means the major version of the engine is also not known)

  This is usually equal to "<engineType><engineMajorVersion>",
  but can sometimes be a variation of that.
  You can pass this property when creating new ParameterGroup.
