diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.instance-with-parameter-group.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.instance-with-parameter-group.ts index 141fefb491cc1..84198cd5a1592 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.instance-with-parameter-group.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.instance-with-parameter-group.ts @@ -14,6 +14,7 @@ const parameterGroup = new rds.ParameterGroup(stack, 'ParameterGroup', { engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_15_2 }), description: 'desc', removalPolicy: cdk.RemovalPolicy.DESTROY, + name: 'name', }); new rds.DatabaseInstance(stack, 'Instance', { diff --git a/packages/aws-cdk-lib/aws-rds/lib/parameter-group.ts b/packages/aws-cdk-lib/aws-rds/lib/parameter-group.ts index c529bc859d401..14feb1fc4b7e5 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/parameter-group.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/parameter-group.ts @@ -70,6 +70,13 @@ export interface ParameterGroupProps { */ readonly engine: IEngine; + /** + * The name of this parameter group. + * + * @default CloudFormation-generated name + */ + readonly name?: string; + /** * Description for this parameter group * @@ -126,6 +133,7 @@ export class ParameterGroup extends Resource implements IParameterGroup { private readonly family: string; private readonly removalPolicy?: RemovalPolicy; private readonly description?: string; + private readonly name?: string; private clusterCfnGroup?: CfnDBClusterParameterGroup; private instanceCfnGroup?: CfnDBParameterGroup; @@ -139,6 +147,7 @@ export class ParameterGroup extends Resource implements IParameterGroup { } this.family = family; this.description = props.description; + this.name = props.name; this.parameters = props.parameters ?? {}; this.removalPolicy = props.removalPolicy; } @@ -149,6 +158,7 @@ export class ParameterGroup extends Resource implements IParameterGroup { this.clusterCfnGroup = new CfnDBClusterParameterGroup(this, id, { description: this.description || `Cluster parameter group for ${this.family}`, family: this.family, + dbClusterParameterGroupName: this.name, parameters: Lazy.any({ produce: () => this.parameters }), }); } @@ -166,6 +176,7 @@ export class ParameterGroup extends Resource implements IParameterGroup { this.instanceCfnGroup = new CfnDBParameterGroup(this, id, { description: this.description || `Parameter group for ${this.family}`, family: this.family, + dbParameterGroupName: this.name, parameters: Lazy.any({ produce: () => this.parameters }), }); } diff --git a/packages/aws-cdk-lib/aws-rds/test/parameter-group.test.ts b/packages/aws-cdk-lib/aws-rds/test/parameter-group.test.ts index cb8ee7adefc4c..a47d76953bd11 100644 --- a/packages/aws-cdk-lib/aws-rds/test/parameter-group.test.ts +++ b/packages/aws-cdk-lib/aws-rds/test/parameter-group.test.ts @@ -29,6 +29,7 @@ describe('parameter group', () => { const parameterGroup = new ParameterGroup(stack, 'Params', { engine: DatabaseClusterEngine.AURORA, description: 'desc', + name: 'name', parameters: { key: 'value', }, @@ -37,6 +38,7 @@ describe('parameter group', () => { // THEN Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBParameterGroup', { + DBParameterGroupName: 'name', Description: 'desc', Family: 'aurora5.6', Parameters: { @@ -53,6 +55,7 @@ describe('parameter group', () => { const parameterGroup = new ParameterGroup(stack, 'Params', { engine: DatabaseClusterEngine.AURORA, description: 'desc', + name: 'name', parameters: { key: 'value', }, @@ -61,6 +64,7 @@ describe('parameter group', () => { // THEN Template.fromStack(stack).hasResourceProperties('AWS::RDS::DBClusterParameterGroup', { + DBClusterParameterGroupName: 'name', Description: 'desc', Family: 'aurora5.6', Parameters: {