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

Unified Diff: third_party/gsutil/boto/boto/elasticache/layer1.py

Issue 12042069: Scripts to download files from google storage based on sha1 sums (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Review fixes, updated gsutil Created 7 years, 10 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/boto/boto/elasticache/layer1.py
diff --git a/third_party/gsutil/boto/boto/elasticache/layer1.py b/third_party/gsutil/boto/boto/elasticache/layer1.py
new file mode 100644
index 0000000000000000000000000000000000000000..6bf87d765f3ebd29a58f1daf82ab7c98f1f57ee9
--- /dev/null
+++ b/third_party/gsutil/boto/boto/elasticache/layer1.py
@@ -0,0 +1,1252 @@
+# Copyright (c) 2013 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 json
+import boto
+from boto.connection import AWSQueryConnection
+from boto.regioninfo import RegionInfo
+
+
+class ElastiCacheConnection(AWSQueryConnection):
+ """
+ Amazon ElastiCache
+ Amazon ElastiCache is a web service that makes it easier to set
+ up, operate, and scale a distributed cache in the cloud.
+
+ With Amazon ElastiCache, customers gain all of the benefits of a
+ high-performance, in-memory cache with far less of the
+ administrative burden of launching and managing a distributed
+ cache. The service makes set-up, scaling, and cluster failure
+ handling much simpler than in a self-managed cache deployment.
+
+ In addition, through integration with Amazon CloudWatch, customers
+ get enhanced visibility into the key performance statistics
+ associated with their cache and can receive alarms if a part of
+ their cache runs hot.
+ """
+ APIVersion = "2012-11-15"
+ DefaultRegionName = "us-east-1"
+ DefaultRegionEndpoint = "elasticache.us-east-1.amazonaws.com"
+
+ def __init__(self, **kwargs):
+ region = kwargs.get('region')
+ if not region:
+ region = RegionInfo(self, self.DefaultRegionName,
+ self.DefaultRegionEndpoint)
+ else:
+ del kwargs['region']
+ kwargs['host'] = region.endpoint
+ AWSQueryConnection.__init__(self, **kwargs)
+ self.region = region
+
+
+ def _required_auth_capability(self):
+ return ['sign-v2']
+
+ def authorize_cache_security_group_ingress(self,
+ cache_security_group_name,
+ ec2_security_group_name,
+ ec2_security_group_owner_id):
+ """
+ Authorizes ingress to a CacheSecurityGroup using EC2 Security
+ Groups as authorization (therefore the application using the
+ cache must be running on EC2 clusters). This API requires the
+ following parameters: EC2SecurityGroupName and
+ EC2SecurityGroupOwnerId.
+ You cannot authorize ingress from an EC2 security group in one
+ Region to an Amazon Cache Cluster in another.
+
+ :type cache_security_group_name: string
+ :param cache_security_group_name: The name of the Cache Security Group
+ to authorize.
+
+ :type ec2_security_group_name: string
+ :param ec2_security_group_name: Name of the EC2 Security Group to
+ include in the authorization.
+
+ :type ec2_security_group_owner_id: string
+ :param ec2_security_group_owner_id: AWS Account Number of the owner of
+ the security group specified in the EC2SecurityGroupName parameter.
+ The AWS Access Key ID is not an acceptable value.
+
+ """
+ params = {
+ 'CacheSecurityGroupName': cache_security_group_name,
+ 'EC2SecurityGroupName': ec2_security_group_name,
+ 'EC2SecurityGroupOwnerId': ec2_security_group_owner_id,
+ }
+ return self._make_request(
+ action='AuthorizeCacheSecurityGroupIngress',
+ verb='POST',
+ path='/', params=params)
+
+ def create_cache_cluster(self, cache_cluster_id, num_cache_nodes,
+ cache_node_type, engine, engine_version=None,
+ cache_parameter_group_name=None,
+ cache_subnet_group_name=None,
+ cache_security_group_names=None,
+ security_group_ids=None,
+ preferred_availability_zone=None,
+ preferred_maintenance_window=None, port=None,
+ notification_topic_arn=None,
+ auto_minor_version_upgrade=None):
+ """
+ Creates a new Cache Cluster.
+
+ :type cache_cluster_id: string
+ :param cache_cluster_id: The Cache Cluster identifier. This parameter
+ is stored as a lowercase string.
+
+ :type num_cache_nodes: integer
+ :param num_cache_nodes: The number of Cache Nodes the Cache Cluster
+ should have.
+
+ :type cache_node_type: string
+ :param cache_node_type: The compute and memory capacity of nodes in a
+ Cache Cluster.
+
+ :type engine: string
+ :param engine: The name of the cache engine to be used for this Cache
+ Cluster. Currently, memcached is the only cache engine supported
+ by the service.
+
+ :type engine_version: string
+ :param engine_version: The version of the cache engine to be used for
+ this cluster.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the cache parameter
+ group to associate with this Cache cluster. If this argument is
+ omitted, the default CacheParameterGroup for the specified engine
+ will be used.
+
+ :type cache_subnet_group_name: string
+ :param cache_subnet_group_name: The name of the Cache Subnet Group to
+ be used for the Cache Cluster. Use this parameter only when you
+ are creating a cluster in an Amazon Virtual Private Cloud (VPC).
+
+ :type cache_security_group_names: list
+ :param cache_security_group_names: A list of Cache Security Group Names
+ to associate with this Cache Cluster. Use this parameter only when
+ you are creating a cluster outside of an Amazon Virtual Private
+ Cloud (VPC).
+
+ :type security_group_ids: list
+ :param security_group_ids: Specifies the VPC Security Groups associated
+ with the Cache Cluster. Use this parameter only when you are
+ creating a cluster in an Amazon Virtual Private Cloud (VPC).
+
+ :type preferred_availability_zone: string
+ :param preferred_availability_zone: The EC2 Availability Zone that the
+ Cache Cluster will be created in. All cache nodes belonging to a
+ cache cluster are placed in the preferred availability zone.
+ Default: System chosen (random) availability zone.
+
+ :type preferred_maintenance_window: string
+ :param preferred_maintenance_window: The weekly time range (in UTC)
+ during which system maintenance can occur. Example:
+ `sun:05:00-sun:09:00`
+
+ :type port: integer
+ :param port: The port number on which each of the Cache Nodes will
+ accept connections.
+
+ :type notification_topic_arn: string
+ :param notification_topic_arn: The Amazon Resource Name (ARN) of the
+ Amazon Simple Notification Service (SNS) topic to which
+ notifications will be sent. The Amazon SNS topic owner must be the
+ same as the Cache Cluster owner.
+
+ :type auto_minor_version_upgrade: boolean
+ :param auto_minor_version_upgrade: Indicates that minor engine upgrades
+ will be applied automatically to the Cache Cluster during the
+ maintenance window. Default: `True`
+
+ """
+ params = {
+ 'CacheClusterId': cache_cluster_id,
+ 'NumCacheNodes': num_cache_nodes,
+ 'CacheNodeType': cache_node_type,
+ 'Engine': engine,
+ }
+ if engine_version is not None:
+ params['EngineVersion'] = engine_version
+ if cache_parameter_group_name is not None:
+ params['CacheParameterGroupName'] = cache_parameter_group_name
+ if cache_subnet_group_name is not None:
+ params['CacheSubnetGroupName'] = cache_subnet_group_name
+ if cache_security_group_names is not None:
+ self.build_list_params(params,
+ cache_security_group_names,
+ 'CacheSecurityGroupNames.member')
+ if security_group_ids is not None:
+ self.build_list_params(params,
+ security_group_ids,
+ 'SecurityGroupIds.member')
+ if preferred_availability_zone is not None:
+ params['PreferredAvailabilityZone'] = preferred_availability_zone
+ if preferred_maintenance_window is not None:
+ params['PreferredMaintenanceWindow'] = preferred_maintenance_window
+ if port is not None:
+ params['Port'] = port
+ if notification_topic_arn is not None:
+ params['NotificationTopicArn'] = notification_topic_arn
+ if auto_minor_version_upgrade is not None:
+ params['AutoMinorVersionUpgrade'] = str(
+ auto_minor_version_upgrade).lower()
+ return self._make_request(
+ action='CreateCacheCluster',
+ verb='POST',
+ path='/', params=params)
+
+ def create_cache_parameter_group(self, cache_parameter_group_name,
+ cache_parameter_group_family,
+ description):
+ """
+ Creates a new Cache Parameter Group. Cache Parameter groups
+ control the parameters for a Cache Cluster.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the Cache Parameter
+ Group.
+
+ :type cache_parameter_group_family: string
+ :param cache_parameter_group_family: The name of the Cache Parameter
+ Group Family the Cache Parameter Group can be used with.
+ Currently, memcached1.4 is the only cache parameter group family
+ supported by the service.
+
+ :type description: string
+ :param description: The description for the Cache Parameter Group.
+
+ """
+ params = {
+ 'CacheParameterGroupName': cache_parameter_group_name,
+ 'CacheParameterGroupFamily': cache_parameter_group_family,
+ 'Description': description,
+ }
+ return self._make_request(
+ action='CreateCacheParameterGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def create_cache_security_group(self, cache_security_group_name,
+ description):
+ """
+ Creates a new Cache Security Group. Cache Security groups
+ control access to one or more Cache Clusters.
+
+ Only use cache security groups when you are creating a cluster
+ outside of an Amazon Virtual Private Cloud (VPC). Inside of a
+ VPC, use VPC security groups.
+
+ :type cache_security_group_name: string
+ :param cache_security_group_name: The name for the Cache Security
+ Group. This value is stored as a lowercase string. Constraints:
+ Must contain no more than 255 alphanumeric characters. Must not be
+ "Default". Example: `mysecuritygroup`
+
+ :type description: string
+ :param description: The description for the Cache Security Group.
+
+ """
+ params = {
+ 'CacheSecurityGroupName': cache_security_group_name,
+ 'Description': description,
+ }
+ return self._make_request(
+ action='CreateCacheSecurityGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def create_cache_subnet_group(self, cache_subnet_group_name,
+ cache_subnet_group_description, subnet_ids):
+ """
+ Creates a new Cache Subnet Group.
+
+ :type cache_subnet_group_name: string
+ :param cache_subnet_group_name: The name for the Cache Subnet Group.
+ This value is stored as a lowercase string. Constraints: Must
+ contain no more than 255 alphanumeric characters or hyphens.
+ Example: `mysubnetgroup`
+
+ :type cache_subnet_group_description: string
+ :param cache_subnet_group_description: The description for the Cache
+ Subnet Group.
+
+ :type subnet_ids: list
+ :param subnet_ids: The EC2 Subnet IDs for the Cache Subnet Group.
+
+ """
+ params = {
+ 'CacheSubnetGroupName': cache_subnet_group_name,
+ 'CacheSubnetGroupDescription': cache_subnet_group_description,
+ }
+ self.build_list_params(params,
+ subnet_ids,
+ 'SubnetIds.member')
+ return self._make_request(
+ action='CreateCacheSubnetGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def delete_cache_cluster(self, cache_cluster_id):
+ """
+ Deletes a previously provisioned Cache Cluster. A successful
+ response from the web service indicates the request was
+ received correctly. This action cannot be canceled or
+ reverted. DeleteCacheCluster deletes all associated Cache
+ Nodes, node endpoints and the Cache Cluster itself.
+
+ :type cache_cluster_id: string
+ :param cache_cluster_id: The Cache Cluster identifier for the Cache
+ Cluster to be deleted. This parameter isn't case sensitive.
+
+ """
+ params = {'CacheClusterId': cache_cluster_id, }
+ return self._make_request(
+ action='DeleteCacheCluster',
+ verb='POST',
+ path='/', params=params)
+
+ def delete_cache_parameter_group(self, cache_parameter_group_name):
+ """
+ Deletes the specified CacheParameterGroup. The
+ CacheParameterGroup cannot be deleted if it is associated with
+ any cache clusters.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the Cache Parameter
+ Group to delete. The specified cache security group must not be
+ associated with any Cache clusters.
+
+ """
+ params = {
+ 'CacheParameterGroupName': cache_parameter_group_name,
+ }
+ return self._make_request(
+ action='DeleteCacheParameterGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def delete_cache_security_group(self, cache_security_group_name):
+ """
+ Deletes a Cache Security Group.
+ The specified Cache Security Group must not be associated with
+ any Cache Clusters.
+
+ :type cache_security_group_name: string
+ :param cache_security_group_name: The name of the Cache Security Group
+ to delete. You cannot delete the default security group.
+
+ """
+ params = {
+ 'CacheSecurityGroupName': cache_security_group_name,
+ }
+ return self._make_request(
+ action='DeleteCacheSecurityGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def delete_cache_subnet_group(self, cache_subnet_group_name):
+ """
+ Deletes a Cache Subnet Group.
+ The specified Cache Subnet Group must not be associated with
+ any Cache Clusters.
+
+ :type cache_subnet_group_name: string
+ :param cache_subnet_group_name: The name of the Cache Subnet Group to
+ delete. Constraints: Must contain no more than 255 alphanumeric
+ characters or hyphens.
+
+ """
+ params = {'CacheSubnetGroupName': cache_subnet_group_name, }
+ return self._make_request(
+ action='DeleteCacheSubnetGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_clusters(self, cache_cluster_id=None,
+ max_records=None, marker=None,
+ show_cache_node_info=None):
+ """
+ Returns information about all provisioned Cache Clusters if no
+ Cache Cluster identifier is specified, or about a specific
+ Cache Cluster if a Cache Cluster identifier is supplied.
+
+ Cluster information will be returned by default. An optional
+ ShowDetails flag can be used to retrieve detailed information
+ about the Cache Nodes associated with the Cache Cluster.
+ Details include the DNS address and port for the Cache Node
+ endpoint.
+
+ If the cluster is in the CREATING state, only cluster level
+ information will be displayed until all of the nodes are
+ successfully provisioned.
+
+ If the cluster is in the DELETING state, only cluster level
+ information will be displayed.
+
+ While adding Cache Nodes, node endpoint information and
+ creation time for the additional nodes will not be displayed
+ until they are completely provisioned. The cluster lifecycle
+ tells the customer when new nodes are AVAILABLE.
+
+ While removing existing Cache Nodes from an cluster, endpoint
+ information for the removed nodes will not be displayed.
+
+ DescribeCacheClusters supports pagination.
+
+ :type cache_cluster_id: string
+ :param cache_cluster_id: The user-supplied cluster identifier. If this
+ parameter is specified, only information about that specific Cache
+ Cluster is returned. This parameter isn't case sensitive.
+
+ :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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheClusters request. If this parameter is specified, the
+ response includes only records beyond the marker, up to the value
+ specified by MaxRecords .
+
+ :type show_cache_node_info: boolean
+ :param show_cache_node_info: An optional flag that can be included in
+ the DescribeCacheCluster request to retrieve Cache Nodes
+ information.
+
+ """
+ params = {}
+ if cache_cluster_id is not None:
+ params['CacheClusterId'] = cache_cluster_id
+ if max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ if show_cache_node_info is not None:
+ params['ShowCacheNodeInfo'] = str(
+ show_cache_node_info).lower()
+ return self._make_request(
+ action='DescribeCacheClusters',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_engine_versions(self, engine=None,
+ engine_version=None,
+ cache_parameter_group_family=None,
+ max_records=None, marker=None,
+ default_only=None):
+ """
+ Returns a list of the available cache engines and their
+ versions.
+
+ :type engine: string
+ :param engine: The cache engine to return.
+
+ :type engine_version: string
+ :param engine_version: The cache engine version to return. Example:
+ `1.4.14`
+
+ :type cache_parameter_group_family: string
+ :param cache_parameter_group_family: The name of a specific Cache
+ 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 records exist than the specified MaxRecords
+ value, a marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheParameterGroups 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.
+
+ """
+ params = {}
+ if engine is not None:
+ params['Engine'] = engine
+ if engine_version is not None:
+ params['EngineVersion'] = engine_version
+ if cache_parameter_group_family is not None:
+ params['CacheParameterGroupFamily'] = cache_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()
+ return self._make_request(
+ action='DescribeCacheEngineVersions',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_parameter_groups(self,
+ cache_parameter_group_name=None,
+ max_records=None, marker=None):
+ """
+ Returns a list of CacheParameterGroup descriptions. If a
+ CacheParameterGroupName is specified, the list will contain
+ only the descriptions of the specified CacheParameterGroup.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of a specific cache
+ parameter group to return details for.
+
+ :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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheParameterGroups request. If this parameter is
+ specified, the response includes only records beyond the marker, up
+ to the value specified by MaxRecords .
+
+ """
+ params = {}
+ if cache_parameter_group_name is not None:
+ params['CacheParameterGroupName'] = cache_parameter_group_name
+ if max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ return self._make_request(
+ action='DescribeCacheParameterGroups',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_parameters(self, cache_parameter_group_name,
+ source=None, max_records=None, marker=None):
+ """
+ Returns the detailed parameter list for a particular
+ CacheParameterGroup.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of a specific cache
+ parameter group to return details for.
+
+ :type source: string
+ :param source: The parameter types to return. 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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheClusters request. If this parameter is specified, the
+ response includes only records beyond the marker, up to the value
+ specified by MaxRecords .
+
+ """
+ params = {
+ 'CacheParameterGroupName': cache_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='DescribeCacheParameters',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_security_groups(self, cache_security_group_name=None,
+ max_records=None, marker=None):
+ """
+ Returns a list of CacheSecurityGroup descriptions. If a
+ CacheSecurityGroupName is specified, the list will contain
+ only the description of the specified CacheSecurityGroup.
+
+ :type cache_security_group_name: string
+ :param cache_security_group_name: The name of the Cache Security Group
+ to return details for.
+
+ :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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheClusters request. If this parameter is specified, the
+ response includes only records beyond the marker, up to the value
+ specified by MaxRecords .
+
+ """
+ params = {}
+ if cache_security_group_name is not None:
+ params['CacheSecurityGroupName'] = cache_security_group_name
+ if max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ return self._make_request(
+ action='DescribeCacheSecurityGroups',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_cache_subnet_groups(self, cache_subnet_group_name=None,
+ max_records=None, marker=None):
+ """
+ Returns a list of CacheSubnetGroup descriptions. If a
+ CacheSubnetGroupName is specified, the list will contain only
+ the description of the specified Cache Subnet Group.
+
+ :type cache_subnet_group_name: string
+ :param cache_subnet_group_name: The name of the Cache Subnet Group to
+ return details for.
+
+ :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 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 marker provided in the previous
+ DescribeCacheSubnetGroups request. If this parameter is specified,
+ the response includes only records beyond the marker, up to the
+ value specified by `MaxRecords`.
+
+ """
+ params = {}
+ if cache_subnet_group_name is not None:
+ params['CacheSubnetGroupName'] = cache_subnet_group_name
+ if max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ return self._make_request(
+ action='DescribeCacheSubnetGroups',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_engine_default_parameters(self,
+ cache_parameter_group_family,
+ max_records=None, marker=None):
+ """
+ Returns the default engine and system parameter information
+ for the specified cache engine.
+
+ :type cache_parameter_group_family: string
+ :param cache_parameter_group_family: The name of the Cache Parameter
+ Group Family. Currently, memcached1.4 is the only cache parameter
+ group family supported by the service.
+
+ :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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheClusters request. If this parameter is specified, the
+ response includes only records beyond the marker, up to the value
+ specified by MaxRecords .
+
+ """
+ params = {
+ 'CacheParameterGroupFamily': cache_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_events(self, source_identifier=None, source_type=None,
+ start_time=None, end_time=None, duration=None,
+ max_records=None, marker=None):
+ """
+ Returns events related to Cache Clusters, Cache Security
+ Groups, and Cache Parameter Groups for the past 14 days.
+ Events specific to a particular Cache Cluster, Cache Security
+ Group, or Cache 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.
+
+ :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: string
+ :param start_time: The beginning of the time interval to retrieve
+ events for, specified in ISO 8601 format.
+
+ :type end_time: string
+ :param end_time: The end of the time interval for which to retrieve
+ events, specified in ISO 8601 format.
+
+ :type duration: integer
+ :param duration: The number of minutes to retrieve events for.
+
+ :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 marker is included in the response so that the remaining
+ results may be retrieved.
+
+ :type marker: string
+ :param marker: An optional marker provided in the previous
+ DescribeCacheClusters 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 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_reserved_cache_nodes(self, reserved_cache_node_id=None,
+ reserved_cache_nodes_offering_id=None,
+ cache_node_type=None, duration=None,
+ product_description=None,
+ offering_type=None, max_records=None,
+ marker=None):
+ """
+ Returns information about reserved Cache Nodes for this
+ account, or about a specified reserved Cache Node.
+
+ :type reserved_cache_node_id: string
+ :param reserved_cache_node_id: The reserved Cache Node identifier
+ filter value. Specify this parameter to show only the reservation
+ that matches the specified reservation ID.
+
+ :type reserved_cache_nodes_offering_id: string
+ :param reserved_cache_nodes_offering_id: The offering identifier filter
+ value. Specify this parameter to show only purchased reservations
+ matching the specified offering identifier.
+
+ :type cache_node_type: string
+ :param cache_node_type: The Cache Node type filter value. Specify this
+ parameter to show only those reservations matching the specified
+ Cache Nodes type.
+
+ :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 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
+ 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: The marker provided in the previous request. If this
+ parameter is specified, the response includes records beyond the
+ marker only, up to `MaxRecords`.
+
+ """
+ params = {}
+ if reserved_cache_node_id is not None:
+ params['ReservedCacheNodeId'] = reserved_cache_node_id
+ if reserved_cache_nodes_offering_id is not None:
+ params['ReservedCacheNodesOfferingId'] = reserved_cache_nodes_offering_id
+ if cache_node_type is not None:
+ params['CacheNodeType'] = cache_node_type
+ 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 max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ return self._make_request(
+ action='DescribeReservedCacheNodes',
+ verb='POST',
+ path='/', params=params)
+
+ def describe_reserved_cache_nodes_offerings(self,
+ reserved_cache_nodes_offering_id=None,
+ cache_node_type=None,
+ duration=None,
+ product_description=None,
+ offering_type=None,
+ max_records=None,
+ marker=None):
+ """
+ Lists available reserved Cache Node offerings.
+
+ :type reserved_cache_nodes_offering_id: string
+ :param reserved_cache_nodes_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 cache_node_type: string
+ :param cache_node_type: The Cache Node type filter value. Specify this
+ parameter to show only the available offerings matching the
+ specified Cache Node type.
+
+ :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 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
+ 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: The marker provided in the previous request. If this
+ parameter is specified, the response includes records beyond the
+ marker only, up to `MaxRecords`.
+
+ """
+ params = {}
+ if reserved_cache_nodes_offering_id is not None:
+ params['ReservedCacheNodesOfferingId'] = reserved_cache_nodes_offering_id
+ if cache_node_type is not None:
+ params['CacheNodeType'] = cache_node_type
+ 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 max_records is not None:
+ params['MaxRecords'] = max_records
+ if marker is not None:
+ params['Marker'] = marker
+ return self._make_request(
+ action='DescribeReservedCacheNodesOfferings',
+ verb='POST',
+ path='/', params=params)
+
+ def modify_cache_cluster(self, cache_cluster_id, num_cache_nodes=None,
+ cache_node_ids_to_remove=None,
+ cache_security_group_names=None,
+ security_group_ids=None,
+ preferred_maintenance_window=None,
+ notification_topic_arn=None,
+ cache_parameter_group_name=None,
+ notification_topic_status=None,
+ apply_immediately=None, engine_version=None,
+ auto_minor_version_upgrade=None):
+ """
+ Modifies the Cache Cluster settings. You can change one or
+ more Cache Cluster configuration parameters by specifying the
+ parameters and the new values in the request.
+
+ :type cache_cluster_id: string
+ :param cache_cluster_id: The Cache Cluster identifier. This value is
+ stored as a lowercase string.
+
+ :type num_cache_nodes: integer
+ :param num_cache_nodes: The number of Cache Nodes the Cache Cluster
+ should have. If NumCacheNodes is greater than the existing number
+ of Cache Nodes, Cache Nodes will be added. If NumCacheNodes is less
+ than the existing number of Cache Nodes, Cache Nodes will be
+ removed. When removing Cache Nodes, the Ids of the specific Cache
+ Nodes to be removed must be supplied using the CacheNodeIdsToRemove
+ parameter.
+
+ :type cache_node_ids_to_remove: list
+ :param cache_node_ids_to_remove: The list of Cache Node IDs to be
+ removed. This parameter is only valid when NumCacheNodes is less
+ than the existing number of Cache Nodes. The number of Cache Node
+ Ids supplied in this parameter must match the difference between
+ the existing number of Cache Nodes in the cluster and the new
+ NumCacheNodes requested.
+
+ :type cache_security_group_names: list
+ :param cache_security_group_names: A list of Cache Security Group Names
+ to authorize on this Cache Cluster. This change is asynchronously
+ applied as soon as possible. This parameter can be used only with
+ clusters that are created outside of an Amazon Virtual Private
+ Cloud (VPC). Constraints: Must contain no more than 255
+ alphanumeric characters. Must not be "Default".
+
+ :type security_group_ids: list
+ :param security_group_ids: Specifies the VPC Security Groups associated
+ with the Cache Cluster. This parameter can be used only with
+ clusters that are created in an Amazon Virtual Private Cloud (VPC).
+
+ :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. This change is made immediately. If moving this window to
+ the current time, there must be at least 120 minutes between the
+ current time and end of the window to ensure pending changes are
+ applied.
+
+ :type notification_topic_arn: string
+ :param notification_topic_arn: The Amazon Resource Name (ARN) of the
+ SNS topic to which notifications will be sent. The SNS topic owner
+ must be same as the Cache Cluster owner.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the Cache Parameter
+ Group to apply to this Cache Cluster. This change is asynchronously
+ applied as soon as possible for parameters when the
+ ApplyImmediately parameter is specified as true for this request.
+
+ :type notification_topic_status: string
+ :param notification_topic_status: The status of the Amazon SNS
+ notification topic. The value can be active or inactive .
+ Notifications are sent only if the status is active .
+
+ :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 Cache Cluster. If this
+ parameter is passed as `False`, changes to the Cache Cluster are
+ applied on the next maintenance reboot, or the next failure reboot,
+ whichever occurs first. Default: `False`
+
+ :type engine_version: string
+ :param engine_version: The version of the cache engine to upgrade this
+ cluster to.
+
+ :type auto_minor_version_upgrade: boolean
+ :param auto_minor_version_upgrade: Indicates that minor engine upgrades
+ will be applied automatically to the Cache Cluster during the
+ maintenance window. Default: `True`
+
+ """
+ params = {'CacheClusterId': cache_cluster_id, }
+ if num_cache_nodes is not None:
+ params['NumCacheNodes'] = num_cache_nodes
+ if cache_node_ids_to_remove is not None:
+ self.build_list_params(params,
+ cache_node_ids_to_remove,
+ 'CacheNodeIdsToRemove.member')
+ if cache_security_group_names is not None:
+ self.build_list_params(params,
+ cache_security_group_names,
+ 'CacheSecurityGroupNames.member')
+ if security_group_ids is not None:
+ self.build_list_params(params,
+ security_group_ids,
+ 'SecurityGroupIds.member')
+ if preferred_maintenance_window is not None:
+ params['PreferredMaintenanceWindow'] = preferred_maintenance_window
+ if notification_topic_arn is not None:
+ params['NotificationTopicArn'] = notification_topic_arn
+ if cache_parameter_group_name is not None:
+ params['CacheParameterGroupName'] = cache_parameter_group_name
+ if notification_topic_status is not None:
+ params['NotificationTopicStatus'] = notification_topic_status
+ if apply_immediately is not None:
+ params['ApplyImmediately'] = str(
+ apply_immediately).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()
+ return self._make_request(
+ action='ModifyCacheCluster',
+ verb='POST',
+ path='/', params=params)
+
+ def modify_cache_parameter_group(self, cache_parameter_group_name,
+ parameter_name_values):
+ """
+ Modifies the parameters of a CacheParameterGroup. To modify
+ more than one parameter, submit a list of ParameterName and
+ ParameterValue parameters. A maximum of 20 parameters can be
+ modified in a single request.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the cache parameter
+ group to modify.
+
+ :type parameter_name_values: list
+ :param parameter_name_values: An array of parameter names and values
+ for the parameter update. At least one parameter name and value
+ must be supplied; subsequent arguments are optional. A maximum of
+ 20 parameters may be modified in a single request.
+
+ """
+ params = {
+ 'CacheParameterGroupName': cache_parameter_group_name,
+ }
+ self.build_complex_list_params(
+ params, parameter_name_values,
+ 'ParameterNameValues.member',
+ ('ParameterName', 'ParameterValue'))
+ return self._make_request(
+ action='ModifyCacheParameterGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def modify_cache_subnet_group(self, cache_subnet_group_name,
+ cache_subnet_group_description=None,
+ subnet_ids=None):
+ """
+ Modifies an existing Cache Subnet Group.
+
+ :type cache_subnet_group_name: string
+ :param cache_subnet_group_name: The name for the Cache Subnet Group.
+ This value is stored as a lowercase string. Constraints: Must
+ contain no more than 255 alphanumeric characters or hyphens.
+ Example: `mysubnetgroup`
+
+ :type cache_subnet_group_description: string
+ :param cache_subnet_group_description: The description for the Cache
+ Subnet Group.
+
+ :type subnet_ids: list
+ :param subnet_ids: The EC2 Subnet IDs for the Cache Subnet Group.
+
+ """
+ params = {'CacheSubnetGroupName': cache_subnet_group_name, }
+ if cache_subnet_group_description is not None:
+ params['CacheSubnetGroupDescription'] = cache_subnet_group_description
+ if subnet_ids is not None:
+ self.build_list_params(params,
+ subnet_ids,
+ 'SubnetIds.member')
+ return self._make_request(
+ action='ModifyCacheSubnetGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def purchase_reserved_cache_nodes_offering(self,
+ reserved_cache_nodes_offering_id,
+ reserved_cache_node_id=None,
+ cache_node_count=None):
+ """
+ Purchases a reserved Cache Node offering.
+
+ :type reserved_cache_nodes_offering_id: string
+ :param reserved_cache_nodes_offering_id: The ID of the Reserved Cache
+ Node offering to purchase. Example:
+ 438012d3-4052-4cc7-b2e3-8d3372e0e706
+
+ :type reserved_cache_node_id: string
+ :param reserved_cache_node_id: Customer-specified identifier to track
+ this reservation. Example: myreservationID
+
+ :type cache_node_count: integer
+ :param cache_node_count: The number of instances to reserve. Default:
+ `1`
+
+ """
+ params = {
+ 'ReservedCacheNodesOfferingId': reserved_cache_nodes_offering_id,
+ }
+ if reserved_cache_node_id is not None:
+ params['ReservedCacheNodeId'] = reserved_cache_node_id
+ if cache_node_count is not None:
+ params['CacheNodeCount'] = cache_node_count
+ return self._make_request(
+ action='PurchaseReservedCacheNodesOffering',
+ verb='POST',
+ path='/', params=params)
+
+ def reboot_cache_cluster(self, cache_cluster_id,
+ cache_node_ids_to_reboot):
+ """
+ Reboots some (or all) of the cache cluster nodes within a
+ previously provisioned ElastiCache cluster. This API results
+ in the application of modified CacheParameterGroup parameters
+ to the cache cluster. This action is taken as soon as
+ possible, and results in a momentary outage to the cache
+ cluster during which the cache cluster status is set to
+ rebooting. During that momentary outage, the contents of the
+ cache (for each cache cluster node being rebooted) are lost. A
+ CacheCluster event is created when the reboot is completed.
+
+ :type cache_cluster_id: string
+ :param cache_cluster_id: The Cache Cluster identifier. This parameter
+ is stored as a lowercase string.
+
+ :type cache_node_ids_to_reboot: list
+ :param cache_node_ids_to_reboot: A list of Cache Cluster Node Ids to
+ reboot. To reboot an entire cache cluster, specify all cache
+ cluster node Ids.
+
+ """
+ params = {'CacheClusterId': cache_cluster_id, }
+ self.build_list_params(params,
+ cache_node_ids_to_reboot,
+ 'CacheNodeIdsToReboot.member')
+ return self._make_request(
+ action='RebootCacheCluster',
+ verb='POST',
+ path='/', params=params)
+
+ def reset_cache_parameter_group(self, cache_parameter_group_name,
+ parameter_name_values,
+ reset_all_parameters=None):
+ """
+ Modifies the parameters of a CacheParameterGroup to the engine
+ or system default value. To reset specific parameters submit a
+ list of the parameter names. To reset the entire
+ CacheParameterGroup, specify the CacheParameterGroup name and
+ ResetAllParameters parameters.
+
+ :type cache_parameter_group_name: string
+ :param cache_parameter_group_name: The name of the Cache Parameter
+ Group.
+
+ :type reset_all_parameters: boolean
+ :param reset_all_parameters: Specifies whether ( true ) or not ( false
+ ) to reset all parameters in the Cache Parameter Group to default
+ values.
+
+ :type parameter_name_values: list
+ :param parameter_name_values: An array of parameter names which should
+ be reset. If not resetting the entire CacheParameterGroup, at least
+ one parameter name must be supplied.
+
+ """
+ params = {
+ 'CacheParameterGroupName': cache_parameter_group_name,
+ }
+ self.build_complex_list_params(
+ params, parameter_name_values,
+ 'ParameterNameValues.member',
+ ('ParameterName', 'ParameterValue'))
+ if reset_all_parameters is not None:
+ params['ResetAllParameters'] = str(
+ reset_all_parameters).lower()
+ return self._make_request(
+ action='ResetCacheParameterGroup',
+ verb='POST',
+ path='/', params=params)
+
+ def revoke_cache_security_group_ingress(self, cache_security_group_name,
+ ec2_security_group_name,
+ ec2_security_group_owner_id):
+ """
+ Revokes ingress from a CacheSecurityGroup for previously
+ authorized EC2 Security Groups.
+
+ :type cache_security_group_name: string
+ :param cache_security_group_name: The name of the Cache Security Group
+ to revoke ingress from.
+
+ :type ec2_security_group_name: string
+ :param ec2_security_group_name: The name of the EC2 Security Group to
+ revoke access from.
+
+ :type ec2_security_group_owner_id: string
+ :param ec2_security_group_owner_id: The AWS Account Number of the owner
+ of the security group specified in the EC2SecurityGroupName
+ parameter. The AWS Access Key ID is not an acceptable value.
+
+ """
+ params = {
+ 'CacheSecurityGroupName': cache_security_group_name,
+ 'EC2SecurityGroupName': ec2_security_group_name,
+ 'EC2SecurityGroupOwnerId': ec2_security_group_owner_id,
+ }
+ return self._make_request(
+ action='RevokeCacheSecurityGroupIngress',
+ 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:
+ raise self.ResponseError(response.status, response.reason, body)

Powered by Google App Engine
This is Rietveld 408576698