Index: third_party/gsutil/third_party/boto/boto/rds2/layer1.py |
diff --git a/third_party/gsutil/third_party/boto/boto/rds2/layer1.py b/third_party/gsutil/third_party/boto/boto/rds2/layer1.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5615f1107db93270538336b2454ae73436d31f4f |
--- /dev/null |
+++ b/third_party/gsutil/third_party/boto/boto/rds2/layer1.py |
@@ -0,0 +1,3770 @@ |
+# 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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 into tuples. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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. |
+ |
+ """ |
+ 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) |