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