diff env/lib/python3.7/site-packages/boto/rds2/layer1.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/rds2/layer1.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3783 +0,0 @@
-# Copyright (c) 2014 Amazon.com, Inc. or its affiliates.  All Rights Reserved
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-
-import boto
-from boto.connection import AWSQueryConnection
-from boto.regioninfo import RegionInfo
-from boto.exception import JSONResponseError
-from boto.rds2 import exceptions
-from boto.compat import json
-
-
-class RDSConnection(AWSQueryConnection):
-    """
-    Amazon Relational Database Service
-    Amazon Relational Database Service (Amazon RDS) is a web service
-    that makes it easier to set up, operate, and scale a relational
-    database in the cloud. It provides cost-efficient, resizable
-    capacity for an industry-standard relational database and manages
-    common database administration tasks, freeing up developers to
-    focus on what makes their applications and businesses unique.
-
-    Amazon RDS gives you access to the capabilities of a familiar
-    MySQL or Oracle database server. This means the code,
-    applications, and tools you already use today with your existing
-    MySQL or Oracle databases work with Amazon RDS without
-    modification. Amazon RDS automatically backs up your database and
-    maintains the database software that powers your DB instance.
-    Amazon RDS is flexible: you can scale your database instance's
-    compute resources and storage capacity to meet your application's
-    demand. As with all Amazon Web Services, there are no up-front
-    investments, and you pay only for the resources you use.
-
-    This is the Amazon RDS API Reference . It contains a comprehensive
-    description of all Amazon RDS Query APIs and data types. Note that
-    this API is asynchronous and some actions may require polling to
-    determine when an action has been applied. See the parameter
-    description to determine if a change is applied immediately or on
-    the next instance reboot or during the maintenance window. For
-    more information on Amazon RDS concepts and usage scenarios, go to
-    the `Amazon RDS User Guide`_.
-    """
-    APIVersion = "2013-09-09"
-    DefaultRegionName = "us-east-1"
-    DefaultRegionEndpoint = "rds.us-east-1.amazonaws.com"
-    ResponseError = JSONResponseError
-
-    _faults = {
-        "InvalidSubnet": exceptions.InvalidSubnet,
-        "DBParameterGroupQuotaExceeded": exceptions.DBParameterGroupQuotaExceeded,
-        "DBSubnetGroupAlreadyExists": exceptions.DBSubnetGroupAlreadyExists,
-        "DBSubnetGroupQuotaExceeded": exceptions.DBSubnetGroupQuotaExceeded,
-        "InstanceQuotaExceeded": exceptions.InstanceQuotaExceeded,
-        "InvalidRestore": exceptions.InvalidRestore,
-        "InvalidDBParameterGroupState": exceptions.InvalidDBParameterGroupState,
-        "AuthorizationQuotaExceeded": exceptions.AuthorizationQuotaExceeded,
-        "DBSecurityGroupAlreadyExists": exceptions.DBSecurityGroupAlreadyExists,
-        "InsufficientDBInstanceCapacity": exceptions.InsufficientDBInstanceCapacity,
-        "ReservedDBInstanceQuotaExceeded": exceptions.ReservedDBInstanceQuotaExceeded,
-        "DBSecurityGroupNotFound": exceptions.DBSecurityGroupNotFound,
-        "DBInstanceAlreadyExists": exceptions.DBInstanceAlreadyExists,
-        "ReservedDBInstanceNotFound": exceptions.ReservedDBInstanceNotFound,
-        "DBSubnetGroupDoesNotCoverEnoughAZs": exceptions.DBSubnetGroupDoesNotCoverEnoughAZs,
-        "InvalidDBSecurityGroupState": exceptions.InvalidDBSecurityGroupState,
-        "InvalidVPCNetworkState": exceptions.InvalidVPCNetworkState,
-        "ReservedDBInstancesOfferingNotFound": exceptions.ReservedDBInstancesOfferingNotFound,
-        "SNSTopicArnNotFound": exceptions.SNSTopicArnNotFound,
-        "SNSNoAuthorization": exceptions.SNSNoAuthorization,
-        "SnapshotQuotaExceeded": exceptions.SnapshotQuotaExceeded,
-        "OptionGroupQuotaExceeded": exceptions.OptionGroupQuotaExceeded,
-        "DBParameterGroupNotFound": exceptions.DBParameterGroupNotFound,
-        "SNSInvalidTopic": exceptions.SNSInvalidTopic,
-        "InvalidDBSubnetGroupState": exceptions.InvalidDBSubnetGroupState,
-        "DBSubnetGroupNotFound": exceptions.DBSubnetGroupNotFound,
-        "InvalidOptionGroupState": exceptions.InvalidOptionGroupState,
-        "SourceNotFound": exceptions.SourceNotFound,
-        "SubscriptionCategoryNotFound": exceptions.SubscriptionCategoryNotFound,
-        "EventSubscriptionQuotaExceeded": exceptions.EventSubscriptionQuotaExceeded,
-        "DBSecurityGroupNotSupported": exceptions.DBSecurityGroupNotSupported,
-        "InvalidEventSubscriptionState": exceptions.InvalidEventSubscriptionState,
-        "InvalidDBSubnetState": exceptions.InvalidDBSubnetState,
-        "InvalidDBSnapshotState": exceptions.InvalidDBSnapshotState,
-        "SubscriptionAlreadyExist": exceptions.SubscriptionAlreadyExist,
-        "DBSecurityGroupQuotaExceeded": exceptions.DBSecurityGroupQuotaExceeded,
-        "ProvisionedIopsNotAvailableInAZ": exceptions.ProvisionedIopsNotAvailableInAZ,
-        "AuthorizationNotFound": exceptions.AuthorizationNotFound,
-        "OptionGroupAlreadyExists": exceptions.OptionGroupAlreadyExists,
-        "SubscriptionNotFound": exceptions.SubscriptionNotFound,
-        "DBUpgradeDependencyFailure": exceptions.DBUpgradeDependencyFailure,
-        "PointInTimeRestoreNotEnabled": exceptions.PointInTimeRestoreNotEnabled,
-        "AuthorizationAlreadyExists": exceptions.AuthorizationAlreadyExists,
-        "DBSubnetQuotaExceeded": exceptions.DBSubnetQuotaExceeded,
-        "OptionGroupNotFound": exceptions.OptionGroupNotFound,
-        "DBParameterGroupAlreadyExists": exceptions.DBParameterGroupAlreadyExists,
-        "DBInstanceNotFound": exceptions.DBInstanceNotFound,
-        "ReservedDBInstanceAlreadyExists": exceptions.ReservedDBInstanceAlreadyExists,
-        "InvalidDBInstanceState": exceptions.InvalidDBInstanceState,
-        "DBSnapshotNotFound": exceptions.DBSnapshotNotFound,
-        "DBSnapshotAlreadyExists": exceptions.DBSnapshotAlreadyExists,
-        "StorageQuotaExceeded": exceptions.StorageQuotaExceeded,
-        "SubnetAlreadyInUse": exceptions.SubnetAlreadyInUse,
-    }
-
-
-    def __init__(self, **kwargs):
-        region = kwargs.pop('region', None)
-        if not region:
-            region = RegionInfo(self, self.DefaultRegionName,
-                                self.DefaultRegionEndpoint)
-
-        if 'host' not in kwargs:
-            kwargs['host'] = region.endpoint
-
-        super(RDSConnection, self).__init__(**kwargs)
-        self.region = region
-
-    def _required_auth_capability(self):
-        return ['hmac-v4']
-
-    def add_source_identifier_to_subscription(self, subscription_name,
-                                              source_identifier):
-        """
-        Adds a source identifier to an existing RDS event notification
-        subscription.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the RDS event notification
-            subscription you want to add a source identifier to.
-
-        :type source_identifier: string
-        :param source_identifier:
-        The identifier of the event source to be added. An identifier must
-            begin with a letter and must contain only ASCII letters, digits,
-            and hyphens; it cannot end with a hyphen or contain two consecutive
-            hyphens.
-
-        Constraints:
-
-
-        + If the source type is a DB instance, then a `DBInstanceIdentifier`
-              must be supplied.
-        + If the source type is a DB security group, a `DBSecurityGroupName`
-              must be supplied.
-        + If the source type is a DB parameter group, a `DBParameterGroupName`
-              must be supplied.
-        + If the source type is a DB snapshot, a `DBSnapshotIdentifier` must be
-              supplied.
-
-        """
-        params = {
-            'SubscriptionName': subscription_name,
-            'SourceIdentifier': source_identifier,
-        }
-        return self._make_request(
-            action='AddSourceIdentifierToSubscription',
-            verb='POST',
-            path='/', params=params)
-
-    def add_tags_to_resource(self, resource_name, tags):
-        """
-        Adds metadata tags to an Amazon RDS resource. These tags can
-        also be used with cost allocation reporting to track cost
-        associated with Amazon RDS resources, or used in Condition
-        statement in IAM policy for Amazon RDS.
-
-        For an overview on tagging Amazon RDS resources, see `Tagging
-        Amazon RDS Resources`_.
-
-        :type resource_name: string
-        :param resource_name: The Amazon RDS resource the tags will be added
-            to. This value is an Amazon Resource Name (ARN). For information
-            about creating an ARN, see ` Constructing an RDS Amazon Resource
-            Name (ARN)`_.
-
-        :type tags: list
-        :param tags: The tags to be assigned to the Amazon RDS resource.
-            Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {'ResourceName': resource_name, }
-        self.build_complex_list_params(
-            params, tags,
-            'Tags.member',
-            ('Key', 'Value'))
-        return self._make_request(
-            action='AddTagsToResource',
-            verb='POST',
-            path='/', params=params)
-
-    def authorize_db_security_group_ingress(self, db_security_group_name,
-                                            cidrip=None,
-                                            ec2_security_group_name=None,
-                                            ec2_security_group_id=None,
-                                            ec2_security_group_owner_id=None):
-        """
-        Enables ingress to a DBSecurityGroup using one of two forms of
-        authorization. First, EC2 or VPC security groups can be added
-        to the DBSecurityGroup if the application using the database
-        is running on EC2 or VPC instances. Second, IP ranges are
-        available if the application accessing your database is
-        running on the Internet. Required parameters for this API are
-        one of CIDR range, EC2SecurityGroupId for VPC, or
-        (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or
-        EC2SecurityGroupId for non-VPC).
-        You cannot authorize ingress from an EC2 security group in one
-        Region to an Amazon RDS DB instance in another. You cannot
-        authorize ingress from a VPC security group in one VPC to an
-        Amazon RDS DB instance in another.
-        For an overview of CIDR ranges, go to the `Wikipedia
-        Tutorial`_.
-
-        :type db_security_group_name: string
-        :param db_security_group_name: The name of the DB security group to add
-            authorization to.
-
-        :type cidrip: string
-        :param cidrip: The IP range to authorize.
-
-        :type ec2_security_group_name: string
-        :param ec2_security_group_name: Name of the EC2 security group to
-            authorize. For VPC DB security groups, `EC2SecurityGroupId` must be
-            provided. Otherwise, EC2SecurityGroupOwnerId and either
-            `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided.
-
-        :type ec2_security_group_id: string
-        :param ec2_security_group_id: Id of the EC2 security group to
-            authorize. For VPC DB security groups, `EC2SecurityGroupId` must be
-            provided. Otherwise, EC2SecurityGroupOwnerId and either
-            `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided.
-
-        :type ec2_security_group_owner_id: string
-        :param ec2_security_group_owner_id: AWS Account Number of the owner of
-            the EC2 security group specified in the EC2SecurityGroupName
-            parameter. The AWS Access Key ID is not an acceptable value. For
-            VPC DB security groups, `EC2SecurityGroupId` must be provided.
-            Otherwise, EC2SecurityGroupOwnerId and either
-            `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided.
-
-        """
-        params = {'DBSecurityGroupName': db_security_group_name, }
-        if cidrip is not None:
-            params['CIDRIP'] = cidrip
-        if ec2_security_group_name is not None:
-            params['EC2SecurityGroupName'] = ec2_security_group_name
-        if ec2_security_group_id is not None:
-            params['EC2SecurityGroupId'] = ec2_security_group_id
-        if ec2_security_group_owner_id is not None:
-            params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id
-        return self._make_request(
-            action='AuthorizeDBSecurityGroupIngress',
-            verb='POST',
-            path='/', params=params)
-
-    def copy_db_snapshot(self, source_db_snapshot_identifier,
-                         target_db_snapshot_identifier, tags=None):
-        """
-        Copies the specified DBSnapshot. The source DBSnapshot must be
-        in the "available" state.
-
-        :type source_db_snapshot_identifier: string
-        :param source_db_snapshot_identifier: The identifier for the source DB
-            snapshot.
-        Constraints:
-
-
-        + Must be the identifier for a valid system snapshot in the "available"
-              state.
-
-
-        Example: `rds:mydb-2012-04-02-00-01`
-
-        :type target_db_snapshot_identifier: string
-        :param target_db_snapshot_identifier: The identifier for the copied
-            snapshot.
-        Constraints:
-
-
-        + Cannot be null, empty, or blank
-        + Must contain from 1 to 255 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        Example: `my-db-snapshot`
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-        """
-        params = {
-            'SourceDBSnapshotIdentifier': source_db_snapshot_identifier,
-            'TargetDBSnapshotIdentifier': target_db_snapshot_identifier,
-        }
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CopyDBSnapshot',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_instance(self, db_instance_identifier, allocated_storage,
-                           db_instance_class, engine, master_username,
-                           master_user_password, db_name=None,
-                           db_security_groups=None,
-                           vpc_security_group_ids=None,
-                           availability_zone=None, db_subnet_group_name=None,
-                           preferred_maintenance_window=None,
-                           db_parameter_group_name=None,
-                           backup_retention_period=None,
-                           preferred_backup_window=None, port=None,
-                           multi_az=None, engine_version=None,
-                           auto_minor_version_upgrade=None,
-                           license_model=None, iops=None,
-                           option_group_name=None, character_set_name=None,
-                           publicly_accessible=None, tags=None):
-        """
-        Creates a new DB instance.
-
-        :type db_name: string
-        :param db_name: The meaning of this parameter differs according to the
-            database engine you use.
-        **MySQL**
-
-        The name of the database to create when the DB instance is created. If
-            this parameter is not specified, no database is created in the DB
-            instance.
-
-        Constraints:
-
-
-        + Must contain 1 to 64 alphanumeric characters
-        + Cannot be a word reserved by the specified database engine
-
-
-        Type: String
-
-        **Oracle**
-
-        The Oracle System ID (SID) of the created DB instance.
-
-        Default: `ORCL`
-
-        Constraints:
-
-
-        + Cannot be longer than 8 characters
-
-
-        **SQL Server**
-
-        Not applicable. Must be null.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier: The DB instance identifier. This
-            parameter is stored as a lowercase string.
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15
-              for SQL Server).
-        + First character must be a letter.
-        + Cannot end with a hyphen or contain two consecutive hyphens.
-
-
-        Example: `mydbinstance`
-
-        :type allocated_storage: integer
-        :param allocated_storage: The amount of storage (in gigabytes) to be
-            initially allocated for the database instance.
-        **MySQL**
-
-        Constraints: Must be an integer from 5 to 1024.
-
-        Type: Integer
-
-        **Oracle**
-
-        Constraints: Must be an integer from 10 to 1024.
-
-        **SQL Server**
-
-        Constraints: Must be an integer from 200 to 1024 (Standard Edition and
-            Enterprise Edition) or from 30 to 1024 (Express Edition and Web
-            Edition)
-
-        :type db_instance_class: string
-        :param db_instance_class: The compute and memory capacity of the DB
-            instance.
-        Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large |
-            db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge`
-
-        :type engine: string
-        :param engine: The name of the database engine to be used for this
-            instance.
-        Valid Values: `MySQL` | `oracle-se1` | `oracle-se` | `oracle-ee` |
-            `sqlserver-ee` | `sqlserver-se` | `sqlserver-ex` | `sqlserver-web`
-
-        :type master_username: string
-        :param master_username:
-        The name of master user for the client DB instance.
-
-        **MySQL**
-
-        Constraints:
-
-
-        + Must be 1 to 16 alphanumeric characters.
-        + First character must be a letter.
-        + Cannot be a reserved word for the chosen database engine.
-
-
-        Type: String
-
-        **Oracle**
-
-        Constraints:
-
-
-        + Must be 1 to 30 alphanumeric characters.
-        + First character must be a letter.
-        + Cannot be a reserved word for the chosen database engine.
-
-
-        **SQL Server**
-
-        Constraints:
-
-
-        + Must be 1 to 128 alphanumeric characters.
-        + First character must be a letter.
-        + Cannot be a reserved word for the chosen database engine.
-
-        :type master_user_password: string
-        :param master_user_password: The password for the master database user.
-            Can be any printable ASCII character except "/", '"', or "@".
-        Type: String
-
-        **MySQL**
-
-        Constraints: Must contain from 8 to 41 characters.
-
-        **Oracle**
-
-        Constraints: Must contain from 8 to 30 characters.
-
-        **SQL Server**
-
-        Constraints: Must contain from 8 to 128 characters.
-
-        :type db_security_groups: list
-        :param db_security_groups: A list of DB security groups to associate
-            with this DB instance.
-        Default: The default DB security group for the database engine.
-
-        :type vpc_security_group_ids: list
-        :param vpc_security_group_ids: A list of EC2 VPC security groups to
-            associate with this DB instance.
-        Default: The default EC2 VPC security group for the DB subnet group's
-            VPC.
-
-        :type availability_zone: string
-        :param availability_zone: The EC2 Availability Zone that the database
-            instance will be created in.
-        Default: A random, system-chosen Availability Zone in the endpoint's
-            region.
-
-        Example: `us-east-1d`
-
-        Constraint: The AvailabilityZone parameter cannot be specified if the
-            MultiAZ parameter is set to `True`. The specified Availability Zone
-            must be in the same region as the current endpoint.
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: A DB subnet group to associate with this
-            DB instance.
-        If there is no DB subnet group, then it is a non-VPC DB instance.
-
-        :type preferred_maintenance_window: string
-        :param preferred_maintenance_window: The weekly time range (in UTC)
-            during which system maintenance can occur.
-        Format: `ddd:hh24:mi-ddd:hh24:mi`
-
-        Default: A 30-minute window selected at random from an 8-hour block of
-            time per region, occurring on a random day of the week. To see the
-            time blocks available, see ` Adjusting the Preferred Maintenance
-            Window`_ in the Amazon RDS User Guide.
-
-        Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
-
-        Constraints: Minimum 30-minute window.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of the DB parameter group to associate with this DB instance.
-            If this argument is omitted, the default DBParameterGroup for the
-            specified engine will be used.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type backup_retention_period: integer
-        :param backup_retention_period:
-        The number of days for which automated backups are retained. Setting
-            this parameter to a positive number enables backups. Setting this
-            parameter to 0 disables automated backups.
-
-        Default: 1
-
-        Constraints:
-
-
-        + Must be a value from 0 to 8
-        + Cannot be set to 0 if the DB instance is a master instance with read
-              replicas
-
-        :type preferred_backup_window: string
-        :param preferred_backup_window: The daily time range during which
-            automated backups are created if automated backups are enabled,
-            using the `BackupRetentionPeriod` parameter.
-        Default: A 30-minute window selected at random from an 8-hour block of
-            time per region. See the Amazon RDS User Guide for the time blocks
-            for each region from which the default backup windows are assigned.
-
-        Constraints: Must be in the format `hh24:mi-hh24:mi`. Times should be
-            Universal Time Coordinated (UTC). Must not conflict with the
-            preferred maintenance window. Must be at least 30 minutes.
-
-        :type port: integer
-        :param port: The port number on which the database accepts connections.
-        **MySQL**
-
-        Default: `3306`
-
-        Valid Values: `1150-65535`
-
-        Type: Integer
-
-        **Oracle**
-
-        Default: `1521`
-
-        Valid Values: `1150-65535`
-
-        **SQL Server**
-
-        Default: `1433`
-
-        Valid Values: `1150-65535` except for `1434` and `3389`.
-
-        :type multi_az: boolean
-        :param multi_az: Specifies if the DB instance is a Multi-AZ deployment.
-            You cannot set the AvailabilityZone parameter if the MultiAZ
-            parameter is set to true.
-
-        :type engine_version: string
-        :param engine_version: The version number of the database engine to
-            use.
-        **MySQL**
-
-        Example: `5.1.42`
-
-        Type: String
-
-        **Oracle**
-
-        Example: `11.2.0.2.v2`
-
-        Type: String
-
-        **SQL Server**
-
-        Example: `10.50.2789.0.v1`
-
-        :type auto_minor_version_upgrade: boolean
-        :param auto_minor_version_upgrade: Indicates that minor engine upgrades
-            will be applied automatically to the DB instance during the
-            maintenance window.
-        Default: `True`
-
-        :type license_model: string
-        :param license_model: License model information for this DB instance.
-        Valid values: `license-included` | `bring-your-own-license` | `general-
-            public-license`
-
-        :type iops: integer
-        :param iops: The amount of Provisioned IOPS (input/output operations
-            per second) to be initially allocated for the DB instance.
-        Constraints: Must be an integer greater than 1000.
-
-        :type option_group_name: string
-        :param option_group_name: Indicates that the DB instance should be
-            associated with the specified option group.
-        Permanent options, such as the TDE option for Oracle Advanced Security
-            TDE, cannot be removed from an option group, and that option group
-            cannot be removed from a DB instance once it is associated with a
-            DB instance
-
-        :type character_set_name: string
-        :param character_set_name: For supported engines, indicates that the DB
-            instance should be associated with the specified CharacterSet.
-
-        :type publicly_accessible: boolean
-        :param publicly_accessible: Specifies the accessibility options for the
-            DB instance. A value of true specifies an Internet-facing instance
-            with a publicly resolvable DNS name, which resolves to a public IP
-            address. A value of false specifies an internal instance with a DNS
-            name that resolves to a private IP address.
-        Default: The default behavior varies depending on whether a VPC has
-            been requested or not. The following list shows the default
-            behavior in each case.
-
-
-        + **Default VPC:**true
-        + **VPC:**false
-
-
-        If no DB subnet group has been specified as part of the request and the
-            PubliclyAccessible value has not been set, the DB instance will be
-            publicly accessible. If a specific DB subnet group has been
-            specified as part of the request and the PubliclyAccessible value
-            has not been set, the DB instance will be private.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBInstanceIdentifier': db_instance_identifier,
-            'AllocatedStorage': allocated_storage,
-            'DBInstanceClass': db_instance_class,
-            'Engine': engine,
-            'MasterUsername': master_username,
-            'MasterUserPassword': master_user_password,
-        }
-        if db_name is not None:
-            params['DBName'] = db_name
-        if db_security_groups is not None:
-            self.build_list_params(params,
-                                   db_security_groups,
-                                   'DBSecurityGroups.member')
-        if vpc_security_group_ids is not None:
-            self.build_list_params(params,
-                                   vpc_security_group_ids,
-                                   'VpcSecurityGroupIds.member')
-        if availability_zone is not None:
-            params['AvailabilityZone'] = availability_zone
-        if db_subnet_group_name is not None:
-            params['DBSubnetGroupName'] = db_subnet_group_name
-        if preferred_maintenance_window is not None:
-            params['PreferredMaintenanceWindow'] = preferred_maintenance_window
-        if db_parameter_group_name is not None:
-            params['DBParameterGroupName'] = db_parameter_group_name
-        if backup_retention_period is not None:
-            params['BackupRetentionPeriod'] = backup_retention_period
-        if preferred_backup_window is not None:
-            params['PreferredBackupWindow'] = preferred_backup_window
-        if port is not None:
-            params['Port'] = port
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if engine_version is not None:
-            params['EngineVersion'] = engine_version
-        if auto_minor_version_upgrade is not None:
-            params['AutoMinorVersionUpgrade'] = str(
-                auto_minor_version_upgrade).lower()
-        if license_model is not None:
-            params['LicenseModel'] = license_model
-        if iops is not None:
-            params['Iops'] = iops
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if character_set_name is not None:
-            params['CharacterSetName'] = character_set_name
-        if publicly_accessible is not None:
-            params['PubliclyAccessible'] = str(
-                publicly_accessible).lower()
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBInstance',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_instance_read_replica(self, db_instance_identifier,
-                                        source_db_instance_identifier,
-                                        db_instance_class=None,
-                                        availability_zone=None, port=None,
-                                        auto_minor_version_upgrade=None,
-                                        iops=None, option_group_name=None,
-                                        publicly_accessible=None, tags=None):
-        """
-        Creates a DB instance that acts as a read replica of a source
-        DB instance.
-
-        All read replica DB instances are created as Single-AZ
-        deployments with backups disabled. All other DB instance
-        attributes (including DB security groups and DB parameter
-        groups) are inherited from the source DB instance, except as
-        specified below.
-
-        The source DB instance must have backup retention enabled.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier: The DB instance identifier of the read
-            replica. This is the unique key that identifies a DB instance. This
-            parameter is stored as a lowercase string.
-
-        :type source_db_instance_identifier: string
-        :param source_db_instance_identifier: The identifier of the DB instance
-            that will act as the source for the read replica. Each DB instance
-            can have up to five read replicas.
-        Constraints: Must be the identifier of an existing DB instance that is
-            not already a read replica DB instance.
-
-        :type db_instance_class: string
-        :param db_instance_class: The compute and memory capacity of the read
-            replica.
-        Valid Values: `db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge
-            | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge`
-
-        Default: Inherits from the source DB instance.
-
-        :type availability_zone: string
-        :param availability_zone: The Amazon EC2 Availability Zone that the
-            read replica will be created in.
-        Default: A random, system-chosen Availability Zone in the endpoint's
-            region.
-
-        Example: `us-east-1d`
-
-        :type port: integer
-        :param port: The port number that the DB instance uses for connections.
-        Default: Inherits from the source DB instance
-
-        Valid Values: `1150-65535`
-
-        :type auto_minor_version_upgrade: boolean
-        :param auto_minor_version_upgrade: Indicates that minor engine upgrades
-            will be applied automatically to the read replica during the
-            maintenance window.
-        Default: Inherits from the source DB instance
-
-        :type iops: integer
-        :param iops: The amount of Provisioned IOPS (input/output operations
-            per second) to be initially allocated for the DB instance.
-
-        :type option_group_name: string
-        :param option_group_name: The option group the DB instance will be
-            associated with. If omitted, the default option group for the
-            engine specified will be used.
-
-        :type publicly_accessible: boolean
-        :param publicly_accessible: Specifies the accessibility options for the
-            DB instance. A value of true specifies an Internet-facing instance
-            with a publicly resolvable DNS name, which resolves to a public IP
-            address. A value of false specifies an internal instance with a DNS
-            name that resolves to a private IP address.
-        Default: The default behavior varies depending on whether a VPC has
-            been requested or not. The following list shows the default
-            behavior in each case.
-
-
-        + **Default VPC:**true
-        + **VPC:**false
-
-
-        If no DB subnet group has been specified as part of the request and the
-            PubliclyAccessible value has not been set, the DB instance will be
-            publicly accessible. If a specific DB subnet group has been
-            specified as part of the request and the PubliclyAccessible value
-            has not been set, the DB instance will be private.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBInstanceIdentifier': db_instance_identifier,
-            'SourceDBInstanceIdentifier': source_db_instance_identifier,
-        }
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if availability_zone is not None:
-            params['AvailabilityZone'] = availability_zone
-        if port is not None:
-            params['Port'] = port
-        if auto_minor_version_upgrade is not None:
-            params['AutoMinorVersionUpgrade'] = str(
-                auto_minor_version_upgrade).lower()
-        if iops is not None:
-            params['Iops'] = iops
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if publicly_accessible is not None:
-            params['PubliclyAccessible'] = str(
-                publicly_accessible).lower()
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBInstanceReadReplica',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_parameter_group(self, db_parameter_group_name,
-                                  db_parameter_group_family, description,
-                                  tags=None):
-        """
-        Creates a new DB parameter group.
-
-        A DB parameter group is initially created with the default
-        parameters for the database engine used by the DB instance. To
-        provide custom values for any of the parameters, you must
-        modify the group after creating it using
-        ModifyDBParameterGroup . Once you've created a DB parameter
-        group, you need to associate it with your DB instance using
-        ModifyDBInstance . When you associate a new DB parameter group
-        with a running DB instance, you need to reboot the DB Instance
-        for the new DB parameter group and associated settings to take
-        effect.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of the DB parameter group.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        This value is stored as a lower-case string.
-
-        :type db_parameter_group_family: string
-        :param db_parameter_group_family: The DB parameter group family name. A
-            DB parameter group can be associated with one and only one DB
-            parameter group family, and can be applied only to a DB instance
-            running a database engine and engine version compatible with that
-            DB parameter group family.
-
-        :type description: string
-        :param description: The description for the DB parameter group.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBParameterGroupName': db_parameter_group_name,
-            'DBParameterGroupFamily': db_parameter_group_family,
-            'Description': description,
-        }
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBParameterGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_security_group(self, db_security_group_name,
-                                 db_security_group_description, tags=None):
-        """
-        Creates a new DB security group. DB security groups control
-        access to a DB instance.
-
-        :type db_security_group_name: string
-        :param db_security_group_name: The name for the DB security group. This
-            value is stored as a lowercase string.
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-        + Must not be "Default"
-        + May not contain spaces
-
-
-        Example: `mysecuritygroup`
-
-        :type db_security_group_description: string
-        :param db_security_group_description: The description for the DB
-            security group.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBSecurityGroupName': db_security_group_name,
-            'DBSecurityGroupDescription': db_security_group_description,
-        }
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBSecurityGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_snapshot(self, db_snapshot_identifier,
-                           db_instance_identifier, tags=None):
-        """
-        Creates a DBSnapshot. The source DBInstance must be in
-        "available" state.
-
-        :type db_snapshot_identifier: string
-        :param db_snapshot_identifier: The identifier for the DB snapshot.
-        Constraints:
-
-
-        + Cannot be null, empty, or blank
-        + Must contain from 1 to 255 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        Example: `my-snapshot-id`
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The DB instance identifier. This is the unique key that identifies a DB
-            instance. This parameter isn't case sensitive.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBSnapshotIdentifier': db_snapshot_identifier,
-            'DBInstanceIdentifier': db_instance_identifier,
-        }
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBSnapshot',
-            verb='POST',
-            path='/', params=params)
-
-    def create_db_subnet_group(self, db_subnet_group_name,
-                               db_subnet_group_description, subnet_ids,
-                               tags=None):
-        """
-        Creates a new DB subnet group. DB subnet groups must contain
-        at least one subnet in at least two AZs in the region.
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: The name for the DB subnet group. This
-            value is stored as a lowercase string.
-        Constraints: Must contain no more than 255 alphanumeric characters or
-            hyphens. Must not be "Default".
-
-        Example: `mySubnetgroup`
-
-        :type db_subnet_group_description: string
-        :param db_subnet_group_description: The description for the DB subnet
-            group.
-
-        :type subnet_ids: list
-        :param subnet_ids: The EC2 Subnet IDs for the DB subnet group.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBSubnetGroupName': db_subnet_group_name,
-            'DBSubnetGroupDescription': db_subnet_group_description,
-        }
-        self.build_list_params(params,
-                               subnet_ids,
-                               'SubnetIds.member')
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateDBSubnetGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def create_event_subscription(self, subscription_name, sns_topic_arn,
-                                  source_type=None, event_categories=None,
-                                  source_ids=None, enabled=None, tags=None):
-        """
-        Creates an RDS event notification subscription. This action
-        requires a topic ARN (Amazon Resource Name) created by either
-        the RDS console, the SNS console, or the SNS API. To obtain an
-        ARN with SNS, you must create a topic in Amazon SNS and
-        subscribe to the topic. The ARN is displayed in the SNS
-        console.
-
-        You can specify the type of source (SourceType) you want to be
-        notified of, provide a list of RDS sources (SourceIds) that
-        triggers the events, and provide a list of event categories
-        (EventCategories) for events you want to be notified of. For
-        example, you can specify SourceType = db-instance, SourceIds =
-        mydbinstance1, mydbinstance2 and EventCategories =
-        Availability, Backup.
-
-        If you specify both the SourceType and SourceIds, such as
-        SourceType = db-instance and SourceIdentifier = myDBInstance1,
-        you will be notified of all the db-instance events for the
-        specified source. If you specify a SourceType but do not
-        specify a SourceIdentifier, you will receive notice of the
-        events for that source type for all your RDS sources. If you
-        do not specify either the SourceType nor the SourceIdentifier,
-        you will be notified of events generated from all RDS sources
-        belonging to your customer account.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the subscription.
-        Constraints: The name must be less than 255 characters.
-
-        :type sns_topic_arn: string
-        :param sns_topic_arn: The Amazon Resource Name (ARN) of the SNS topic
-            created for event notification. The ARN is created by Amazon SNS
-            when you create a topic and subscribe to it.
-
-        :type source_type: string
-        :param source_type: The type of source that will be generating the
-            events. For example, if you want to be notified of events generated
-            by a DB instance, you would set this parameter to db-instance. if
-            this value is not specified, all events are returned.
-        Valid values: db-instance | db-parameter-group | db-security-group |
-            db-snapshot
-
-        :type event_categories: list
-        :param event_categories: A list of event categories for a SourceType
-            that you want to subscribe to. You can see a list of the categories
-            for a given SourceType in the `Events`_ topic in the Amazon RDS
-            User Guide or by using the **DescribeEventCategories** action.
-
-        :type source_ids: list
-        :param source_ids:
-        The list of identifiers of the event sources for which events will be
-            returned. If not specified, then all sources are included in the
-            response. An identifier must begin with a letter and must contain
-            only ASCII letters, digits, and hyphens; it cannot end with a
-            hyphen or contain two consecutive hyphens.
-
-        Constraints:
-
-
-        + If SourceIds are supplied, SourceType must also be provided.
-        + If the source type is a DB instance, then a `DBInstanceIdentifier`
-              must be supplied.
-        + If the source type is a DB security group, a `DBSecurityGroupName`
-              must be supplied.
-        + If the source type is a DB parameter group, a `DBParameterGroupName`
-              must be supplied.
-        + If the source type is a DB snapshot, a `DBSnapshotIdentifier` must be
-              supplied.
-
-        :type enabled: boolean
-        :param enabled: A Boolean value; set to **true** to activate the
-            subscription, set to **false** to create the subscription but not
-            active it.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'SubscriptionName': subscription_name,
-            'SnsTopicArn': sns_topic_arn,
-        }
-        if source_type is not None:
-            params['SourceType'] = source_type
-        if event_categories is not None:
-            self.build_list_params(params,
-                                   event_categories,
-                                   'EventCategories.member')
-        if source_ids is not None:
-            self.build_list_params(params,
-                                   source_ids,
-                                   'SourceIds.member')
-        if enabled is not None:
-            params['Enabled'] = str(
-                enabled).lower()
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateEventSubscription',
-            verb='POST',
-            path='/', params=params)
-
-    def create_option_group(self, option_group_name, engine_name,
-                            major_engine_version, option_group_description,
-                            tags=None):
-        """
-        Creates a new option group. You can create up to 20 option
-        groups.
-
-        :type option_group_name: string
-        :param option_group_name: Specifies the name of the option group to be
-            created.
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        Example: `myoptiongroup`
-
-        :type engine_name: string
-        :param engine_name: Specifies the name of the engine that this option
-            group should be associated with.
-
-        :type major_engine_version: string
-        :param major_engine_version: Specifies the major version of the engine
-            that this option group should be associated with.
-
-        :type option_group_description: string
-        :param option_group_description: The description of the option group.
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'OptionGroupName': option_group_name,
-            'EngineName': engine_name,
-            'MajorEngineVersion': major_engine_version,
-            'OptionGroupDescription': option_group_description,
-        }
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='CreateOptionGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_db_instance(self, db_instance_identifier,
-                           skip_final_snapshot=None,
-                           final_db_snapshot_identifier=None):
-        """
-        The DeleteDBInstance action deletes a previously provisioned
-        DB instance. A successful response from the web service
-        indicates the request was received correctly. When you delete
-        a DB instance, all automated backups for that instance are
-        deleted and cannot be recovered. Manual DB snapshots of the DB
-        instance to be deleted are not deleted.
-
-        If a final DB snapshot is requested the status of the RDS
-        instance will be "deleting" until the DB snapshot is created.
-        The API action `DescribeDBInstance` is used to monitor the
-        status of this operation. The action cannot be canceled or
-        reverted once submitted.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The DB instance identifier for the DB instance to be deleted. This
-            parameter isn't case sensitive.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type skip_final_snapshot: boolean
-        :param skip_final_snapshot: Determines whether a final DB snapshot is
-            created before the DB instance is deleted. If `True` is specified,
-            no DBSnapshot is created. If false is specified, a DB snapshot is
-            created before the DB instance is deleted.
-        The FinalDBSnapshotIdentifier parameter must be specified if
-            SkipFinalSnapshot is `False`.
-
-        Default: `False`
-
-        :type final_db_snapshot_identifier: string
-        :param final_db_snapshot_identifier:
-        The DBSnapshotIdentifier of the new DBSnapshot created when
-            SkipFinalSnapshot is set to `False`.
-
-        Specifying this parameter and also setting the SkipFinalShapshot
-            parameter to true results in an error.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        """
-        params = {'DBInstanceIdentifier': db_instance_identifier, }
-        if skip_final_snapshot is not None:
-            params['SkipFinalSnapshot'] = str(
-                skip_final_snapshot).lower()
-        if final_db_snapshot_identifier is not None:
-            params['FinalDBSnapshotIdentifier'] = final_db_snapshot_identifier
-        return self._make_request(
-            action='DeleteDBInstance',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_db_parameter_group(self, db_parameter_group_name):
-        """
-        Deletes a specified DBParameterGroup. The DBParameterGroup
-        cannot be associated with any RDS instances to be deleted.
-        The specified DB parameter group cannot be associated with any
-        DB instances.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of the DB parameter group.
-
-        Constraints:
-
-
-        + Must be the name of an existing DB parameter group
-        + You cannot delete a default DB parameter group
-        + Cannot be associated with any DB instances
-
-        """
-        params = {'DBParameterGroupName': db_parameter_group_name, }
-        return self._make_request(
-            action='DeleteDBParameterGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_db_security_group(self, db_security_group_name):
-        """
-        Deletes a DB security group.
-        The specified DB security group must not be associated with
-        any DB instances.
-
-        :type db_security_group_name: string
-        :param db_security_group_name:
-        The name of the DB security group to delete.
-
-        You cannot delete the default DB security group.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-        + Must not be "Default"
-        + May not contain spaces
-
-        """
-        params = {'DBSecurityGroupName': db_security_group_name, }
-        return self._make_request(
-            action='DeleteDBSecurityGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_db_snapshot(self, db_snapshot_identifier):
-        """
-        Deletes a DBSnapshot.
-        The DBSnapshot must be in the `available` state to be deleted.
-
-        :type db_snapshot_identifier: string
-        :param db_snapshot_identifier: The DBSnapshot identifier.
-        Constraints: Must be the name of an existing DB snapshot in the
-            `available` state.
-
-        """
-        params = {'DBSnapshotIdentifier': db_snapshot_identifier, }
-        return self._make_request(
-            action='DeleteDBSnapshot',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_db_subnet_group(self, db_subnet_group_name):
-        """
-        Deletes a DB subnet group.
-        The specified database subnet group must not be associated
-        with any DB instances.
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name:
-        The name of the database subnet group to delete.
-
-        You cannot delete the default subnet group.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        """
-        params = {'DBSubnetGroupName': db_subnet_group_name, }
-        return self._make_request(
-            action='DeleteDBSubnetGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_event_subscription(self, subscription_name):
-        """
-        Deletes an RDS event notification subscription.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the RDS event notification
-            subscription you want to delete.
-
-        """
-        params = {'SubscriptionName': subscription_name, }
-        return self._make_request(
-            action='DeleteEventSubscription',
-            verb='POST',
-            path='/', params=params)
-
-    def delete_option_group(self, option_group_name):
-        """
-        Deletes an existing option group.
-
-        :type option_group_name: string
-        :param option_group_name:
-        The name of the option group to be deleted.
-
-        You cannot delete default option groups.
-
-        """
-        params = {'OptionGroupName': option_group_name, }
-        return self._make_request(
-            action='DeleteOptionGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_engine_versions(self, engine=None, engine_version=None,
-                                    db_parameter_group_family=None,
-                                    max_records=None, marker=None,
-                                    default_only=None,
-                                    list_supported_character_sets=None):
-        """
-        Returns a list of the available DB engines.
-
-        :type engine: string
-        :param engine: The database engine to return.
-
-        :type engine_version: string
-        :param engine_version: The database engine version to return.
-        Example: `5.1.49`
-
-        :type db_parameter_group_family: string
-        :param db_parameter_group_family:
-        The name of a specific DB parameter group family to return details for.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more than the `MaxRecords` value is available, a
-            pagination token called a marker is included in the response so
-            that the following results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            request. If this parameter is specified, the response includes only
-            records beyond the marker, up to the value specified by
-            `MaxRecords`.
-
-        :type default_only: boolean
-        :param default_only: Indicates that only the default version of the
-            specified engine or engine and major version combination is
-            returned.
-
-        :type list_supported_character_sets: boolean
-        :param list_supported_character_sets: If this parameter is specified,
-            and if the requested engine supports the CharacterSetName parameter
-            for CreateDBInstance, the response includes a list of supported
-            character sets for each engine version.
-
-        """
-        params = {}
-        if engine is not None:
-            params['Engine'] = engine
-        if engine_version is not None:
-            params['EngineVersion'] = engine_version
-        if db_parameter_group_family is not None:
-            params['DBParameterGroupFamily'] = db_parameter_group_family
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        if default_only is not None:
-            params['DefaultOnly'] = str(
-                default_only).lower()
-        if list_supported_character_sets is not None:
-            params['ListSupportedCharacterSets'] = str(
-                list_supported_character_sets).lower()
-        return self._make_request(
-            action='DescribeDBEngineVersions',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_instances(self, db_instance_identifier=None,
-                              filters=None, max_records=None, marker=None):
-        """
-        Returns information about provisioned RDS instances. This API
-        supports pagination.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The user-supplied instance identifier. If this parameter is specified,
-            information from only the specific DB instance is returned. This
-            parameter isn't case sensitive.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeDBInstances request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords` .
-
-        """
-        params = {}
-        if db_instance_identifier is not None:
-            params['DBInstanceIdentifier'] = db_instance_identifier
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBInstances',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_log_files(self, db_instance_identifier,
-                              filename_contains=None, file_last_written=None,
-                              file_size=None, max_records=None, marker=None):
-        """
-        Returns a list of DB log files for the DB instance.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The customer-assigned name of the DB instance that contains the log
-            files you want to list.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type filename_contains: string
-        :param filename_contains: Filters the available log files for log file
-            names that contain the specified string.
-
-        :type file_last_written: long
-        :param file_last_written: Filters the available log files for files
-            written since the specified date, in POSIX timestamp format.
-
-        :type file_size: long
-        :param file_size: Filters the available log files for files larger than
-            the specified size.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified MaxRecords
-            value, a pagination token called a marker is included in the
-            response so that the remaining results can be retrieved.
-
-        :type marker: string
-        :param marker: The pagination token provided in the previous request.
-            If this parameter is specified the response includes only records
-            beyond the marker, up to MaxRecords.
-
-        """
-        params = {'DBInstanceIdentifier': db_instance_identifier, }
-        if filename_contains is not None:
-            params['FilenameContains'] = filename_contains
-        if file_last_written is not None:
-            params['FileLastWritten'] = file_last_written
-        if file_size is not None:
-            params['FileSize'] = file_size
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBLogFiles',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_parameter_groups(self, db_parameter_group_name=None,
-                                     filters=None, max_records=None,
-                                     marker=None):
-        """
-        Returns a list of `DBParameterGroup` descriptions. If a
-        `DBParameterGroupName` is specified, the list will contain
-        only the description of the specified DB parameter group.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of a specific DB parameter group to return details for.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            `DescribeDBParameterGroups` request. If this parameter is
-            specified, the response includes only records beyond the marker, up
-            to the value specified by `MaxRecords`.
-
-        """
-        params = {}
-        if db_parameter_group_name is not None:
-            params['DBParameterGroupName'] = db_parameter_group_name
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBParameterGroups',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_parameters(self, db_parameter_group_name, source=None,
-                               max_records=None, marker=None):
-        """
-        Returns the detailed parameter list for a particular DB
-        parameter group.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of a specific DB parameter group to return details for.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type source: string
-        :param source: The parameter types to return.
-        Default: All parameter types returned
-
-        Valid Values: `user | system | engine-default`
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            `DescribeDBParameters` request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords`.
-
-        """
-        params = {'DBParameterGroupName': db_parameter_group_name, }
-        if source is not None:
-            params['Source'] = source
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBParameters',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_security_groups(self, db_security_group_name=None,
-                                    filters=None, max_records=None,
-                                    marker=None):
-        """
-        Returns a list of `DBSecurityGroup` descriptions. If a
-        `DBSecurityGroupName` is specified, the list will contain only
-        the descriptions of the specified DB security group.
-
-        :type db_security_group_name: string
-        :param db_security_group_name: The name of the DB security group to
-            return details for.
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeDBSecurityGroups request. If this parameter is specified,
-            the response includes only records beyond the marker, up to the
-            value specified by `MaxRecords`.
-
-        """
-        params = {}
-        if db_security_group_name is not None:
-            params['DBSecurityGroupName'] = db_security_group_name
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBSecurityGroups',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_snapshots(self, db_instance_identifier=None,
-                              db_snapshot_identifier=None,
-                              snapshot_type=None, filters=None,
-                              max_records=None, marker=None):
-        """
-        Returns information about DB snapshots. This API supports
-        pagination.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        A DB instance identifier to retrieve the list of DB snapshots for.
-            Cannot be used in conjunction with `DBSnapshotIdentifier`. This
-            parameter is not case sensitive.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type db_snapshot_identifier: string
-        :param db_snapshot_identifier:
-        A specific DB snapshot identifier to describe. Cannot be used in
-            conjunction with `DBInstanceIdentifier`. This value is stored as a
-            lowercase string.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-        + If this is the identifier of an automated snapshot, the
-              `SnapshotType` parameter must also be specified.
-
-        :type snapshot_type: string
-        :param snapshot_type: The type of snapshots that will be returned.
-            Values can be "automated" or "manual." If not specified, the
-            returned results will include all snapshots types.
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            `DescribeDBSnapshots` request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords`.
-
-        """
-        params = {}
-        if db_instance_identifier is not None:
-            params['DBInstanceIdentifier'] = db_instance_identifier
-        if db_snapshot_identifier is not None:
-            params['DBSnapshotIdentifier'] = db_snapshot_identifier
-        if snapshot_type is not None:
-            params['SnapshotType'] = snapshot_type
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBSnapshots',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_db_subnet_groups(self, db_subnet_group_name=None,
-                                  filters=None, max_records=None,
-                                  marker=None):
-        """
-        Returns a list of DBSubnetGroup descriptions. If a
-        DBSubnetGroupName is specified, the list will contain only the
-        descriptions of the specified DBSubnetGroup.
-
-        For an overview of CIDR ranges, go to the `Wikipedia
-        Tutorial`_.
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: The name of the DB subnet group to return
-            details for.
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeDBSubnetGroups request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords`.
-
-        """
-        params = {}
-        if db_subnet_group_name is not None:
-            params['DBSubnetGroupName'] = db_subnet_group_name
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeDBSubnetGroups',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_engine_default_parameters(self, db_parameter_group_family,
-                                           max_records=None, marker=None):
-        """
-        Returns the default engine and system parameter information
-        for the specified database engine.
-
-        :type db_parameter_group_family: string
-        :param db_parameter_group_family: The name of the DB parameter group
-            family.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            `DescribeEngineDefaultParameters` request. If this parameter is
-            specified, the response includes only records beyond the marker, up
-            to the value specified by `MaxRecords`.
-
-        """
-        params = {
-            'DBParameterGroupFamily': db_parameter_group_family,
-        }
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeEngineDefaultParameters',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_event_categories(self, source_type=None):
-        """
-        Displays a list of categories for all event source types, or,
-        if specified, for a specified source type. You can see a list
-        of the event categories and source types in the ` Events`_
-        topic in the Amazon RDS User Guide.
-
-        :type source_type: string
-        :param source_type: The type of source that will be generating the
-            events.
-        Valid values: db-instance | db-parameter-group | db-security-group |
-            db-snapshot
-
-        """
-        params = {}
-        if source_type is not None:
-            params['SourceType'] = source_type
-        return self._make_request(
-            action='DescribeEventCategories',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_event_subscriptions(self, subscription_name=None,
-                                     filters=None, max_records=None,
-                                     marker=None):
-        """
-        Lists all the subscription descriptions for a customer
-        account. The description for a subscription includes
-        SubscriptionName, SNSTopicARN, CustomerID, SourceType,
-        SourceID, CreationTime, and Status.
-
-        If you specify a SubscriptionName, lists the description for
-        that subscription.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the RDS event notification
-            subscription you want to describe.
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeOrderableDBInstanceOptions request. If this parameter is
-            specified, the response includes only records beyond the marker, up
-            to the value specified by `MaxRecords` .
-
-        """
-        params = {}
-        if subscription_name is not None:
-            params['SubscriptionName'] = subscription_name
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeEventSubscriptions',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_events(self, source_identifier=None, source_type=None,
-                        start_time=None, end_time=None, duration=None,
-                        event_categories=None, max_records=None, marker=None):
-        """
-        Returns events related to DB instances, DB security groups, DB
-        snapshots, and DB parameter groups for the past 14 days.
-        Events specific to a particular DB instance, DB security
-        group, database snapshot, or DB parameter group can be
-        obtained by providing the name as a parameter. By default, the
-        past hour of events are returned.
-
-        :type source_identifier: string
-        :param source_identifier:
-        The identifier of the event source for which events will be returned.
-            If not specified, then all sources are included in the response.
-
-        Constraints:
-
-
-        + If SourceIdentifier is supplied, SourceType must also be provided.
-        + If the source type is `DBInstance`, then a `DBInstanceIdentifier`
-              must be supplied.
-        + If the source type is `DBSecurityGroup`, a `DBSecurityGroupName` must
-              be supplied.
-        + If the source type is `DBParameterGroup`, a `DBParameterGroupName`
-              must be supplied.
-        + If the source type is `DBSnapshot`, a `DBSnapshotIdentifier` must be
-              supplied.
-        + Cannot end with a hyphen or contain two consecutive hyphens.
-
-        :type source_type: string
-        :param source_type: The event source to retrieve events for. If no
-            value is specified, all events are returned.
-
-        :type start_time: timestamp
-        :param start_time: The beginning of the time interval to retrieve
-            events for, specified in ISO 8601 format. For more information
-            about ISO 8601, go to the `ISO8601 Wikipedia page.`_
-        Example: 2009-07-08T18:00Z
-
-        :type end_time: timestamp
-        :param end_time: The end of the time interval for which to retrieve
-            events, specified in ISO 8601 format. For more information about
-            ISO 8601, go to the `ISO8601 Wikipedia page.`_
-        Example: 2009-07-08T18:00Z
-
-        :type duration: integer
-        :param duration: The number of minutes to retrieve events for.
-        Default: 60
-
-        :type event_categories: list
-        :param event_categories: A list of event categories that trigger
-            notifications for a event notification subscription.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results may be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeEvents request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords`.
-
-        """
-        params = {}
-        if source_identifier is not None:
-            params['SourceIdentifier'] = source_identifier
-        if source_type is not None:
-            params['SourceType'] = source_type
-        if start_time is not None:
-            params['StartTime'] = start_time
-        if end_time is not None:
-            params['EndTime'] = end_time
-        if duration is not None:
-            params['Duration'] = duration
-        if event_categories is not None:
-            self.build_list_params(params,
-                                   event_categories,
-                                   'EventCategories.member')
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeEvents',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_option_group_options(self, engine_name,
-                                      major_engine_version=None,
-                                      max_records=None, marker=None):
-        """
-        Describes all available options.
-
-        :type engine_name: string
-        :param engine_name: A required parameter. Options available for the
-            given Engine name will be described.
-
-        :type major_engine_version: string
-        :param major_engine_version: If specified, filters the results to
-            include only options for the specified major engine version.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            request. If this parameter is specified, the response includes only
-            records beyond the marker, up to the value specified by
-            `MaxRecords`.
-
-        """
-        params = {'EngineName': engine_name, }
-        if major_engine_version is not None:
-            params['MajorEngineVersion'] = major_engine_version
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeOptionGroupOptions',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_option_groups(self, option_group_name=None, filters=None,
-                               marker=None, max_records=None,
-                               engine_name=None, major_engine_version=None):
-        """
-        Describes the available option groups.
-
-        :type option_group_name: string
-        :param option_group_name: The name of the option group to describe.
-            Cannot be supplied together with EngineName or MajorEngineVersion.
-
-        :type filters: list
-        :param filters:
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeOptionGroups request. If this parameter is specified, the
-            response includes only records beyond the marker, up to the value
-            specified by `MaxRecords`.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type engine_name: string
-        :param engine_name: Filters the list of option groups to only include
-            groups associated with a specific database engine.
-
-        :type major_engine_version: string
-        :param major_engine_version: Filters the list of option groups to only
-            include groups associated with a specific database engine version.
-            If specified, then EngineName must also be specified.
-
-        """
-        params = {}
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if marker is not None:
-            params['Marker'] = marker
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if engine_name is not None:
-            params['EngineName'] = engine_name
-        if major_engine_version is not None:
-            params['MajorEngineVersion'] = major_engine_version
-        return self._make_request(
-            action='DescribeOptionGroups',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_orderable_db_instance_options(self, engine,
-                                               engine_version=None,
-                                               db_instance_class=None,
-                                               license_model=None, vpc=None,
-                                               max_records=None, marker=None):
-        """
-        Returns a list of orderable DB instance options for the
-        specified engine.
-
-        :type engine: string
-        :param engine: The name of the engine to retrieve DB instance options
-            for.
-
-        :type engine_version: string
-        :param engine_version: The engine version filter value. Specify this
-            parameter to show only the available offerings matching the
-            specified engine version.
-
-        :type db_instance_class: string
-        :param db_instance_class: The DB instance class filter value. Specify
-            this parameter to show only the available offerings matching the
-            specified DB instance class.
-
-        :type license_model: string
-        :param license_model: The license model filter value. Specify this
-            parameter to show only the available offerings matching the
-            specified license model.
-
-        :type vpc: boolean
-        :param vpc: The VPC filter value. Specify this parameter to show only
-            the available VPC or non-VPC offerings.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more records exist than the specified `MaxRecords`
-            value, a pagination token called a marker is included in the
-            response so that the remaining results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            DescribeOrderableDBInstanceOptions request. If this parameter is
-            specified, the response includes only records beyond the marker, up
-            to the value specified by `MaxRecords` .
-
-        """
-        params = {'Engine': engine, }
-        if engine_version is not None:
-            params['EngineVersion'] = engine_version
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if license_model is not None:
-            params['LicenseModel'] = license_model
-        if vpc is not None:
-            params['Vpc'] = str(
-                vpc).lower()
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeOrderableDBInstanceOptions',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_reserved_db_instances(self, reserved_db_instance_id=None,
-                                       reserved_db_instances_offering_id=None,
-                                       db_instance_class=None, duration=None,
-                                       product_description=None,
-                                       offering_type=None, multi_az=None,
-                                       filters=None, max_records=None,
-                                       marker=None):
-        """
-        Returns information about reserved DB instances for this
-        account, or about a specified reserved DB instance.
-
-        :type reserved_db_instance_id: string
-        :param reserved_db_instance_id: The reserved DB instance identifier
-            filter value. Specify this parameter to show only the reservation
-            that matches the specified reservation ID.
-
-        :type reserved_db_instances_offering_id: string
-        :param reserved_db_instances_offering_id: The offering identifier
-            filter value. Specify this parameter to show only purchased
-            reservations matching the specified offering identifier.
-
-        :type db_instance_class: string
-        :param db_instance_class: The DB instance class filter value. Specify
-            this parameter to show only those reservations matching the
-            specified DB instances class.
-
-        :type duration: string
-        :param duration: The duration filter value, specified in years or
-            seconds. Specify this parameter to show only reservations for this
-            duration.
-        Valid Values: `1 | 3 | 31536000 | 94608000`
-
-        :type product_description: string
-        :param product_description: The product description filter value.
-            Specify this parameter to show only those reservations matching the
-            specified product description.
-
-        :type offering_type: string
-        :param offering_type: The offering type filter value. Specify this
-            parameter to show only the available offerings matching the
-            specified offering type.
-        Valid Values: `"Light Utilization" | "Medium Utilization" | "Heavy
-            Utilization" `
-
-        :type multi_az: boolean
-        :param multi_az: The Multi-AZ filter value. Specify this parameter to
-            show only those reservations matching the specified Multi-AZ
-            parameter.
-
-        :type filters: list
-        :param filters:
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more than the `MaxRecords` value is available, a
-            pagination token called a marker is included in the response so
-            that the following results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            request. If this parameter is specified, the response includes only
-            records beyond the marker, up to the value specified by
-            `MaxRecords`.
-
-        """
-        params = {}
-        if reserved_db_instance_id is not None:
-            params['ReservedDBInstanceId'] = reserved_db_instance_id
-        if reserved_db_instances_offering_id is not None:
-            params['ReservedDBInstancesOfferingId'] = reserved_db_instances_offering_id
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if duration is not None:
-            params['Duration'] = duration
-        if product_description is not None:
-            params['ProductDescription'] = product_description
-        if offering_type is not None:
-            params['OfferingType'] = offering_type
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if filters is not None:
-            self.build_complex_list_params(
-                params, filters,
-                'Filters.member',
-                ('FilterName', 'FilterValue'))
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeReservedDBInstances',
-            verb='POST',
-            path='/', params=params)
-
-    def describe_reserved_db_instances_offerings(self,
-                                                 reserved_db_instances_offering_id=None,
-                                                 db_instance_class=None,
-                                                 duration=None,
-                                                 product_description=None,
-                                                 offering_type=None,
-                                                 multi_az=None,
-                                                 max_records=None,
-                                                 marker=None):
-        """
-        Lists available reserved DB instance offerings.
-
-        :type reserved_db_instances_offering_id: string
-        :param reserved_db_instances_offering_id: The offering identifier
-            filter value. Specify this parameter to show only the available
-            offering that matches the specified reservation identifier.
-        Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706`
-
-        :type db_instance_class: string
-        :param db_instance_class: The DB instance class filter value. Specify
-            this parameter to show only the available offerings matching the
-            specified DB instance class.
-
-        :type duration: string
-        :param duration: Duration filter value, specified in years or seconds.
-            Specify this parameter to show only reservations for this duration.
-        Valid Values: `1 | 3 | 31536000 | 94608000`
-
-        :type product_description: string
-        :param product_description: Product description filter value. Specify
-            this parameter to show only the available offerings matching the
-            specified product description.
-
-        :type offering_type: string
-        :param offering_type: The offering type filter value. Specify this
-            parameter to show only the available offerings matching the
-            specified offering type.
-        Valid Values: `"Light Utilization" | "Medium Utilization" | "Heavy
-            Utilization" `
-
-        :type multi_az: boolean
-        :param multi_az: The Multi-AZ filter value. Specify this parameter to
-            show only the available offerings matching the specified Multi-AZ
-            parameter.
-
-        :type max_records: integer
-        :param max_records: The maximum number of records to include in the
-            response. If more than the `MaxRecords` value is available, a
-            pagination token called a marker is included in the response so
-            that the following results can be retrieved.
-        Default: 100
-
-        Constraints: minimum 20, maximum 100
-
-        :type marker: string
-        :param marker: An optional pagination token provided by a previous
-            request. If this parameter is specified, the response includes only
-            records beyond the marker, up to the value specified by
-            `MaxRecords`.
-
-        """
-        params = {}
-        if reserved_db_instances_offering_id is not None:
-            params['ReservedDBInstancesOfferingId'] = reserved_db_instances_offering_id
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if duration is not None:
-            params['Duration'] = duration
-        if product_description is not None:
-            params['ProductDescription'] = product_description
-        if offering_type is not None:
-            params['OfferingType'] = offering_type
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if max_records is not None:
-            params['MaxRecords'] = max_records
-        if marker is not None:
-            params['Marker'] = marker
-        return self._make_request(
-            action='DescribeReservedDBInstancesOfferings',
-            verb='POST',
-            path='/', params=params)
-
-    def download_db_log_file_portion(self, db_instance_identifier,
-                                     log_file_name, marker=None,
-                                     number_of_lines=None):
-        """
-        Downloads the last line of the specified log file.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The customer-assigned name of the DB instance that contains the log
-            files you want to list.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type log_file_name: string
-        :param log_file_name: The name of the log file to be downloaded.
-
-        :type marker: string
-        :param marker: The pagination token provided in the previous request.
-            If this parameter is specified the response includes only records
-            beyond the marker, up to MaxRecords.
-
-        :type number_of_lines: integer
-        :param number_of_lines: The number of lines remaining to be downloaded.
-
-        """
-        params = {
-            'DBInstanceIdentifier': db_instance_identifier,
-            'LogFileName': log_file_name,
-        }
-        if marker is not None:
-            params['Marker'] = marker
-        if number_of_lines is not None:
-            params['NumberOfLines'] = number_of_lines
-        return self._make_request(
-            action='DownloadDBLogFilePortion',
-            verb='POST',
-            path='/', params=params)
-
-    def list_tags_for_resource(self, resource_name):
-        """
-        Lists all tags on an Amazon RDS resource.
-
-        For an overview on tagging an Amazon RDS resource, see
-        `Tagging Amazon RDS Resources`_.
-
-        :type resource_name: string
-        :param resource_name: The Amazon RDS resource with tags to be listed.
-            This value is an Amazon Resource Name (ARN). For information about
-            creating an ARN, see ` Constructing an RDS Amazon Resource Name
-            (ARN)`_.
-
-        """
-        params = {'ResourceName': resource_name, }
-        return self._make_request(
-            action='ListTagsForResource',
-            verb='POST',
-            path='/', params=params)
-
-    def modify_db_instance(self, db_instance_identifier,
-                           allocated_storage=None, db_instance_class=None,
-                           db_security_groups=None,
-                           vpc_security_group_ids=None,
-                           apply_immediately=None, master_user_password=None,
-                           db_parameter_group_name=None,
-                           backup_retention_period=None,
-                           preferred_backup_window=None,
-                           preferred_maintenance_window=None, multi_az=None,
-                           engine_version=None,
-                           allow_major_version_upgrade=None,
-                           auto_minor_version_upgrade=None, iops=None,
-                           option_group_name=None,
-                           new_db_instance_identifier=None):
-        """
-        Modify settings for a DB instance. You can change one or more
-        database configuration parameters by specifying these
-        parameters and the new values in the request.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The DB instance identifier. This value is stored as a lowercase string.
-
-        Constraints:
-
-
-        + Must be the identifier for an existing DB instance
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type allocated_storage: integer
-        :param allocated_storage: The new storage capacity of the RDS instance.
-            Changing this parameter does not result in an outage and the change
-            is applied during the next maintenance window unless the
-            `ApplyImmediately` parameter is set to `True` for this request.
-        **MySQL**
-
-        Default: Uses existing setting
-
-        Valid Values: 5-1024
-
-        Constraints: Value supplied must be at least 10% greater than the
-            current value. Values that are not at least 10% greater than the
-            existing value are rounded up so that they are 10% greater than the
-            current value.
-
-        Type: Integer
-
-        **Oracle**
-
-        Default: Uses existing setting
-
-        Valid Values: 10-1024
-
-        Constraints: Value supplied must be at least 10% greater than the
-            current value. Values that are not at least 10% greater than the
-            existing value are rounded up so that they are 10% greater than the
-            current value.
-
-        **SQL Server**
-
-        Cannot be modified.
-
-        If you choose to migrate your DB instance from using standard storage
-            to using Provisioned IOPS, or from using Provisioned IOPS to using
-            standard storage, the process can take time. The duration of the
-            migration depends on several factors such as database load, storage
-            size, storage type (standard or Provisioned IOPS), amount of IOPS
-            provisioned (if any), and the number of prior scale storage
-            operations. Typical migration times are under 24 hours, but the
-            process can take up to several days in some cases. During the
-            migration, the DB instance will be available for use, but may
-            experience performance degradation. While the migration takes
-            place, nightly backups for the instance will be suspended. No other
-            Amazon RDS operations can take place for the instance, including
-            modifying the instance, rebooting the instance, deleting the
-            instance, creating a read replica for the instance, and creating a
-            DB snapshot of the instance.
-
-        :type db_instance_class: string
-        :param db_instance_class: The new compute and memory capacity of the DB
-            instance. To determine the instance classes that are available for
-            a particular DB engine, use the DescribeOrderableDBInstanceOptions
-            action.
-        Passing a value for this parameter causes an outage during the change
-            and is applied during the next maintenance window, unless the
-            `ApplyImmediately` parameter is specified as `True` for this
-            request.
-
-        Default: Uses existing setting
-
-        Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large |
-            db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge`
-
-        :type db_security_groups: list
-        :param db_security_groups:
-        A list of DB security groups to authorize on this DB instance. Changing
-            this parameter does not result in an outage and the change is
-            asynchronously applied as soon as possible.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type vpc_security_group_ids: list
-        :param vpc_security_group_ids:
-        A list of EC2 VPC security groups to authorize on this DB instance.
-            This change is asynchronously applied as soon as possible.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type apply_immediately: boolean
-        :param apply_immediately: Specifies whether or not the modifications in
-            this request and any pending modifications are asynchronously
-            applied as soon as possible, regardless of the
-            `PreferredMaintenanceWindow` setting for the DB instance.
-        If this parameter is passed as `False`, changes to the DB instance are
-            applied on the next call to RebootDBInstance, the next maintenance
-            reboot, or the next failure reboot, whichever occurs first. See
-            each parameter to determine when a change is applied.
-
-        Default: `False`
-
-        :type master_user_password: string
-        :param master_user_password:
-        The new password for the DB instance master user. Can be any printable
-            ASCII character except "/", '"', or "@".
-
-        Changing this parameter does not result in an outage and the change is
-            asynchronously applied as soon as possible. Between the time of the
-            request and the completion of the request, the `MasterUserPassword`
-            element exists in the `PendingModifiedValues` element of the
-            operation response.
-
-        Default: Uses existing setting
-
-        Constraints: Must be 8 to 41 alphanumeric characters (MySQL), 8 to 30
-            alphanumeric characters (Oracle), or 8 to 128 alphanumeric
-            characters (SQL Server).
-
-        Amazon RDS API actions never return the password, so this action
-            provides a way to regain access to a master instance user if the
-            password is lost.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name: The name of the DB parameter group to
-            apply to this DB instance. Changing this parameter does not result
-            in an outage and the change is applied during the next maintenance
-            window unless the `ApplyImmediately` parameter is set to `True` for
-            this request.
-        Default: Uses existing setting
-
-        Constraints: The DB parameter group must be in the same DB parameter
-            group family as this DB instance.
-
-        :type backup_retention_period: integer
-        :param backup_retention_period:
-        The number of days to retain automated backups. Setting this parameter
-            to a positive number enables backups. Setting this parameter to 0
-            disables automated backups.
-
-        Changing this parameter can result in an outage if you change from 0 to
-            a non-zero value or from a non-zero value to 0. These changes are
-            applied during the next maintenance window unless the
-            `ApplyImmediately` parameter is set to `True` for this request. If
-            you change the parameter from one non-zero value to another non-
-            zero value, the change is asynchronously applied as soon as
-            possible.
-
-        Default: Uses existing setting
-
-        Constraints:
-
-
-        + Must be a value from 0 to 8
-        + Cannot be set to 0 if the DB instance is a master instance with read
-              replicas or if the DB instance is a read replica
-
-        :type preferred_backup_window: string
-        :param preferred_backup_window:
-        The daily time range during which automated backups are created if
-            automated backups are enabled, as determined by the
-            `BackupRetentionPeriod`. Changing this parameter does not result in
-            an outage and the change is asynchronously applied as soon as
-            possible.
-
-        Constraints:
-
-
-        + Must be in the format hh24:mi-hh24:mi
-        + Times should be Universal Time Coordinated (UTC)
-        + Must not conflict with the preferred maintenance window
-        + Must be at least 30 minutes
-
-        :type preferred_maintenance_window: string
-        :param preferred_maintenance_window: The weekly time range (in UTC)
-            during which system maintenance can occur, which may result in an
-            outage. Changing this parameter does not result in an outage,
-            except in the following situation, and the change is asynchronously
-            applied as soon as possible. If there are pending actions that
-            cause a reboot, and the maintenance window is changed to include
-            the current time, then changing this parameter will cause a reboot
-            of the DB instance. If moving this window to the current time,
-            there must be at least 30 minutes between the current time and end
-            of the window to ensure pending changes are applied.
-        Default: Uses existing setting
-
-        Format: ddd:hh24:mi-ddd:hh24:mi
-
-        Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
-
-        Constraints: Must be at least 30 minutes
-
-        :type multi_az: boolean
-        :param multi_az: Specifies if the DB instance is a Multi-AZ deployment.
-            Changing this parameter does not result in an outage and the change
-            is applied during the next maintenance window unless the
-            `ApplyImmediately` parameter is set to `True` for this request.
-        Constraints: Cannot be specified if the DB instance is a read replica.
-
-        :type engine_version: string
-        :param engine_version: The version number of the database engine to
-            upgrade to. Changing this parameter results in an outage and the
-            change is applied during the next maintenance window unless the
-            `ApplyImmediately` parameter is set to `True` for this request.
-        For major version upgrades, if a non-default DB parameter group is
-            currently in use, a new DB parameter group in the DB parameter
-            group family for the new engine version must be specified. The new
-            DB parameter group can be the default for that DB parameter group
-            family.
-
-        Example: `5.1.42`
-
-        :type allow_major_version_upgrade: boolean
-        :param allow_major_version_upgrade: Indicates that major version
-            upgrades are allowed. Changing this parameter does not result in an
-            outage and the change is asynchronously applied as soon as
-            possible.
-        Constraints: This parameter must be set to true when specifying a value
-            for the EngineVersion parameter that is a different major version
-            than the DB instance's current version.
-
-        :type auto_minor_version_upgrade: boolean
-        :param auto_minor_version_upgrade: Indicates that minor version
-            upgrades will be applied automatically to the DB instance during
-            the maintenance window. Changing this parameter does not result in
-            an outage except in the following case and the change is
-            asynchronously applied as soon as possible. An outage will result
-            if this parameter is set to `True` during the maintenance window,
-            and a newer minor version is available, and RDS has enabled auto
-            patching for that engine version.
-
-        :type iops: integer
-        :param iops: The new Provisioned IOPS (I/O operations per second) value
-            for the RDS instance. Changing this parameter does not result in an
-            outage and the change is applied during the next maintenance window
-            unless the `ApplyImmediately` parameter is set to `True` for this
-            request.
-        Default: Uses existing setting
-
-        Constraints: Value supplied must be at least 10% greater than the
-            current value. Values that are not at least 10% greater than the
-            existing value are rounded up so that they are 10% greater than the
-            current value.
-
-        Type: Integer
-
-        If you choose to migrate your DB instance from using standard storage
-            to using Provisioned IOPS, or from using Provisioned IOPS to using
-            standard storage, the process can take time. The duration of the
-            migration depends on several factors such as database load, storage
-            size, storage type (standard or Provisioned IOPS), amount of IOPS
-            provisioned (if any), and the number of prior scale storage
-            operations. Typical migration times are under 24 hours, but the
-            process can take up to several days in some cases. During the
-            migration, the DB instance will be available for use, but may
-            experience performance degradation. While the migration takes
-            place, nightly backups for the instance will be suspended. No other
-            Amazon RDS operations can take place for the instance, including
-            modifying the instance, rebooting the instance, deleting the
-            instance, creating a read replica for the instance, and creating a
-            DB snapshot of the instance.
-
-        :type option_group_name: string
-        :param option_group_name: Indicates that the DB instance should be
-            associated with the specified option group. Changing this parameter
-            does not result in an outage except in the following case and the
-            change is applied during the next maintenance window unless the
-            `ApplyImmediately` parameter is set to `True` for this request. If
-            the parameter change results in an option group that enables OEM,
-            this change can cause a brief (sub-second) period during which new
-            connections are rejected but existing connections are not
-            interrupted.
-        Permanent options, such as the TDE option for Oracle Advanced Security
-            TDE, cannot be removed from an option group, and that option group
-            cannot be removed from a DB instance once it is associated with a
-            DB instance
-
-        :type new_db_instance_identifier: string
-        :param new_db_instance_identifier:
-        The new DB instance identifier for the DB instance when renaming a DB
-            Instance. This value is stored as a lowercase string.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        """
-        params = {'DBInstanceIdentifier': db_instance_identifier, }
-        if allocated_storage is not None:
-            params['AllocatedStorage'] = allocated_storage
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if db_security_groups is not None:
-            self.build_list_params(params,
-                                   db_security_groups,
-                                   'DBSecurityGroups.member')
-        if vpc_security_group_ids is not None:
-            self.build_list_params(params,
-                                   vpc_security_group_ids,
-                                   'VpcSecurityGroupIds.member')
-        if apply_immediately is not None:
-            params['ApplyImmediately'] = str(
-                apply_immediately).lower()
-        if master_user_password is not None:
-            params['MasterUserPassword'] = master_user_password
-        if db_parameter_group_name is not None:
-            params['DBParameterGroupName'] = db_parameter_group_name
-        if backup_retention_period is not None:
-            params['BackupRetentionPeriod'] = backup_retention_period
-        if preferred_backup_window is not None:
-            params['PreferredBackupWindow'] = preferred_backup_window
-        if preferred_maintenance_window is not None:
-            params['PreferredMaintenanceWindow'] = preferred_maintenance_window
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if engine_version is not None:
-            params['EngineVersion'] = engine_version
-        if allow_major_version_upgrade is not None:
-            params['AllowMajorVersionUpgrade'] = str(
-                allow_major_version_upgrade).lower()
-        if auto_minor_version_upgrade is not None:
-            params['AutoMinorVersionUpgrade'] = str(
-                auto_minor_version_upgrade).lower()
-        if iops is not None:
-            params['Iops'] = iops
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if new_db_instance_identifier is not None:
-            params['NewDBInstanceIdentifier'] = new_db_instance_identifier
-        return self._make_request(
-            action='ModifyDBInstance',
-            verb='POST',
-            path='/', params=params)
-
-    def modify_db_parameter_group(self, db_parameter_group_name, parameters):
-        """
-        Modifies the parameters of a DB parameter group. To modify
-        more than one parameter, submit a list of the following:
-        `ParameterName`, `ParameterValue`, and `ApplyMethod`. A
-        maximum of 20 parameters can be modified in a single request.
-
-        The `apply-immediate` method can be used only for dynamic
-        parameters; the `pending-reboot` method can be used with MySQL
-        and Oracle DB instances for either dynamic or static
-        parameters. For Microsoft SQL Server DB instances, the
-        `pending-reboot` method can be used only for static
-        parameters.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of the DB parameter group.
-
-        Constraints:
-
-
-        + Must be the name of an existing DB parameter group
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type parameters: list
-        :param parameters:
-        An array of parameter names, values, and the apply method for the
-            parameter update. At least one parameter name, value, and apply
-            method must be supplied; subsequent arguments are optional. A
-            maximum of 20 parameters may be modified in a single request.
-
-        Valid Values (for the application method): `immediate | pending-reboot`
-
-        You can use the immediate value with dynamic parameters only. You can
-            use the pending-reboot value for both dynamic and static
-            parameters, and changes are applied when DB instance reboots.
-
-        """
-        params = {'DBParameterGroupName': db_parameter_group_name, }
-        self.build_complex_list_params(
-            params, parameters,
-            'Parameters.member',
-            ('ParameterName', 'ParameterValue', 'Description', 'Source', 'ApplyType', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion', 'ApplyMethod'))
-        return self._make_request(
-            action='ModifyDBParameterGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def modify_db_subnet_group(self, db_subnet_group_name, subnet_ids,
-                               db_subnet_group_description=None):
-        """
-        Modifies an existing DB subnet group. DB subnet groups must
-        contain at least one subnet in at least two AZs in the region.
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: The name for the DB subnet group. This
-            value is stored as a lowercase string.
-        Constraints: Must contain no more than 255 alphanumeric characters or
-            hyphens. Must not be "Default".
-
-        Example: `mySubnetgroup`
-
-        :type db_subnet_group_description: string
-        :param db_subnet_group_description: The description for the DB subnet
-            group.
-
-        :type subnet_ids: list
-        :param subnet_ids: The EC2 subnet IDs for the DB subnet group.
-
-        """
-        params = {'DBSubnetGroupName': db_subnet_group_name, }
-        self.build_list_params(params,
-                               subnet_ids,
-                               'SubnetIds.member')
-        if db_subnet_group_description is not None:
-            params['DBSubnetGroupDescription'] = db_subnet_group_description
-        return self._make_request(
-            action='ModifyDBSubnetGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def modify_event_subscription(self, subscription_name,
-                                  sns_topic_arn=None, source_type=None,
-                                  event_categories=None, enabled=None):
-        """
-        Modifies an existing RDS event notification subscription. Note
-        that you cannot modify the source identifiers using this call;
-        to change source identifiers for a subscription, use the
-        AddSourceIdentifierToSubscription and
-        RemoveSourceIdentifierFromSubscription calls.
-
-        You can see a list of the event categories for a given
-        SourceType in the `Events`_ topic in the Amazon RDS User Guide
-        or by using the **DescribeEventCategories** action.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the RDS event notification
-            subscription.
-
-        :type sns_topic_arn: string
-        :param sns_topic_arn: The Amazon Resource Name (ARN) of the SNS topic
-            created for event notification. The ARN is created by Amazon SNS
-            when you create a topic and subscribe to it.
-
-        :type source_type: string
-        :param source_type: The type of source that will be generating the
-            events. For example, if you want to be notified of events generated
-            by a DB instance, you would set this parameter to db-instance. if
-            this value is not specified, all events are returned.
-        Valid values: db-instance | db-parameter-group | db-security-group |
-            db-snapshot
-
-        :type event_categories: list
-        :param event_categories: A list of event categories for a SourceType
-            that you want to subscribe to. You can see a list of the categories
-            for a given SourceType in the `Events`_ topic in the Amazon RDS
-            User Guide or by using the **DescribeEventCategories** action.
-
-        :type enabled: boolean
-        :param enabled: A Boolean value; set to **true** to activate the
-            subscription.
-
-        """
-        params = {'SubscriptionName': subscription_name, }
-        if sns_topic_arn is not None:
-            params['SnsTopicArn'] = sns_topic_arn
-        if source_type is not None:
-            params['SourceType'] = source_type
-        if event_categories is not None:
-            self.build_list_params(params,
-                                   event_categories,
-                                   'EventCategories.member')
-        if enabled is not None:
-            params['Enabled'] = str(
-                enabled).lower()
-        return self._make_request(
-            action='ModifyEventSubscription',
-            verb='POST',
-            path='/', params=params)
-
-    def modify_option_group(self, option_group_name, options_to_include=None,
-                            options_to_remove=None, apply_immediately=None):
-        """
-        Modifies an existing option group.
-
-        :type option_group_name: string
-        :param option_group_name: The name of the option group to be modified.
-        Permanent options, such as the TDE option for Oracle Advanced Security
-            TDE, cannot be removed from an option group, and that option group
-            cannot be removed from a DB instance once it is associated with a
-            DB instance
-
-        :type options_to_include: list
-        :param options_to_include: Options in this list are added to the option
-            group or, if already present, the specified configuration is used
-            to update the existing configuration.
-
-        :type options_to_remove: list
-        :param options_to_remove: Options in this list are removed from the
-            option group.
-
-        :type apply_immediately: boolean
-        :param apply_immediately: Indicates whether the changes should be
-            applied immediately, or during the next maintenance window for each
-            instance associated with the option group.
-
-        """
-        params = {'OptionGroupName': option_group_name, }
-        if options_to_include is not None:
-            self.build_complex_list_params(
-                params, options_to_include,
-                'OptionsToInclude.member',
-                ('OptionName', 'Port', 'DBSecurityGroupMemberships', 'VpcSecurityGroupMemberships', 'OptionSettings'))
-        if options_to_remove is not None:
-            self.build_list_params(params,
-                                   options_to_remove,
-                                   'OptionsToRemove.member')
-        if apply_immediately is not None:
-            params['ApplyImmediately'] = str(
-                apply_immediately).lower()
-        return self._make_request(
-            action='ModifyOptionGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def promote_read_replica(self, db_instance_identifier,
-                             backup_retention_period=None,
-                             preferred_backup_window=None):
-        """
-        Promotes a read replica DB instance to a standalone DB
-        instance.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier: The DB instance identifier. This value
-            is stored as a lowercase string.
-        Constraints:
-
-
-        + Must be the identifier for an existing read replica DB instance
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        Example: mydbinstance
-
-        :type backup_retention_period: integer
-        :param backup_retention_period:
-        The number of days to retain automated backups. Setting this parameter
-            to a positive number enables backups. Setting this parameter to 0
-            disables automated backups.
-
-        Default: 1
-
-        Constraints:
-
-
-        + Must be a value from 0 to 8
-
-        :type preferred_backup_window: string
-        :param preferred_backup_window: The daily time range during which
-            automated backups are created if automated backups are enabled,
-            using the `BackupRetentionPeriod` parameter.
-        Default: A 30-minute window selected at random from an 8-hour block of
-            time per region. See the Amazon RDS User Guide for the time blocks
-            for each region from which the default backup windows are assigned.
-
-        Constraints: Must be in the format `hh24:mi-hh24:mi`. Times should be
-            Universal Time Coordinated (UTC). Must not conflict with the
-            preferred maintenance window. Must be at least 30 minutes.
-
-        """
-        params = {'DBInstanceIdentifier': db_instance_identifier, }
-        if backup_retention_period is not None:
-            params['BackupRetentionPeriod'] = backup_retention_period
-        if preferred_backup_window is not None:
-            params['PreferredBackupWindow'] = preferred_backup_window
-        return self._make_request(
-            action='PromoteReadReplica',
-            verb='POST',
-            path='/', params=params)
-
-    def purchase_reserved_db_instances_offering(self,
-                                                reserved_db_instances_offering_id,
-                                                reserved_db_instance_id=None,
-                                                db_instance_count=None,
-                                                tags=None):
-        """
-        Purchases a reserved DB instance offering.
-
-        :type reserved_db_instances_offering_id: string
-        :param reserved_db_instances_offering_id: The ID of the Reserved DB
-            instance offering to purchase.
-        Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706
-
-        :type reserved_db_instance_id: string
-        :param reserved_db_instance_id: Customer-specified identifier to track
-            this reservation.
-        Example: myreservationID
-
-        :type db_instance_count: integer
-        :param db_instance_count: The number of instances to reserve.
-        Default: `1`
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'ReservedDBInstancesOfferingId': reserved_db_instances_offering_id,
-        }
-        if reserved_db_instance_id is not None:
-            params['ReservedDBInstanceId'] = reserved_db_instance_id
-        if db_instance_count is not None:
-            params['DBInstanceCount'] = db_instance_count
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='PurchaseReservedDBInstancesOffering',
-            verb='POST',
-            path='/', params=params)
-
-    def reboot_db_instance(self, db_instance_identifier, force_failover=None):
-        """
-        Rebooting a DB instance restarts the database engine service.
-        A reboot also applies to the DB instance any modifications to
-        the associated DB parameter group that were pending. Rebooting
-        a DB instance results in a momentary outage of the instance,
-        during which the DB instance status is set to rebooting. If
-        the RDS instance is configured for MultiAZ, it is possible
-        that the reboot will be conducted through a failover. An
-        Amazon RDS event is created when the reboot is completed.
-
-        If your DB instance is deployed in multiple Availability
-        Zones, you can force a failover from one AZ to the other
-        during the reboot. You might force a failover to test the
-        availability of your DB instance deployment or to restore
-        operations to the original AZ after a failover occurs.
-
-        The time required to reboot is a function of the specific
-        database engine's crash recovery process. To improve the
-        reboot time, we recommend that you reduce database activities
-        as much as possible during the reboot process to reduce
-        rollback activity for in-transit transactions.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The DB instance identifier. This parameter is stored as a lowercase
-            string.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type force_failover: boolean
-        :param force_failover: When `True`, the reboot will be conducted
-            through a MultiAZ failover.
-        Constraint: You cannot specify `True` if the instance is not configured
-            for MultiAZ.
-
-        """
-        params = {'DBInstanceIdentifier': db_instance_identifier, }
-        if force_failover is not None:
-            params['ForceFailover'] = str(
-                force_failover).lower()
-        return self._make_request(
-            action='RebootDBInstance',
-            verb='POST',
-            path='/', params=params)
-
-    def remove_source_identifier_from_subscription(self, subscription_name,
-                                                   source_identifier):
-        """
-        Removes a source identifier from an existing RDS event
-        notification subscription.
-
-        :type subscription_name: string
-        :param subscription_name: The name of the RDS event notification
-            subscription you want to remove a source identifier from.
-
-        :type source_identifier: string
-        :param source_identifier: The source identifier to be removed from the
-            subscription, such as the **DB instance identifier** for a DB
-            instance or the name of a security group.
-
-        """
-        params = {
-            'SubscriptionName': subscription_name,
-            'SourceIdentifier': source_identifier,
-        }
-        return self._make_request(
-            action='RemoveSourceIdentifierFromSubscription',
-            verb='POST',
-            path='/', params=params)
-
-    def remove_tags_from_resource(self, resource_name, tag_keys):
-        """
-        Removes metadata tags from an Amazon RDS resource.
-
-        For an overview on tagging an Amazon RDS resource, see
-        `Tagging Amazon RDS Resources`_.
-
-        :type resource_name: string
-        :param resource_name: The Amazon RDS resource the tags will be removed
-            from. This value is an Amazon Resource Name (ARN). For information
-            about creating an ARN, see ` Constructing an RDS Amazon Resource
-            Name (ARN)`_.
-
-        :type tag_keys: list
-        :param tag_keys: The tag key (name) of the tag to be removed.
-
-        """
-        params = {'ResourceName': resource_name, }
-        self.build_list_params(params,
-                               tag_keys,
-                               'TagKeys.member')
-        return self._make_request(
-            action='RemoveTagsFromResource',
-            verb='POST',
-            path='/', params=params)
-
-    def reset_db_parameter_group(self, db_parameter_group_name,
-                                 reset_all_parameters=None, parameters=None):
-        """
-        Modifies the parameters of a DB parameter group to the
-        engine/system default value. To reset specific parameters
-        submit a list of the following: `ParameterName` and
-        `ApplyMethod`. To reset the entire DB parameter group, specify
-        the `DBParameterGroup` name and `ResetAllParameters`
-        parameters. When resetting the entire group, dynamic
-        parameters are updated immediately and static parameters are
-        set to `pending-reboot` to take effect on the next DB instance
-        restart or `RebootDBInstance` request.
-
-        :type db_parameter_group_name: string
-        :param db_parameter_group_name:
-        The name of the DB parameter group.
-
-        Constraints:
-
-
-        + Must be 1 to 255 alphanumeric characters
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type reset_all_parameters: boolean
-        :param reset_all_parameters: Specifies whether ( `True`) or not (
-            `False`) to reset all parameters in the DB parameter group to
-            default values.
-        Default: `True`
-
-        :type parameters: list
-        :param parameters: An array of parameter names, values, and the apply
-            method for the parameter update. At least one parameter name,
-            value, and apply method must be supplied; subsequent arguments are
-            optional. A maximum of 20 parameters may be modified in a single
-            request.
-        **MySQL**
-
-        Valid Values (for Apply method): `immediate` | `pending-reboot`
-
-        You can use the immediate value with dynamic parameters only. You can
-            use the `pending-reboot` value for both dynamic and static
-            parameters, and changes are applied when DB instance reboots.
-
-        **Oracle**
-
-        Valid Values (for Apply method): `pending-reboot`
-
-        """
-        params = {'DBParameterGroupName': db_parameter_group_name, }
-        if reset_all_parameters is not None:
-            params['ResetAllParameters'] = str(
-                reset_all_parameters).lower()
-        if parameters is not None:
-            self.build_complex_list_params(
-                params, parameters,
-                'Parameters.member',
-                ('ParameterName', 'ParameterValue', 'Description', 'Source', 'ApplyType', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion', 'ApplyMethod'))
-        return self._make_request(
-            action='ResetDBParameterGroup',
-            verb='POST',
-            path='/', params=params)
-
-    def restore_db_instance_from_db_snapshot(self, db_instance_identifier,
-                                             db_snapshot_identifier,
-                                             db_instance_class=None,
-                                             port=None,
-                                             availability_zone=None,
-                                             db_subnet_group_name=None,
-                                             multi_az=None,
-                                             publicly_accessible=None,
-                                             auto_minor_version_upgrade=None,
-                                             license_model=None,
-                                             db_name=None, engine=None,
-                                             iops=None,
-                                             option_group_name=None,
-                                             tags=None):
-        """
-        Creates a new DB instance from a DB snapshot. The target
-        database is created from the source database restore point
-        with the same configuration as the original source database,
-        except that the new RDS instance is created with the default
-        security group.
-
-        :type db_instance_identifier: string
-        :param db_instance_identifier:
-        The identifier for the DB snapshot to restore from.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type db_snapshot_identifier: string
-        :param db_snapshot_identifier: Name of the DB instance to create from
-            the DB snapshot. This parameter isn't case sensitive.
-        Constraints:
-
-
-        + Must contain from 1 to 255 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-
-        Example: `my-snapshot-id`
-
-        :type db_instance_class: string
-        :param db_instance_class: The compute and memory capacity of the Amazon
-            RDS DB instance.
-        Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large |
-            db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge`
-
-        :type port: integer
-        :param port: The port number on which the database accepts connections.
-        Default: The same port as the original DB instance
-
-        Constraints: Value must be `1150-65535`
-
-        :type availability_zone: string
-        :param availability_zone: The EC2 Availability Zone that the database
-            instance will be created in.
-        Default: A random, system-chosen Availability Zone.
-
-        Constraint: You cannot specify the AvailabilityZone parameter if the
-            MultiAZ parameter is set to `True`.
-
-        Example: `us-east-1a`
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: The DB subnet group name to use for the
-            new instance.
-
-        :type multi_az: boolean
-        :param multi_az: Specifies if the DB instance is a Multi-AZ deployment.
-        Constraint: You cannot specify the AvailabilityZone parameter if the
-            MultiAZ parameter is set to `True`.
-
-        :type publicly_accessible: boolean
-        :param publicly_accessible: Specifies the accessibility options for the
-            DB instance. A value of true specifies an Internet-facing instance
-            with a publicly resolvable DNS name, which resolves to a public IP
-            address. A value of false specifies an internal instance with a DNS
-            name that resolves to a private IP address.
-        Default: The default behavior varies depending on whether a VPC has
-            been requested or not. The following list shows the default
-            behavior in each case.
-
-
-        + **Default VPC:**true
-        + **VPC:**false
-
-
-        If no DB subnet group has been specified as part of the request and the
-            PubliclyAccessible value has not been set, the DB instance will be
-            publicly accessible. If a specific DB subnet group has been
-            specified as part of the request and the PubliclyAccessible value
-            has not been set, the DB instance will be private.
-
-        :type auto_minor_version_upgrade: boolean
-        :param auto_minor_version_upgrade: Indicates that minor version
-            upgrades will be applied automatically to the DB instance during
-            the maintenance window.
-
-        :type license_model: string
-        :param license_model: License model information for the restored DB
-            instance.
-        Default: Same as source.
-
-        Valid values: `license-included` | `bring-your-own-license` | `general-
-            public-license`
-
-        :type db_name: string
-        :param db_name:
-        The database name for the restored DB instance.
-
-
-        This parameter doesn't apply to the MySQL engine.
-
-        :type engine: string
-        :param engine: The database engine to use for the new instance.
-        Default: The same as source
-
-        Constraint: Must be compatible with the engine of the source
-
-        Example: `oracle-ee`
-
-        :type iops: integer
-        :param iops: Specifies the amount of provisioned IOPS for the DB
-            instance, expressed in I/O operations per second. If this parameter
-            is not specified, the IOPS value will be taken from the backup. If
-            this parameter is set to 0, the new instance will be converted to a
-            non-PIOPS instance, which will take additional time, though your DB
-            instance will be available for connections before the conversion
-            starts.
-        Constraints: Must be an integer greater than 1000.
-
-        :type option_group_name: string
-        :param option_group_name: The name of the option group to be used for
-            the restored DB instance.
-        Permanent options, such as the TDE option for Oracle Advanced Security
-            TDE, cannot be removed from an option group, and that option group
-            cannot be removed from a DB instance once it is associated with a
-            DB instance
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'DBInstanceIdentifier': db_instance_identifier,
-            'DBSnapshotIdentifier': db_snapshot_identifier,
-        }
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if port is not None:
-            params['Port'] = port
-        if availability_zone is not None:
-            params['AvailabilityZone'] = availability_zone
-        if db_subnet_group_name is not None:
-            params['DBSubnetGroupName'] = db_subnet_group_name
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if publicly_accessible is not None:
-            params['PubliclyAccessible'] = str(
-                publicly_accessible).lower()
-        if auto_minor_version_upgrade is not None:
-            params['AutoMinorVersionUpgrade'] = str(
-                auto_minor_version_upgrade).lower()
-        if license_model is not None:
-            params['LicenseModel'] = license_model
-        if db_name is not None:
-            params['DBName'] = db_name
-        if engine is not None:
-            params['Engine'] = engine
-        if iops is not None:
-            params['Iops'] = iops
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='RestoreDBInstanceFromDBSnapshot',
-            verb='POST',
-            path='/', params=params)
-
-    def restore_db_instance_to_point_in_time(self,
-                                             source_db_instance_identifier,
-                                             target_db_instance_identifier,
-                                             restore_time=None,
-                                             use_latest_restorable_time=None,
-                                             db_instance_class=None,
-                                             port=None,
-                                             availability_zone=None,
-                                             db_subnet_group_name=None,
-                                             multi_az=None,
-                                             publicly_accessible=None,
-                                             auto_minor_version_upgrade=None,
-                                             license_model=None,
-                                             db_name=None, engine=None,
-                                             iops=None,
-                                             option_group_name=None,
-                                             tags=None):
-        """
-        Restores a DB instance to an arbitrary point-in-time. Users
-        can restore to any point in time before the
-        latestRestorableTime for up to backupRetentionPeriod days. The
-        target database is created from the source database with the
-        same configuration as the original database except that the DB
-        instance is created with the default DB security group.
-
-        :type source_db_instance_identifier: string
-        :param source_db_instance_identifier:
-        The identifier of the source DB instance from which to restore.
-
-        Constraints:
-
-
-        + Must be the identifier of an existing database instance
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type target_db_instance_identifier: string
-        :param target_db_instance_identifier:
-        The name of the new database instance to be created.
-
-        Constraints:
-
-
-        + Must contain from 1 to 63 alphanumeric characters or hyphens
-        + First character must be a letter
-        + Cannot end with a hyphen or contain two consecutive hyphens
-
-        :type restore_time: timestamp
-        :param restore_time: The date and time to restore from.
-        Valid Values: Value must be a UTC time
-
-        Constraints:
-
-
-        + Must be before the latest restorable time for the DB instance
-        + Cannot be specified if UseLatestRestorableTime parameter is true
-
-
-        Example: `2009-09-07T23:45:00Z`
-
-        :type use_latest_restorable_time: boolean
-        :param use_latest_restorable_time: Specifies whether ( `True`) or not (
-            `False`) the DB instance is restored from the latest backup time.
-        Default: `False`
-
-        Constraints: Cannot be specified if RestoreTime parameter is provided.
-
-        :type db_instance_class: string
-        :param db_instance_class: The compute and memory capacity of the Amazon
-            RDS DB instance.
-        Valid Values: `db.t1.micro | db.m1.small | db.m1.medium | db.m1.large |
-            db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge`
-
-        Default: The same DBInstanceClass as the original DB instance.
-
-        :type port: integer
-        :param port: The port number on which the database accepts connections.
-        Constraints: Value must be `1150-65535`
-
-        Default: The same port as the original DB instance.
-
-        :type availability_zone: string
-        :param availability_zone: The EC2 Availability Zone that the database
-            instance will be created in.
-        Default: A random, system-chosen Availability Zone.
-
-        Constraint: You cannot specify the AvailabilityZone parameter if the
-            MultiAZ parameter is set to true.
-
-        Example: `us-east-1a`
-
-        :type db_subnet_group_name: string
-        :param db_subnet_group_name: The DB subnet group name to use for the
-            new instance.
-
-        :type multi_az: boolean
-        :param multi_az: Specifies if the DB instance is a Multi-AZ deployment.
-        Constraint: You cannot specify the AvailabilityZone parameter if the
-            MultiAZ parameter is set to `True`.
-
-        :type publicly_accessible: boolean
-        :param publicly_accessible: Specifies the accessibility options for the
-            DB instance. A value of true specifies an Internet-facing instance
-            with a publicly resolvable DNS name, which resolves to a public IP
-            address. A value of false specifies an internal instance with a DNS
-            name that resolves to a private IP address.
-        Default: The default behavior varies depending on whether a VPC has
-            been requested or not. The following list shows the default
-            behavior in each case.
-
-
-        + **Default VPC:**true
-        + **VPC:**false
-
-
-        If no DB subnet group has been specified as part of the request and the
-            PubliclyAccessible value has not been set, the DB instance will be
-            publicly accessible. If a specific DB subnet group has been
-            specified as part of the request and the PubliclyAccessible value
-            has not been set, the DB instance will be private.
-
-        :type auto_minor_version_upgrade: boolean
-        :param auto_minor_version_upgrade: Indicates that minor version
-            upgrades will be applied automatically to the DB instance during
-            the maintenance window.
-
-        :type license_model: string
-        :param license_model: License model information for the restored DB
-            instance.
-        Default: Same as source.
-
-        Valid values: `license-included` | `bring-your-own-license` | `general-
-            public-license`
-
-        :type db_name: string
-        :param db_name:
-        The database name for the restored DB instance.
-
-
-        This parameter is not used for the MySQL engine.
-
-        :type engine: string
-        :param engine: The database engine to use for the new instance.
-        Default: The same as source
-
-        Constraint: Must be compatible with the engine of the source
-
-        Example: `oracle-ee`
-
-        :type iops: integer
-        :param iops: The amount of Provisioned IOPS (input/output operations
-            per second) to be initially allocated for the DB instance.
-        Constraints: Must be an integer greater than 1000.
-
-        :type option_group_name: string
-        :param option_group_name: The name of the option group to be used for
-            the restored DB instance.
-        Permanent options, such as the TDE option for Oracle Advanced Security
-            TDE, cannot be removed from an option group, and that option group
-            cannot be removed from a DB instance once it is associated with a
-            DB instance
-
-        :type tags: list
-        :param tags: A list of tags. Tags must be passed as tuples in the form
-            [('key1', 'valueForKey1'), ('key2', 'valueForKey2')]
-
-        """
-        params = {
-            'SourceDBInstanceIdentifier': source_db_instance_identifier,
-            'TargetDBInstanceIdentifier': target_db_instance_identifier,
-        }
-        if restore_time is not None:
-            params['RestoreTime'] = restore_time
-        if use_latest_restorable_time is not None:
-            params['UseLatestRestorableTime'] = str(
-                use_latest_restorable_time).lower()
-        if db_instance_class is not None:
-            params['DBInstanceClass'] = db_instance_class
-        if port is not None:
-            params['Port'] = port
-        if availability_zone is not None:
-            params['AvailabilityZone'] = availability_zone
-        if db_subnet_group_name is not None:
-            params['DBSubnetGroupName'] = db_subnet_group_name
-        if multi_az is not None:
-            params['MultiAZ'] = str(
-                multi_az).lower()
-        if publicly_accessible is not None:
-            params['PubliclyAccessible'] = str(
-                publicly_accessible).lower()
-        if auto_minor_version_upgrade is not None:
-            params['AutoMinorVersionUpgrade'] = str(
-                auto_minor_version_upgrade).lower()
-        if license_model is not None:
-            params['LicenseModel'] = license_model
-        if db_name is not None:
-            params['DBName'] = db_name
-        if engine is not None:
-            params['Engine'] = engine
-        if iops is not None:
-            params['Iops'] = iops
-        if option_group_name is not None:
-            params['OptionGroupName'] = option_group_name
-        if tags is not None:
-            self.build_complex_list_params(
-                params, tags,
-                'Tags.member',
-                ('Key', 'Value'))
-        return self._make_request(
-            action='RestoreDBInstanceToPointInTime',
-            verb='POST',
-            path='/', params=params)
-
-    def revoke_db_security_group_ingress(self, db_security_group_name,
-                                         cidrip=None,
-                                         ec2_security_group_name=None,
-                                         ec2_security_group_id=None,
-                                         ec2_security_group_owner_id=None):
-        """
-        Revokes ingress from a DBSecurityGroup for previously
-        authorized IP ranges or EC2 or VPC Security Groups. Required
-        parameters for this API are one of CIDRIP, EC2SecurityGroupId
-        for VPC, or (EC2SecurityGroupOwnerId and either
-        EC2SecurityGroupName or EC2SecurityGroupId).
-
-        :type db_security_group_name: string
-        :param db_security_group_name: The name of the DB security group to
-            revoke ingress from.
-
-        :type cidrip: string
-        :param cidrip: The IP range to revoke access from. Must be a valid CIDR
-            range. If `CIDRIP` is specified, `EC2SecurityGroupName`,
-            `EC2SecurityGroupId` and `EC2SecurityGroupOwnerId` cannot be
-            provided.
-
-        :type ec2_security_group_name: string
-        :param ec2_security_group_name: The name of the EC2 security group to
-            revoke access from. For VPC DB security groups,
-            `EC2SecurityGroupId` must be provided. Otherwise,
-            EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or
-            `EC2SecurityGroupId` must be provided.
-
-        :type ec2_security_group_id: string
-        :param ec2_security_group_id: The id of the EC2 security group to
-            revoke access from. For VPC DB security groups,
-            `EC2SecurityGroupId` must be provided. Otherwise,
-            EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or
-            `EC2SecurityGroupId` must be provided.
-
-        :type ec2_security_group_owner_id: string
-        :param ec2_security_group_owner_id: The AWS Account Number of the owner
-            of the EC2 security group specified in the `EC2SecurityGroupName`
-            parameter. The AWS Access Key ID is not an acceptable value. For
-            VPC DB security groups, `EC2SecurityGroupId` must be provided.
-            Otherwise, EC2SecurityGroupOwnerId and either
-            `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided.
-
-        """
-        params = {'DBSecurityGroupName': db_security_group_name, }
-        if cidrip is not None:
-            params['CIDRIP'] = cidrip
-        if ec2_security_group_name is not None:
-            params['EC2SecurityGroupName'] = ec2_security_group_name
-        if ec2_security_group_id is not None:
-            params['EC2SecurityGroupId'] = ec2_security_group_id
-        if ec2_security_group_owner_id is not None:
-            params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id
-        return self._make_request(
-            action='RevokeDBSecurityGroupIngress',
-            verb='POST',
-            path='/', params=params)
-
-    def _make_request(self, action, verb, path, params):
-        params['ContentType'] = 'JSON'
-        response = self.make_request(action=action, verb='POST',
-                                     path='/', params=params)
-        body = response.read()
-        boto.log.debug(body)
-        if response.status == 200:
-            return json.loads(body)
-        else:
-            json_body = json.loads(body)
-            fault_name = json_body.get('Error', {}).get('Code', None)
-            exception_class = self._faults.get(fault_name, self.ResponseError)
-            raise exception_class(response.status, response.reason,
-                                  body=json_body)