The original boto.rds module has historically lagged quite far behind the service (at time of writing, almost 50% of the API calls are missing/out-of-date). To address this, the Boto core team has switched to a generated client for RDS (boto.rds2.layer1.RDSConnection).
However, this generated variant is not backward-compatible with the older boto.rds.RDSConnection. This document is to help you update your code (as desired) to take advantage of the latest API calls.
For the duration of the document, RDS2Connection refers to boto.rds2.layer1.RDSConnection, where RDSConnection refers to boto.rds.RDSConnection.
Format is old_method_name -> new_method_name:
Many parameter names have changed between RDSConnection & RDS2Connection. For instance, the old name for the instance identifier was id, where the new name is db_instance_identifier. These changes are to ensure things map more closely to the API.
In addition, in some cases, ordering & required-ness of parameters has changed as well. For instance, in create_db_instance, the engine parameter is now required (previously defaulted to MySQL5.1) & its position in the call has change to be before master_username.
As such, when updating your API calls, you should check the API Reference documentation to ensure you’re passing the correct parameters.
RDSConnection frequently returned higher-level Python objects. In contrast, RDS2Connection returns Python dictionaries of the data. This will require a bit more work to extract the necessary values. For example:
# Old
>>> instances = rds1_conn.get_all_dbinstances()
>>> inst = instances[0]
>>> inst.name
'test-db'
# New
>>> instances = rds2_conn.describe_db_instances()
>>> inst = instances['DescribeDBInstancesResponse']\
... ['DescribeDBInstancesResult']['DBInstances'][0]
>>> inst['DBName']
'test-db'