Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Unified Diff: third_party/gsutil/third_party/boto/boto/rds/__init__.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/boto/boto/rds/__init__.py
diff --git a/third_party/gsutil/third_party/boto/boto/rds/__init__.py b/third_party/gsutil/third_party/boto/boto/rds/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..8e8afa81d40c8aee34aba96387bff63f5c4ae462
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/boto/rds/__init__.py
@@ -0,0 +1,1623 @@
+# Copyright (c) 2009-2012 Mitch Garnaat http://garnaat.org/
+#
+# 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 urllib
+from boto.connection import AWSQueryConnection
+from boto.rds.dbinstance import DBInstance
+from boto.rds.dbsecuritygroup import DBSecurityGroup
+from boto.rds.optiongroup import OptionGroup, OptionGroupOption
+from boto.rds.parametergroup import ParameterGroup
+from boto.rds.dbsnapshot import DBSnapshot
+from boto.rds.event import Event
+from boto.rds.regioninfo import RDSRegionInfo
+from boto.rds.dbsubnetgroup import DBSubnetGroup
+from boto.rds.vpcsecuritygroupmembership import VPCSecurityGroupMembership
+from boto.regioninfo import get_regions
+from boto.rds.logfile import LogFile, LogFileObject
+
+
+def regions():
+ """
+ Get all available regions for the RDS service.
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.regioninfo.RDSRegionInfo`
+ """
+ return get_regions(
+ 'rds',
+ region_cls=RDSRegionInfo,
+ connection_cls=RDSConnection
+ )
+
+
+def connect_to_region(region_name, **kw_params):
+ """
+ Given a valid region name, return a
+ :class:`boto.rds.RDSConnection`.
+ Any additional parameters after the region_name are passed on to
+ the connect method of the region object.
+
+ :type: str
+ :param region_name: The name of the region to connect to.
+
+ :rtype: :class:`boto.rds.RDSConnection` or ``None``
+ :return: A connection to the given region, or None if an invalid region
+ name is given
+ """
+ for region in regions():
+ if region.name == region_name:
+ return region.connect(**kw_params)
+ return None
+
+#boto.set_stream_logger('rds')
+
+
+class RDSConnection(AWSQueryConnection):
+
+ DefaultRegionName = 'us-east-1'
+ DefaultRegionEndpoint = 'rds.amazonaws.com'
+ APIVersion = '2013-05-15'
+
+ def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
+ is_secure=True, port=None, proxy=None, proxy_port=None,
+ proxy_user=None, proxy_pass=None, debug=0,
+ https_connection_factory=None, region=None, path='/',
+ security_token=None, validate_certs=True,
+ profile_name=None):
+ if not region:
+ region = RDSRegionInfo(self, self.DefaultRegionName,
+ self.DefaultRegionEndpoint)
+ self.region = region
+ super(RDSConnection, self).__init__(aws_access_key_id,
+ aws_secret_access_key,
+ is_secure, port, proxy, proxy_port,
+ proxy_user, proxy_pass,
+ self.region.endpoint, debug,
+ https_connection_factory, path,
+ security_token,
+ validate_certs=validate_certs,
+ profile_name=profile_name)
+
+ def _required_auth_capability(self):
+ return ['hmac-v4']
+
+ # DB Instance methods
+
+ def get_all_dbinstances(self, instance_id=None, max_records=None,
+ marker=None):
+ """
+ Retrieve all the DBInstances in your account.
+
+ :type instance_id: str
+ :param instance_id: DB Instance identifier. If supplied, only
+ information this instance will be returned.
+ Otherwise, info about all DB Instances will
+ be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.dbinstance.DBInstance`
+ """
+ params = {}
+ if instance_id:
+ params['DBInstanceIdentifier'] = instance_id
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeDBInstances', params,
+ [('DBInstance', DBInstance)])
+
+ def create_dbinstance(self,
+ id,
+ allocated_storage,
+ instance_class,
+ master_username,
+ master_password,
+ port=3306,
+ engine='MySQL5.1',
+ db_name=None,
+ param_group=None,
+ security_groups=None,
+ availability_zone=None,
+ preferred_maintenance_window=None,
+ backup_retention_period=None,
+ preferred_backup_window=None,
+ multi_az=False,
+ engine_version=None,
+ auto_minor_version_upgrade=True,
+ character_set_name = None,
+ db_subnet_group_name = None,
+ license_model = None,
+ option_group_name = None,
+ iops=None,
+ vpc_security_groups=None,
+ ):
+ # API version: 2013-09-09
+ # Parameter notes:
+ # =================
+ # id should be db_instance_identifier according to API docs but has been left
+ # id for backwards compatibility
+ #
+ # security_groups should be db_security_groups according to API docs but has been left
+ # security_groups for backwards compatibility
+ #
+ # master_password should be master_user_password according to API docs but has been left
+ # master_password for backwards compatibility
+ #
+ # instance_class should be db_instance_class according to API docs but has been left
+ # instance_class for backwards compatibility
+ """
+ Create a new DBInstance.
+
+ :type id: str
+ :param id: Unique identifier for the new instance.
+ Must contain 1-63 alphanumeric characters.
+ First character must be a letter.
+ May not end with a hyphen or contain two consecutive hyphens
+
+ :type allocated_storage: int
+ :param allocated_storage: Initially allocated storage size, in GBs.
+ Valid values are depending on the engine value.
+
+ * MySQL = 5--3072
+ * oracle-se1 = 10--3072
+ * oracle-se = 10--3072
+ * oracle-ee = 10--3072
+ * sqlserver-ee = 200--1024
+ * sqlserver-se = 200--1024
+ * sqlserver-ex = 30--1024
+ * sqlserver-web = 30--1024
+ * postgres = 5--3072
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of
+ the DBInstance. Valid values are:
+
+ * 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: str
+ :param engine: Name of database engine. Defaults to MySQL but can be;
+
+ * MySQL
+ * oracle-se1
+ * oracle-se
+ * oracle-ee
+ * sqlserver-ee
+ * sqlserver-se
+ * sqlserver-ex
+ * sqlserver-web
+ * postgres
+
+ :type master_username: str
+ :param master_username: Name of master user for the DBInstance.
+
+ * MySQL must be;
+ - 1--16 alphanumeric characters
+ - first character must be a letter
+ - cannot be a reserved MySQL word
+
+ * Oracle must be:
+ - 1--30 alphanumeric characters
+ - first character must be a letter
+ - cannot be a reserved Oracle word
+
+ * SQL Server must be:
+ - 1--128 alphanumeric characters
+ - first character must be a letter
+ - cannot be a reserver SQL Server word
+
+ :type master_password: str
+ :param master_password: Password of master user for the DBInstance.
+
+ * MySQL must be 8--41 alphanumeric characters
+
+ * Oracle must be 8--30 alphanumeric characters
+
+ * SQL Server must be 8--128 alphanumeric characters.
+
+ :type port: int
+ :param port: Port number on which database accepts connections.
+ Valid values [1115-65535].
+
+ * MySQL defaults to 3306
+
+ * Oracle defaults to 1521
+
+ * SQL Server defaults to 1433 and _cannot_ be 1434, 3389,
+ 47001, 49152, and 49152 through 49156.
+
+ * PostgreSQL defaults to 5432
+
+ :type db_name: str
+ :param db_name: * MySQL:
+ Name of a database to create when the DBInstance
+ is created. Default is to create no databases.
+
+ Must contain 1--64 alphanumeric characters and cannot
+ be a reserved MySQL word.
+
+ * Oracle:
+ The Oracle System ID (SID) of the created DB instances.
+ Default is ORCL. Cannot be longer than 8 characters.
+
+ * SQL Server:
+ Not applicable and must be None.
+
+ * PostgreSQL:
+ Name of a database to create when the DBInstance
+ is created. Default is to create no databases.
+
+ Must contain 1--63 alphanumeric characters. Must
+ begin with a letter or an underscore. Subsequent
+ characters can be letters, underscores, or digits (0-9)
+ and cannot be a reserved PostgreSQL word.
+
+ :type param_group: str or ParameterGroup object
+ :param param_group: Name of DBParameterGroup or ParameterGroup instance
+ to associate with this DBInstance. If no groups are
+ specified no parameter groups will be used.
+
+ :type security_groups: list of str or list of DBSecurityGroup objects
+ :param security_groups: List of names of DBSecurityGroup to
+ authorize on this DBInstance.
+
+ :type availability_zone: str
+ :param availability_zone: Name of the availability zone to place
+ DBInstance into.
+
+ :type preferred_maintenance_window: str
+ :param preferred_maintenance_window: The weekly time range (in UTC)
+ during which maintenance can occur.
+ Default is Sun:05:00-Sun:09:00
+
+ :type backup_retention_period: int
+ :param backup_retention_period: The number of days for which automated
+ backups are retained. Setting this to
+ zero disables automated backups.
+
+ :type preferred_backup_window: str
+ :param preferred_backup_window: The daily time range during which
+ automated backups are created (if
+ enabled). Must be in h24:mi-hh24:mi
+ format (UTC).
+
+ :type multi_az: bool
+ :param multi_az: If True, specifies the DB Instance will be
+ deployed in multiple availability zones.
+
+ For Microsoft SQL Server, must be set to false. You cannot set
+ the AvailabilityZone parameter if the MultiAZ parameter is
+ set to true.
+
+ :type engine_version: str
+ :param engine_version: The version number of the database engine to use.
+
+ * MySQL format example: 5.1.42
+
+ * Oracle format example: 11.2.0.2.v2
+
+ * SQL Server format example: 10.50.2789.0.v1
+
+ * PostgreSQL format example: 9.3
+
+ :type auto_minor_version_upgrade: bool
+ :param auto_minor_version_upgrade: Indicates that minor engine
+ upgrades will be applied
+ automatically to the Read Replica
+ during the maintenance window.
+ Default is True.
+ :type character_set_name: str
+ :param character_set_name: For supported engines, indicates that the DB Instance
+ should be associated with the specified CharacterSet.
+
+ :type db_subnet_group_name: str
+ :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 license_model: str
+ :param license_model: License model information for this DB Instance.
+
+ Valid values are;
+ - license-included
+ - bring-your-own-license
+ - general-public-license
+
+ All license types are not supported on all engines.
+
+ :type option_group_name: str
+ :param option_group_name: Indicates that the DB Instance should be associated
+ with the specified option group.
+
+ :type iops: int
+ :param iops: The amount of IOPS (input/output operations per second) to Provisioned
+ for the DB Instance. Can be modified at a later date.
+
+ Must scale linearly. For every 1000 IOPS provision, you must allocated
+ 100 GB of storage space. This scales up to 1 TB / 10 000 IOPS for MySQL
+ and Oracle. MSSQL is limited to 700 GB / 7 000 IOPS.
+
+ If you specify a value, it must be at least 1000 IOPS and you must
+ allocate 100 GB of storage.
+
+ :type vpc_security_groups: list of str or a VPCSecurityGroupMembership object
+ :param vpc_security_groups: List of VPC security group ids or a list of
+ VPCSecurityGroupMembership objects this DBInstance should be a member of
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The new db instance.
+ """
+ # boto argument alignment with AWS API parameter names:
+ # =====================================================
+ # arg => AWS parameter
+ # allocated_storage => AllocatedStorage
+ # auto_minor_version_update => AutoMinorVersionUpgrade
+ # availability_zone => AvailabilityZone
+ # backup_retention_period => BackupRetentionPeriod
+ # character_set_name => CharacterSetName
+ # db_instance_class => DBInstanceClass
+ # db_instance_identifier => DBInstanceIdentifier
+ # db_name => DBName
+ # db_parameter_group_name => DBParameterGroupName
+ # db_security_groups => DBSecurityGroups.member.N
+ # db_subnet_group_name => DBSubnetGroupName
+ # engine => Engine
+ # engine_version => EngineVersion
+ # license_model => LicenseModel
+ # master_username => MasterUsername
+ # master_user_password => MasterUserPassword
+ # multi_az => MultiAZ
+ # option_group_name => OptionGroupName
+ # port => Port
+ # preferred_backup_window => PreferredBackupWindow
+ # preferred_maintenance_window => PreferredMaintenanceWindow
+ # vpc_security_groups => VpcSecurityGroupIds.member.N
+ params = {
+ 'AllocatedStorage': allocated_storage,
+ 'AutoMinorVersionUpgrade': str(auto_minor_version_upgrade).lower() if auto_minor_version_upgrade else None,
+ 'AvailabilityZone': availability_zone,
+ 'BackupRetentionPeriod': backup_retention_period,
+ 'CharacterSetName': character_set_name,
+ 'DBInstanceClass': instance_class,
+ 'DBInstanceIdentifier': id,
+ 'DBName': db_name,
+ 'DBParameterGroupName': (param_group.name
+ if isinstance(param_group, ParameterGroup)
+ else param_group),
+ 'DBSubnetGroupName': db_subnet_group_name,
+ 'Engine': engine,
+ 'EngineVersion': engine_version,
+ 'Iops': iops,
+ 'LicenseModel': license_model,
+ 'MasterUsername': master_username,
+ 'MasterUserPassword': master_password,
+ 'MultiAZ': str(multi_az).lower() if multi_az else None,
+ 'OptionGroupName': option_group_name,
+ 'Port': port,
+ 'PreferredBackupWindow': preferred_backup_window,
+ 'PreferredMaintenanceWindow': preferred_maintenance_window,
+ }
+ if security_groups:
+ l = []
+ for group in security_groups:
+ if isinstance(group, DBSecurityGroup):
+ l.append(group.name)
+ else:
+ l.append(group)
+ self.build_list_params(params, l, 'DBSecurityGroups.member')
+
+ if vpc_security_groups:
+ l = []
+ for vpc_grp in vpc_security_groups:
+ if isinstance(vpc_grp, VPCSecurityGroupMembership):
+ l.append(vpc_grp.vpc_group)
+ else:
+ l.append(vpc_grp)
+ self.build_list_params(params, l, 'VpcSecurityGroupIds.member')
+
+ # Remove any params set to None
+ for k, v in params.items():
+ if v is None: del(params[k])
+
+ return self.get_object('CreateDBInstance', params, DBInstance)
+
+ def create_dbinstance_read_replica(self, id, source_id,
+ instance_class=None,
+ port=3306,
+ availability_zone=None,
+ auto_minor_version_upgrade=None):
+ """
+ Create a new DBInstance Read Replica.
+
+ :type id: str
+ :param id: Unique identifier for the new instance.
+ Must contain 1-63 alphanumeric characters.
+ First character must be a letter.
+ May not end with a hyphen or contain two consecutive hyphens
+
+ :type source_id: str
+ :param source_id: Unique identifier for the DB Instance for which this
+ DB Instance will act as a Read Replica.
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of the
+ DBInstance. Default is to inherit from
+ the source DB Instance.
+
+ Valid values are:
+
+ * db.m1.small
+ * db.m1.large
+ * db.m1.xlarge
+ * db.m2.xlarge
+ * db.m2.2xlarge
+ * db.m2.4xlarge
+
+ :type port: int
+ :param port: Port number on which database accepts connections.
+ Default is to inherit from source DB Instance.
+ Valid values [1115-65535]. Defaults to 3306.
+
+ :type availability_zone: str
+ :param availability_zone: Name of the availability zone to place
+ DBInstance into.
+
+ :type auto_minor_version_upgrade: bool
+ :param auto_minor_version_upgrade: Indicates that minor engine
+ upgrades will be applied
+ automatically to the Read Replica
+ during the maintenance window.
+ Default is to inherit this value
+ from the source DB Instance.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The new db instance.
+ """
+ params = {'DBInstanceIdentifier': id,
+ 'SourceDBInstanceIdentifier': source_id}
+ if instance_class:
+ params['DBInstanceClass'] = instance_class
+ if port:
+ params['Port'] = port
+ if availability_zone:
+ params['AvailabilityZone'] = availability_zone
+ if auto_minor_version_upgrade is not None:
+ if auto_minor_version_upgrade is True:
+ params['AutoMinorVersionUpgrade'] = 'true'
+ else:
+ params['AutoMinorVersionUpgrade'] = 'false'
+
+ return self.get_object('CreateDBInstanceReadReplica',
+ params, DBInstance)
+
+
+ def promote_read_replica(self, id,
+ backup_retention_period=None,
+ preferred_backup_window=None):
+ """
+ Promote a Read Replica to a standalone DB Instance.
+
+ :type id: str
+ :param id: Unique identifier for the new instance.
+ Must contain 1-63 alphanumeric characters.
+ First character must be a letter.
+ May not end with a hyphen or contain two consecutive hyphens
+
+ :type backup_retention_period: int
+ :param backup_retention_period: The number of days for which automated
+ backups are retained. Setting this to
+ zero disables automated backups.
+
+ :type preferred_backup_window: str
+ :param preferred_backup_window: The daily time range during which
+ automated backups are created (if
+ enabled). Must be in h24:mi-hh24:mi
+ format (UTC).
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The new db instance.
+ """
+ params = {'DBInstanceIdentifier': id}
+ if backup_retention_period is not None:
+ params['BackupRetentionPeriod'] = backup_retention_period
+ if preferred_backup_window:
+ params['PreferredBackupWindow'] = preferred_backup_window
+
+ return self.get_object('PromoteReadReplica', params, DBInstance)
+
+
+ def modify_dbinstance(self, id, param_group=None, security_groups=None,
+ preferred_maintenance_window=None,
+ master_password=None, allocated_storage=None,
+ instance_class=None,
+ backup_retention_period=None,
+ preferred_backup_window=None,
+ multi_az=False,
+ apply_immediately=False,
+ iops=None,
+ vpc_security_groups=None,
+ new_instance_id=None,
+ ):
+ """
+ Modify an existing DBInstance.
+
+ :type id: str
+ :param id: Unique identifier for the new instance.
+
+ :type param_group: str or ParameterGroup object
+ :param param_group: Name of DBParameterGroup or ParameterGroup instance
+ to associate with this DBInstance. If no groups are
+ specified no parameter groups will be used.
+
+ :type security_groups: list of str or list of DBSecurityGroup objects
+ :param security_groups: List of names of DBSecurityGroup to authorize on
+ this DBInstance.
+
+ :type preferred_maintenance_window: str
+ :param preferred_maintenance_window: The weekly time range (in UTC)
+ during which maintenance can
+ occur.
+ Default is Sun:05:00-Sun:09:00
+
+ :type master_password: str
+ :param master_password: Password of master user for the DBInstance.
+ Must be 4-15 alphanumeric characters.
+
+ :type allocated_storage: int
+ :param allocated_storage: The new allocated storage size, in GBs.
+ Valid values are [5-1024]
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of the
+ DBInstance. Changes will be applied at
+ next maintenance window unless
+ apply_immediately is True.
+
+ Valid values are:
+
+ * db.m1.small
+ * db.m1.large
+ * db.m1.xlarge
+ * db.m2.xlarge
+ * db.m2.2xlarge
+ * db.m2.4xlarge
+
+ :type apply_immediately: bool
+ :param apply_immediately: If true, the modifications will be applied
+ as soon as possible rather than waiting for
+ the next preferred maintenance window.
+
+ :type backup_retention_period: int
+ :param backup_retention_period: The number of days for which automated
+ backups are retained. Setting this to
+ zero disables automated backups.
+
+ :type preferred_backup_window: str
+ :param preferred_backup_window: The daily time range during which
+ automated backups are created (if
+ enabled). Must be in h24:mi-hh24:mi
+ format (UTC).
+
+ :type multi_az: bool
+ :param multi_az: If True, specifies the DB Instance will be
+ deployed in multiple availability zones.
+
+ :type iops: int
+ :param iops: The amount of IOPS (input/output operations per second) to Provisioned
+ for the DB Instance. Can be modified at a later date.
+
+ Must scale linearly. For every 1000 IOPS provision, you must allocated
+ 100 GB of storage space. This scales up to 1 TB / 10 000 IOPS for MySQL
+ and Oracle. MSSQL is limited to 700 GB / 7 000 IOPS.
+
+ If you specify a value, it must be at least 1000 IOPS and you must
+ allocate 100 GB of storage.
+
+ :type vpc_security_groups: list of str or a VPCSecurityGroupMembership object
+ :param vpc_security_groups: List of VPC security group ids or a
+ VPCSecurityGroupMembership object this DBInstance should be a member of
+
+ :type new_instance_id: str
+ :param new_instance_id: New name to rename the DBInstance to.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The modified db instance.
+ """
+ params = {'DBInstanceIdentifier': id}
+ if param_group:
+ params['DBParameterGroupName'] = (param_group.name
+ if isinstance(param_group, ParameterGroup)
+ else param_group)
+ if security_groups:
+ l = []
+ for group in security_groups:
+ if isinstance(group, DBSecurityGroup):
+ l.append(group.name)
+ else:
+ l.append(group)
+ self.build_list_params(params, l, 'DBSecurityGroups.member')
+ if vpc_security_groups:
+ l = []
+ for vpc_grp in vpc_security_groups:
+ if isinstance(vpc_grp, VPCSecurityGroupMembership):
+ l.append(vpc_grp.vpc_group)
+ else:
+ l.append(vpc_grp)
+ self.build_list_params(params, l, 'VpcSecurityGroupIds.member')
+ if preferred_maintenance_window:
+ params['PreferredMaintenanceWindow'] = preferred_maintenance_window
+ if master_password:
+ params['MasterUserPassword'] = master_password
+ if allocated_storage:
+ params['AllocatedStorage'] = allocated_storage
+ if instance_class:
+ params['DBInstanceClass'] = instance_class
+ if backup_retention_period is not None:
+ params['BackupRetentionPeriod'] = backup_retention_period
+ if preferred_backup_window:
+ params['PreferredBackupWindow'] = preferred_backup_window
+ if multi_az:
+ params['MultiAZ'] = 'true'
+ if apply_immediately:
+ params['ApplyImmediately'] = 'true'
+ if iops:
+ params['Iops'] = iops
+ if new_instance_id:
+ params['NewDBInstanceIdentifier'] = new_instance_id
+
+ return self.get_object('ModifyDBInstance', params, DBInstance)
+
+ def delete_dbinstance(self, id, skip_final_snapshot=False,
+ final_snapshot_id=''):
+ """
+ Delete an existing DBInstance.
+
+ :type id: str
+ :param id: Unique identifier for the new instance.
+
+ :type skip_final_snapshot: bool
+ :param skip_final_snapshot: This parameter determines whether a final
+ db snapshot is created before the instance
+ is deleted. If True, no snapshot
+ is created. If False, a snapshot
+ is created before deleting the instance.
+
+ :type final_snapshot_id: str
+ :param final_snapshot_id: If a final snapshot is requested, this
+ is the identifier used for that snapshot.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The deleted db instance.
+ """
+ params = {'DBInstanceIdentifier': id}
+ if skip_final_snapshot:
+ params['SkipFinalSnapshot'] = 'true'
+ else:
+ params['SkipFinalSnapshot'] = 'false'
+ params['FinalDBSnapshotIdentifier'] = final_snapshot_id
+ return self.get_object('DeleteDBInstance', params, DBInstance)
+
+ def reboot_dbinstance(self, id):
+ """
+ Reboot DBInstance.
+
+ :type id: str
+ :param id: Unique identifier of the instance.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The rebooting db instance.
+ """
+ params = {'DBInstanceIdentifier': id}
+ return self.get_object('RebootDBInstance', params, DBInstance)
+
+ # DBParameterGroup methods
+
+ def get_all_dbparameter_groups(self, groupname=None, max_records=None,
+ marker=None):
+ """
+ Get all parameter groups associated with your account in a region.
+
+ :type groupname: str
+ :param groupname: The name of the DBParameter group to retrieve.
+ If not provided, all DBParameter groups will be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of :class:`boto.ec2.parametergroup.ParameterGroup`
+ """
+ params = {}
+ if groupname:
+ params['DBParameterGroupName'] = groupname
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeDBParameterGroups', params,
+ [('DBParameterGroup', ParameterGroup)])
+
+ def get_all_dbparameters(self, groupname, source=None,
+ max_records=None, marker=None):
+ """
+ Get all parameters associated with a ParameterGroup
+
+ :type groupname: str
+ :param groupname: The name of the DBParameter group to retrieve.
+
+ :type source: str
+ :param source: Specifies which parameters to return.
+ If not specified, all parameters will be returned.
+ Valid values are: user|system|engine-default
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: :class:`boto.ec2.parametergroup.ParameterGroup`
+ :return: The ParameterGroup
+ """
+ params = {'DBParameterGroupName': groupname}
+ if source:
+ params['Source'] = source
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ pg = self.get_object('DescribeDBParameters', params, ParameterGroup)
+ pg.name = groupname
+ return pg
+
+ def create_parameter_group(self, name, engine='MySQL5.1', description=''):
+ """
+ Create a new dbparameter group for your account.
+
+ :type name: string
+ :param name: The name of the new dbparameter group
+
+ :type engine: str
+ :param engine: Name of database engine.
+
+ :type description: string
+ :param description: The description of the new dbparameter group
+
+ :rtype: :class:`boto.rds.parametergroup.ParameterGroup`
+ :return: The newly created ParameterGroup
+ """
+ params = {'DBParameterGroupName': name,
+ 'DBParameterGroupFamily': engine,
+ 'Description': description}
+ return self.get_object('CreateDBParameterGroup', params, ParameterGroup)
+
+ def modify_parameter_group(self, name, parameters=None):
+ """
+ Modify a ParameterGroup for your account.
+
+ :type name: string
+ :param name: The name of the new ParameterGroup
+
+ :type parameters: list of :class:`boto.rds.parametergroup.Parameter`
+ :param parameters: The new parameters
+
+ :rtype: :class:`boto.rds.parametergroup.ParameterGroup`
+ :return: The newly created ParameterGroup
+ """
+ params = {'DBParameterGroupName': name}
+ for i in range(0, len(parameters)):
+ parameter = parameters[i]
+ parameter.merge(params, i+1)
+ return self.get_list('ModifyDBParameterGroup', params,
+ ParameterGroup, verb='POST')
+
+ def reset_parameter_group(self, name, reset_all_params=False,
+ parameters=None):
+ """
+ Resets some or all of the parameters of a ParameterGroup to the
+ default value
+
+ :type key_name: string
+ :param key_name: The name of the ParameterGroup to reset
+
+ :type parameters: list of :class:`boto.rds.parametergroup.Parameter`
+ :param parameters: The parameters to reset. If not supplied,
+ all parameters will be reset.
+ """
+ params = {'DBParameterGroupName': name}
+ if reset_all_params:
+ params['ResetAllParameters'] = 'true'
+ else:
+ params['ResetAllParameters'] = 'false'
+ for i in range(0, len(parameters)):
+ parameter = parameters[i]
+ parameter.merge(params, i+1)
+ return self.get_status('ResetDBParameterGroup', params)
+
+ def delete_parameter_group(self, name):
+ """
+ Delete a ParameterGroup from your account.
+
+ :type key_name: string
+ :param key_name: The name of the ParameterGroup to delete
+ """
+ params = {'DBParameterGroupName': name}
+ return self.get_status('DeleteDBParameterGroup', params)
+
+ # DBSecurityGroup methods
+
+ def get_all_dbsecurity_groups(self, groupname=None, max_records=None,
+ marker=None):
+ """
+ Get all security groups associated with your account in a region.
+
+ :type groupnames: list
+ :param groupnames: A list of the names of security groups to retrieve.
+ If not provided, all security groups will
+ be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.dbsecuritygroup.DBSecurityGroup`
+ """
+ params = {}
+ if groupname:
+ params['DBSecurityGroupName'] = groupname
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeDBSecurityGroups', params,
+ [('DBSecurityGroup', DBSecurityGroup)])
+
+ def create_dbsecurity_group(self, name, description=None):
+ """
+ Create a new security group for your account.
+ This will create the security group within the region you
+ are currently connected to.
+
+ :type name: string
+ :param name: The name of the new security group
+
+ :type description: string
+ :param description: The description of the new security group
+
+ :rtype: :class:`boto.rds.dbsecuritygroup.DBSecurityGroup`
+ :return: The newly created DBSecurityGroup
+ """
+ params = {'DBSecurityGroupName': name}
+ if description:
+ params['DBSecurityGroupDescription'] = description
+ group = self.get_object('CreateDBSecurityGroup', params,
+ DBSecurityGroup)
+ group.name = name
+ group.description = description
+ return group
+
+ def delete_dbsecurity_group(self, name):
+ """
+ Delete a DBSecurityGroup from your account.
+
+ :type key_name: string
+ :param key_name: The name of the DBSecurityGroup to delete
+ """
+ params = {'DBSecurityGroupName': name}
+ return self.get_status('DeleteDBSecurityGroup', params)
+
+ def authorize_dbsecurity_group(self, group_name, cidr_ip=None,
+ ec2_security_group_name=None,
+ ec2_security_group_owner_id=None):
+ """
+ Add a new rule to an existing security group.
+ You need to pass in either src_security_group_name and
+ src_security_group_owner_id OR a CIDR block but not both.
+
+ :type group_name: string
+ :param group_name: The name of the security group you are adding
+ the rule to.
+
+ :type ec2_security_group_name: string
+ :param ec2_security_group_name: The name of the EC2 security group
+ you are granting access to.
+
+ :type ec2_security_group_owner_id: string
+ :param ec2_security_group_owner_id: The ID of the owner of the EC2
+ security group you are granting
+ access to.
+
+ :type cidr_ip: string
+ :param cidr_ip: The CIDR block you are providing access to.
+ See http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
+
+ :rtype: bool
+ :return: True if successful.
+ """
+ params = {'DBSecurityGroupName': group_name}
+ if ec2_security_group_name:
+ params['EC2SecurityGroupName'] = ec2_security_group_name
+ if ec2_security_group_owner_id:
+ params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id
+ if cidr_ip:
+ params['CIDRIP'] = urllib.quote(cidr_ip)
+ return self.get_object('AuthorizeDBSecurityGroupIngress', params,
+ DBSecurityGroup)
+
+ def revoke_dbsecurity_group(self, group_name, ec2_security_group_name=None,
+ ec2_security_group_owner_id=None, cidr_ip=None):
+ """
+ Remove an existing rule from an existing security group.
+ You need to pass in either ec2_security_group_name and
+ ec2_security_group_owner_id OR a CIDR block.
+
+ :type group_name: string
+ :param group_name: The name of the security group you are removing
+ the rule from.
+
+ :type ec2_security_group_name: string
+ :param ec2_security_group_name: The name of the EC2 security group
+ from which you are removing access.
+
+ :type ec2_security_group_owner_id: string
+ :param ec2_security_group_owner_id: The ID of the owner of the EC2
+ security from which you are
+ removing access.
+
+ :type cidr_ip: string
+ :param cidr_ip: The CIDR block from which you are removing access.
+ See http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
+
+ :rtype: bool
+ :return: True if successful.
+ """
+ params = {'DBSecurityGroupName': group_name}
+ if ec2_security_group_name:
+ params['EC2SecurityGroupName'] = ec2_security_group_name
+ if ec2_security_group_owner_id:
+ params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id
+ if cidr_ip:
+ params['CIDRIP'] = cidr_ip
+ return self.get_object('RevokeDBSecurityGroupIngress', params,
+ DBSecurityGroup)
+
+ # For backwards compatibility. This method was improperly named
+ # in previous versions. I have renamed it to match the others.
+ revoke_security_group = revoke_dbsecurity_group
+
+ # DBSnapshot methods
+
+ def get_all_dbsnapshots(self, snapshot_id=None, instance_id=None,
+ max_records=None, marker=None):
+ """
+ Get information about DB Snapshots.
+
+ :type snapshot_id: str
+ :param snapshot_id: The unique identifier of an RDS snapshot.
+ If not provided, all RDS snapshots will be returned.
+
+ :type instance_id: str
+ :param instance_id: The identifier of a DBInstance. If provided,
+ only the DBSnapshots related to that instance will
+ be returned.
+ If not provided, all RDS snapshots will be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.dbsnapshot.DBSnapshot`
+ """
+ params = {}
+ if snapshot_id:
+ params['DBSnapshotIdentifier'] = snapshot_id
+ if instance_id:
+ params['DBInstanceIdentifier'] = instance_id
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeDBSnapshots', params,
+ [('DBSnapshot', DBSnapshot)])
+
+ def get_all_logs(self, dbinstance_id, max_records=None, marker=None, file_size=None, filename_contains=None, file_last_written=None):
+ """
+ Get all log files
+
+ :type instance_id: str
+ :param instance_id: The identifier of a DBInstance.
+
+ :type max_records: int
+ :param max_records: Number of log file names to return.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :file_size: int
+ :param file_size: Filter results to files large than this size in bytes.
+
+ :filename_contains: str
+ :param filename_contains: Filter results to files with filename containing this string
+
+ :file_last_written: int
+ :param file_last_written: Filter results to files written after this time (POSIX timestamp)
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.logfile.LogFile`
+ """
+ params = {'DBInstanceIdentifier': dbinstance_id}
+
+ if file_size:
+ params['FileSize'] = file_size
+
+ if filename_contains:
+ params['FilenameContains'] = filename_contains
+
+ if file_last_written:
+ params['FileLastWritten'] = file_last_written
+
+ if marker:
+ params['Marker'] = marker
+
+ if max_records:
+ params['MaxRecords'] = max_records
+
+ return self.get_list('DescribeDBLogFiles', params,
+ [('DescribeDBLogFilesDetails',LogFile)])
+
+ def get_log_file(self, dbinstance_id, log_file_name, marker=None, number_of_lines=None, max_records=None):
+ """
+ Download a log file from RDS
+
+ :type instance_id: str
+ :param instance_id: The identifier of a DBInstance.
+
+ :type log_file_name: str
+ :param log_file_name: The name of the log file to retrieve
+
+ :type marker: str
+ :param marker: A marker returned from a previous call to this method, or 0 to indicate the start of file. If
+ no marker is specified, this will fetch log lines from the end of file instead.
+
+ :type number_of_lines: int
+ :param marker: The maximium number of lines to be returned.
+ """
+
+ params = {
+ 'DBInstanceIdentifier': dbinstance_id,
+ 'LogFileName': log_file_name,
+ }
+
+ if marker:
+ params['Marker'] = marker
+
+ if number_of_lines:
+ params['NumberOfLines'] = number_of_lines
+
+ if max_records:
+ params['MaxRecords'] = max_records
+
+ logfile = self.get_object('DownloadDBLogFilePortion', params, LogFileObject)
+
+ if logfile:
+ logfile.log_filename = log_file_name
+ logfile.dbinstance_id = dbinstance_id
+
+ return logfile
+
+ def create_dbsnapshot(self, snapshot_id, dbinstance_id):
+ """
+ Create a new DB snapshot.
+
+ :type snapshot_id: string
+ :param snapshot_id: The identifier for the DBSnapshot
+
+ :type dbinstance_id: string
+ :param dbinstance_id: The source identifier for the RDS instance from
+ which the snapshot is created.
+
+ :rtype: :class:`boto.rds.dbsnapshot.DBSnapshot`
+ :return: The newly created DBSnapshot
+ """
+ params = {'DBSnapshotIdentifier': snapshot_id,
+ 'DBInstanceIdentifier': dbinstance_id}
+ return self.get_object('CreateDBSnapshot', params, DBSnapshot)
+
+ def copy_dbsnapshot(self, source_snapshot_id, target_snapshot_id):
+ """
+ Copies the specified DBSnapshot.
+
+ :type source_snapshot_id: string
+ :param source_snapshot_id: The identifier for the source DB snapshot.
+
+ :type target_snapshot_id: string
+ :param target_snapshot_id: The identifier for the copied snapshot.
+
+ :rtype: :class:`boto.rds.dbsnapshot.DBSnapshot`
+ :return: The newly created DBSnapshot.
+ """
+ params = {'SourceDBSnapshotIdentifier': source_snapshot_id,
+ 'TargetDBSnapshotIdentifier': target_snapshot_id}
+ return self.get_object('CopyDBSnapshot', params, DBSnapshot)
+
+ def delete_dbsnapshot(self, identifier):
+ """
+ Delete a DBSnapshot
+
+ :type identifier: string
+ :param identifier: The identifier of the DBSnapshot to delete
+ """
+ params = {'DBSnapshotIdentifier': identifier}
+ return self.get_object('DeleteDBSnapshot', params, DBSnapshot)
+
+ def restore_dbinstance_from_dbsnapshot(self, identifier, instance_id,
+ instance_class, port=None,
+ availability_zone=None,
+ multi_az=None,
+ auto_minor_version_upgrade=None,
+ db_subnet_group_name=None):
+ """
+ Create a new DBInstance from a DB snapshot.
+
+ :type identifier: string
+ :param identifier: The identifier for the DBSnapshot
+
+ :type instance_id: string
+ :param instance_id: The source identifier for the RDS instance from
+ which the snapshot is created.
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of the
+ DBInstance. Valid values are:
+ db.m1.small | db.m1.large | db.m1.xlarge |
+ db.m2.2xlarge | db.m2.4xlarge
+
+ :type port: int
+ :param port: Port number on which database accepts connections.
+ Valid values [1115-65535]. Defaults to 3306.
+
+ :type availability_zone: str
+ :param availability_zone: Name of the availability zone to place
+ DBInstance into.
+
+ :type multi_az: bool
+ :param multi_az: If True, specifies the DB Instance will be
+ deployed in multiple availability zones.
+ Default is the API default.
+
+ :type auto_minor_version_upgrade: bool
+ :param auto_minor_version_upgrade: Indicates that minor engine
+ upgrades will be applied
+ automatically to the Read Replica
+ during the maintenance window.
+ Default is the API default.
+
+ :type db_subnet_group_name: str
+ :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.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The newly created DBInstance
+ """
+ params = {'DBSnapshotIdentifier': identifier,
+ 'DBInstanceIdentifier': instance_id,
+ 'DBInstanceClass': instance_class}
+ if port:
+ params['Port'] = port
+ if availability_zone:
+ params['AvailabilityZone'] = availability_zone
+ if multi_az is not None:
+ params['MultiAZ'] = str(multi_az).lower()
+ if auto_minor_version_upgrade is not None:
+ params['AutoMinorVersionUpgrade'] = str(auto_minor_version_upgrade).lower()
+ if db_subnet_group_name is not None:
+ params['DBSubnetGroupName'] = db_subnet_group_name
+ return self.get_object('RestoreDBInstanceFromDBSnapshot',
+ params, DBInstance)
+
+ def restore_dbinstance_from_point_in_time(self, source_instance_id,
+ target_instance_id,
+ use_latest=False,
+ restore_time=None,
+ dbinstance_class=None,
+ port=None,
+ availability_zone=None,
+ db_subnet_group_name=None):
+
+ """
+ Create a new DBInstance from a point in time.
+
+ :type source_instance_id: string
+ :param source_instance_id: The identifier for the source DBInstance.
+
+ :type target_instance_id: string
+ :param target_instance_id: The identifier of the new DBInstance.
+
+ :type use_latest: bool
+ :param use_latest: If True, the latest snapshot availabile will
+ be used.
+
+ :type restore_time: datetime
+ :param restore_time: The date and time to restore from. Only
+ used if use_latest is False.
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of the
+ DBInstance. Valid values are:
+ db.m1.small | db.m1.large | db.m1.xlarge |
+ db.m2.2xlarge | db.m2.4xlarge
+
+ :type port: int
+ :param port: Port number on which database accepts connections.
+ Valid values [1115-65535]. Defaults to 3306.
+
+ :type availability_zone: str
+ :param availability_zone: Name of the availability zone to place
+ DBInstance into.
+
+ :type db_subnet_group_name: str
+ :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.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The newly created DBInstance
+ """
+ params = {'SourceDBInstanceIdentifier': source_instance_id,
+ 'TargetDBInstanceIdentifier': target_instance_id}
+ if use_latest:
+ params['UseLatestRestorableTime'] = 'true'
+ elif restore_time:
+ params['RestoreTime'] = restore_time.isoformat()
+ if dbinstance_class:
+ params['DBInstanceClass'] = dbinstance_class
+ if port:
+ params['Port'] = port
+ if availability_zone:
+ params['AvailabilityZone'] = availability_zone
+ if db_subnet_group_name is not None:
+ params['DBSubnetGroupName'] = db_subnet_group_name
+ return self.get_object('RestoreDBInstanceToPointInTime',
+ params, DBInstance)
+
+ # Events
+
+ def get_all_events(self, source_identifier=None, source_type=None,
+ start_time=None, end_time=None,
+ max_records=None, marker=None):
+ """
+ Get information about events related to your DBInstances,
+ DBSecurityGroups and DBParameterGroups.
+
+ :type source_identifier: str
+ :param source_identifier: If supplied, the events returned will be
+ limited to those that apply to the identified
+ source. The value of this parameter depends
+ on the value of source_type. If neither
+ parameter is specified, all events in the time
+ span will be returned.
+
+ :type source_type: str
+ :param source_type: Specifies how the source_identifier should
+ be interpreted. Valid values are:
+ b-instance | db-security-group |
+ db-parameter-group | db-snapshot
+
+ :type start_time: datetime
+ :param start_time: The beginning of the time interval for events.
+ If not supplied, all available events will
+ be returned.
+
+ :type end_time: datetime
+ :param end_time: The ending of the time interval for events.
+ If not supplied, all available events will
+ be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of class:`boto.rds.event.Event`
+ """
+ params = {}
+ if source_identifier and source_type:
+ params['SourceIdentifier'] = source_identifier
+ params['SourceType'] = source_type
+ if start_time:
+ params['StartTime'] = start_time.isoformat()
+ if end_time:
+ params['EndTime'] = end_time.isoformat()
+ if max_records:
+ params['MaxRecords'] = max_records
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeEvents', params, [('Event', Event)])
+
+ def create_db_subnet_group(self, name, desc, subnet_ids):
+ """
+ Create a new Database Subnet Group.
+
+ :type name: string
+ :param name: The identifier for the db_subnet_group
+
+ :type desc: string
+ :param desc: A description of the db_subnet_group
+
+ :type subnet_ids: list
+ :param subnets: A list of the subnet identifiers to include in the
+ db_subnet_group
+
+ :rtype: :class:`boto.rds.dbsubnetgroup.DBSubnetGroup
+ :return: the created db_subnet_group
+ """
+
+ params = {'DBSubnetGroupName': name,
+ 'DBSubnetGroupDescription': desc}
+ self.build_list_params(params, subnet_ids, 'SubnetIds.member')
+
+ return self.get_object('CreateDBSubnetGroup', params, DBSubnetGroup)
+
+ def delete_db_subnet_group(self, name):
+ """
+ Delete a Database Subnet Group.
+
+ :type name: string
+ :param name: The identifier of the db_subnet_group to delete
+
+ :rtype: :class:`boto.rds.dbsubnetgroup.DBSubnetGroup`
+ :return: The deleted db_subnet_group.
+ """
+
+ params = {'DBSubnetGroupName': name}
+
+ return self.get_object('DeleteDBSubnetGroup', params, DBSubnetGroup)
+
+
+ def get_all_db_subnet_groups(self, name=None, max_records=None, marker=None):
+ """
+ Retrieve all the DBSubnetGroups in your account.
+
+ :type name: str
+ :param name: DBSubnetGroup name If supplied, only information about
+ this DBSubnetGroup will be returned. Otherwise, info
+ about all DBSubnetGroups will be returned.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a Token will be
+ returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of :class:`boto.rds.dbsubnetgroup.DBSubnetGroup`
+ """
+ params = dict()
+ if name is not None:
+ params['DBSubnetGroupName'] = name
+ if max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+
+ return self.get_list('DescribeDBSubnetGroups', params, [('DBSubnetGroup',DBSubnetGroup)])
+
+ def modify_db_subnet_group(self, name, description=None, subnet_ids=None):
+ """
+ Modify a parameter group for your account.
+
+ :type name: string
+ :param name: The name of the new parameter group
+
+ :type parameters: list of :class:`boto.rds.parametergroup.Parameter`
+ :param parameters: The new parameters
+
+ :rtype: :class:`boto.rds.parametergroup.ParameterGroup`
+ :return: The newly created ParameterGroup
+ """
+ params = {'DBSubnetGroupName': name}
+ if description is not None:
+ params['DBSubnetGroupDescription'] = description
+ if subnet_ids is not None:
+ self.build_list_params(params, subnet_ids, 'SubnetIds.member')
+
+ return self.get_object('ModifyDBSubnetGroup', params, DBSubnetGroup)
+
+ def create_option_group(self, name, engine_name, major_engine_version,
+ description=None):
+ """
+ Create a new option group for your account.
+ This will create the option group within the region you
+ are currently connected to.
+
+ :type name: string
+ :param name: The name of the new option group
+
+ :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 description: string
+ :param description: The description of the new option group
+
+ :rtype: :class:`boto.rds.optiongroup.OptionGroup`
+ :return: The newly created OptionGroup
+ """
+ params = {
+ 'OptionGroupName': name,
+ 'EngineName': engine_name,
+ 'MajorEngineVersion': major_engine_version,
+ 'OptionGroupDescription': description,
+ }
+ group = self.get_object('CreateOptionGroup', params, OptionGroup)
+ group.name = name
+ group.engine_name = engine_name
+ group.major_engine_version = major_engine_version
+ group.description = description
+ return group
+
+ def delete_option_group(self, name):
+ """
+ Delete an OptionGroup from your account.
+
+ :type key_name: string
+ :param key_name: The name of the OptionGroup to delete
+ """
+ params = {'OptionGroupName': name}
+ return self.get_status('DeleteOptionGroup', params)
+
+ def describe_option_groups(self, name=None, engine_name=None,
+ major_engine_version=None, max_records=100,
+ marker=None):
+ """
+ Describes the available option groups.
+
+ :type name: str
+ :param name: The name of the option group to describe. Cannot be
+ supplied together with engine_name or major_engine_version.
+
+ :type engine_name: str
+ :param engine_name: Filters the list of option groups to only include
+ groups associated with a specific database engine.
+
+ :type major_engine_version: datetime
+ :param major_engine_version: Filters the list of option groups to only
+ include groups associated with a specific
+ database engine version. If specified, then
+ engine_name must also be specified.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of class:`boto.rds.optiongroup.OptionGroup`
+ """
+ params = {}
+ if name:
+ params['OptionGroupName'] = name
+ elif engine_name and major_engine_version:
+ params['EngineName'] = engine_name
+ params['MajorEngineVersion'] = major_engine_version
+ if max_records:
+ params['MaxRecords'] = int(max_records)
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeOptionGroups', params, [
+ ('OptionGroup', OptionGroup)
+ ])
+
+ def describe_option_group_options(self, engine_name=None,
+ major_engine_version=None, max_records=100,
+ marker=None):
+ """
+ Describes the available option group options.
+
+ :type engine_name: str
+ :param engine_name: Filters the list of option groups to only include
+ groups associated with a specific database engine.
+
+ :type major_engine_version: datetime
+ :param major_engine_version: Filters the list of option groups to only
+ include groups associated with a specific
+ database engine version. If specified, then
+ engine_name must also be specified.
+
+ :type max_records: int
+ :param max_records: The maximum number of records to be returned.
+ If more results are available, a MoreToken will
+ be returned in the response that can be used to
+ retrieve additional records. Default is 100.
+
+ :type marker: str
+ :param marker: The marker provided by a previous request.
+
+ :rtype: list
+ :return: A list of class:`boto.rds.optiongroup.Option`
+ """
+ params = {}
+ if engine_name and major_engine_version:
+ params['EngineName'] = engine_name
+ params['MajorEngineVersion'] = major_engine_version
+ if max_records:
+ params['MaxRecords'] = int(max_records)
+ if marker:
+ params['Marker'] = marker
+ return self.get_list('DescribeOptionGroupOptions', params, [
+ ('OptionGroupOptions', OptionGroupOption)
+ ])
« no previous file with comments | « third_party/gsutil/third_party/boto/boto/pyami/startup.py ('k') | third_party/gsutil/third_party/boto/boto/rds/dbinstance.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698