aws / aws/aws-cdk

(rds): auto-generate all RDS engine version types from API

Open
#12,496 5 comments 1 reaction 0 assignees View on GitHub
@aws-cdk/aws-rds effort/medium feature-request feature/enhancement p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

It would be nice if the RDS engine versions were somehow automatically generated using the `aws rds` API. A quick review of the commit history on the file (https://github.com/aws/aws-cdk/commits/master/packages/%40aws-cdk/aws-rds/lib/cluster-engine.ts) shows that lots of folks manually commit missing engine versions (including myself with https://github.com/aws/aws-cdk/pull/12495).

### Use Case

As a CDK user, it would be great if CDK automatically had a complete list of all the valid RDS versions. This would allow me to simply upgrade my version of CDK and the proper types are automatically there. In this instance, I discovered the missing engine and had to write a PR, wait for a review, wait for the release.

### Proposed Solution

The [`aws rds describe-db-engine-versions`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/neptune/describe-db-engine-versions.html) command could be used to easily generate these types. I'm not familiar with the CloudFormation code generation logic, but perhaps when a release is tagged, this API could be used to automatically generate the relevant types?

If not automated with each release, I could envision a simple script that's run as a one-off to generate all the types from the API.

### Other

* [x] :wave: I may be able to implement this feature request
* [ ] :warning: This feature might incur a breaking change

---

This is a :rocket: Feature Request

Contributor guide

Open the contributing guide

Research direction

Start by reading packages/@aws-cdk/aws-rds/lib/cluster-engine.ts and reviewing its commit history to understand how engine-version types are maintained. Then investigate the aws rds describe-db-engine-versions API and the repository's CloudFormation code-generation logic. Done means establishing an automated release-time process or a script that generates complete valid RDS engine-version types.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, typescript
Domain
cloud, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.