comparison env/lib/python3.9/site-packages/boto/elasticache/layer1.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 # Copyright (c) 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved
2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the
5 # "Software"), to deal in the Software without restriction, including
6 # without limitation the rights to use, copy, modify, merge, publish, dis-
7 # tribute, sublicense, and/or sell copies of the Software, and to permit
8 # persons to whom the Software is furnished to do so, subject to the fol-
9 # lowing conditions:
10 #
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
13 #
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 # IN THE SOFTWARE.
21 #
22
23 import boto
24 from boto.compat import json
25 from boto.connection import AWSQueryConnection
26 from boto.regioninfo import RegionInfo
27
28
29 class ElastiCacheConnection(AWSQueryConnection):
30 """
31 Amazon ElastiCache
32 Amazon ElastiCache is a web service that makes it easier to set
33 up, operate, and scale a distributed cache in the cloud.
34
35 With ElastiCache, customers gain all of the benefits of a high-
36 performance, in-memory cache with far less of the administrative
37 burden of launching and managing a distributed cache. The service
38 makes set-up, scaling, and cluster failure handling much simpler
39 than in a self-managed cache deployment.
40
41 In addition, through integration with Amazon CloudWatch, customers
42 get enhanced visibility into the key performance statistics
43 associated with their cache and can receive alarms if a part of
44 their cache runs hot.
45 """
46 APIVersion = "2013-06-15"
47 DefaultRegionName = "us-east-1"
48 DefaultRegionEndpoint = "elasticache.us-east-1.amazonaws.com"
49
50 def __init__(self, **kwargs):
51 region = kwargs.get('region')
52 if not region:
53 region = RegionInfo(self, self.DefaultRegionName,
54 self.DefaultRegionEndpoint)
55 else:
56 del kwargs['region']
57 kwargs['host'] = region.endpoint
58 super(ElastiCacheConnection, self).__init__(**kwargs)
59 self.region = region
60
61 def _required_auth_capability(self):
62 return ['hmac-v4']
63
64 def authorize_cache_security_group_ingress(self,
65 cache_security_group_name,
66 ec2_security_group_name,
67 ec2_security_group_owner_id):
68 """
69 The AuthorizeCacheSecurityGroupIngress operation allows
70 network ingress to a cache security group. Applications using
71 ElastiCache must be running on Amazon EC2, and Amazon EC2
72 security groups are used as the authorization mechanism.
73 You cannot authorize ingress from an Amazon EC2 security group
74 in one Region to an ElastiCache cluster in another Region.
75
76 :type cache_security_group_name: string
77 :param cache_security_group_name: The cache security group which will
78 allow network ingress.
79
80 :type ec2_security_group_name: string
81 :param ec2_security_group_name: The Amazon EC2 security group to be
82 authorized for ingress to the cache security group.
83
84 :type ec2_security_group_owner_id: string
85 :param ec2_security_group_owner_id: The AWS account number of the
86 Amazon EC2 security group owner. Note that this is not the same
87 thing as an AWS access key ID - you must provide a valid AWS
88 account number for this parameter.
89
90 """
91 params = {
92 'CacheSecurityGroupName': cache_security_group_name,
93 'EC2SecurityGroupName': ec2_security_group_name,
94 'EC2SecurityGroupOwnerId': ec2_security_group_owner_id,
95 }
96 return self._make_request(
97 action='AuthorizeCacheSecurityGroupIngress',
98 verb='POST',
99 path='/', params=params)
100
101 def create_cache_cluster(self, cache_cluster_id, num_cache_nodes=None,
102 cache_node_type=None, engine=None,
103 replication_group_id=None, engine_version=None,
104 cache_parameter_group_name=None,
105 cache_subnet_group_name=None,
106 cache_security_group_names=None,
107 security_group_ids=None, snapshot_arns=None,
108 preferred_availability_zone=None,
109 preferred_maintenance_window=None, port=None,
110 notification_topic_arn=None,
111 auto_minor_version_upgrade=None):
112 """
113 The CreateCacheCluster operation creates a new cache cluster.
114 All nodes in the cache cluster run the same protocol-compliant
115 cache engine software - either Memcached or Redis.
116
117 :type cache_cluster_id: string
118 :param cache_cluster_id:
119 The cache cluster identifier. This parameter is stored as a lowercase
120 string.
121
122 Constraints:
123
124
125 + Must contain from 1 to 20 alphanumeric characters or hyphens.
126 + First character must be a letter.
127 + Cannot end with a hyphen or contain two consecutive hyphens.
128
129 :type replication_group_id: string
130 :param replication_group_id: The replication group to which this cache
131 cluster should belong. If this parameter is specified, the cache
132 cluster will be added to the specified replication group as a read
133 replica; otherwise, the cache cluster will be a standalone primary
134 that is not part of any replication group.
135
136 :type num_cache_nodes: integer
137 :param num_cache_nodes: The initial number of cache nodes that the
138 cache cluster will have.
139 For a Memcached cluster, valid values are between 1 and 20. If you need
140 to exceed this limit, please fill out the ElastiCache Limit
141 Increase Request form at ``_ .
142
143 For Redis, only single-node cache clusters are supported at this time,
144 so the value for this parameter must be 1.
145
146 :type cache_node_type: string
147 :param cache_node_type: The compute and memory capacity of the nodes in
148 the cache cluster.
149 Valid values for Memcached:
150
151 `cache.t1.micro` | `cache.m1.small` | `cache.m1.medium` |
152 `cache.m1.large` | `cache.m1.xlarge` | `cache.m3.xlarge` |
153 `cache.m3.2xlarge` | `cache.m2.xlarge` | `cache.m2.2xlarge` |
154 `cache.m2.4xlarge` | `cache.c1.xlarge`
155
156 Valid values for Redis:
157
158 `cache.t1.micro` | `cache.m1.small` | `cache.m1.medium` |
159 `cache.m1.large` | `cache.m1.xlarge` | `cache.m2.xlarge` |
160 `cache.m2.2xlarge` | `cache.m2.4xlarge` | `cache.c1.xlarge`
161
162 For a complete listing of cache node types and specifications, see `.
163
164 :type engine: string
165 :param engine: The name of the cache engine to be used for this cache
166 cluster.
167 Valid values for this parameter are:
168
169 `memcached` | `redis`
170
171 :type engine_version: string
172 :param engine_version: The version number of the cache engine to be
173 used for this cluster. To view the supported cache engine versions,
174 use the DescribeCacheEngineVersions operation.
175
176 :type cache_parameter_group_name: string
177 :param cache_parameter_group_name: The name of the cache parameter
178 group to associate with this cache cluster. If this argument is
179 omitted, the default cache parameter group for the specified engine
180 will be used.
181
182 :type cache_subnet_group_name: string
183 :param cache_subnet_group_name: The name of the cache subnet group to
184 be used for the cache cluster.
185 Use this parameter only when you are creating a cluster in an Amazon
186 Virtual Private Cloud (VPC).
187
188 :type cache_security_group_names: list
189 :param cache_security_group_names: A list of cache security group names
190 to associate with this cache cluster.
191 Use this parameter only when you are creating a cluster outside of an
192 Amazon Virtual Private Cloud (VPC).
193
194 :type security_group_ids: list
195 :param security_group_ids: One or more VPC security groups associated
196 with the cache cluster.
197 Use this parameter only when you are creating a cluster in an Amazon
198 Virtual Private Cloud (VPC).
199
200 :type snapshot_arns: list
201 :param snapshot_arns: A single-element string list containing an Amazon
202 Resource Name (ARN) that uniquely identifies a Redis RDB snapshot
203 file stored in Amazon S3. The snapshot file will be used to
204 populate the Redis cache in the new cache cluster. The Amazon S3
205 object name in the ARN cannot contain any commas.
206 Here is an example of an Amazon S3 ARN:
207 `arn:aws:s3:::my_bucket/snapshot1.rdb`
208
209 **Note:** This parameter is only valid if the `Engine` parameter is
210 `redis`.
211
212 :type preferred_availability_zone: string
213 :param preferred_availability_zone: The EC2 Availability Zone in which
214 the cache cluster will be created.
215 All cache nodes belonging to a cache cluster are placed in the
216 preferred availability zone.
217
218 Default: System chosen availability zone.
219
220 :type preferred_maintenance_window: string
221 :param preferred_maintenance_window: The weekly time range (in UTC)
222 during which system maintenance can occur.
223 Example: `sun:05:00-sun:09:00`
224
225 :type port: integer
226 :param port: The port number on which each of the cache nodes will
227 accept connections.
228
229 :type notification_topic_arn: string
230 :param notification_topic_arn:
231 The Amazon Resource Name (ARN) of the Amazon Simple Notification
232 Service (SNS) topic to which notifications will be sent.
233
234 The Amazon SNS topic owner must be the same as the cache cluster owner.
235
236 :type auto_minor_version_upgrade: boolean
237 :param auto_minor_version_upgrade: Determines whether minor engine
238 upgrades will be applied automatically to the cache cluster during
239 the maintenance window. A value of `True` allows these upgrades to
240 occur; `False` disables automatic upgrades.
241 Default: `True`
242
243 """
244 params = {
245 'CacheClusterId': cache_cluster_id,
246 }
247 if num_cache_nodes is not None:
248 params['NumCacheNodes'] = num_cache_nodes
249 if cache_node_type is not None:
250 params['CacheNodeType'] = cache_node_type
251 if engine is not None:
252 params['Engine'] = engine
253 if replication_group_id is not None:
254 params['ReplicationGroupId'] = replication_group_id
255 if engine_version is not None:
256 params['EngineVersion'] = engine_version
257 if cache_parameter_group_name is not None:
258 params['CacheParameterGroupName'] = cache_parameter_group_name
259 if cache_subnet_group_name is not None:
260 params['CacheSubnetGroupName'] = cache_subnet_group_name
261 if cache_security_group_names is not None:
262 self.build_list_params(params,
263 cache_security_group_names,
264 'CacheSecurityGroupNames.member')
265 if security_group_ids is not None:
266 self.build_list_params(params,
267 security_group_ids,
268 'SecurityGroupIds.member')
269 if snapshot_arns is not None:
270 self.build_list_params(params,
271 snapshot_arns,
272 'SnapshotArns.member')
273 if preferred_availability_zone is not None:
274 params['PreferredAvailabilityZone'] = preferred_availability_zone
275 if preferred_maintenance_window is not None:
276 params['PreferredMaintenanceWindow'] = preferred_maintenance_window
277 if port is not None:
278 params['Port'] = port
279 if notification_topic_arn is not None:
280 params['NotificationTopicArn'] = notification_topic_arn
281 if auto_minor_version_upgrade is not None:
282 params['AutoMinorVersionUpgrade'] = str(
283 auto_minor_version_upgrade).lower()
284 return self._make_request(
285 action='CreateCacheCluster',
286 verb='POST',
287 path='/', params=params)
288
289 def create_cache_parameter_group(self, cache_parameter_group_name,
290 cache_parameter_group_family,
291 description):
292 """
293 The CreateCacheParameterGroup operation creates a new cache
294 parameter group. A cache parameter group is a collection of
295 parameters that you apply to all of the nodes in a cache
296 cluster.
297
298 :type cache_parameter_group_name: string
299 :param cache_parameter_group_name: A user-specified name for the cache
300 parameter group.
301
302 :type cache_parameter_group_family: string
303 :param cache_parameter_group_family: The name of the cache parameter
304 group family the cache parameter group can be used with.
305 Valid values are: `memcached1.4` | `redis2.6`
306
307 :type description: string
308 :param description: A user-specified description for the cache
309 parameter group.
310
311 """
312 params = {
313 'CacheParameterGroupName': cache_parameter_group_name,
314 'CacheParameterGroupFamily': cache_parameter_group_family,
315 'Description': description,
316 }
317 return self._make_request(
318 action='CreateCacheParameterGroup',
319 verb='POST',
320 path='/', params=params)
321
322 def create_cache_security_group(self, cache_security_group_name,
323 description):
324 """
325 The CreateCacheSecurityGroup operation creates a new cache
326 security group. Use a cache security group to control access
327 to one or more cache clusters.
328
329 Cache security groups are only used when you are creating a
330 cluster outside of an Amazon Virtual Private Cloud (VPC). If
331 you are creating a cluster inside of a VPC, use a cache subnet
332 group instead. For more information, see
333 CreateCacheSubnetGroup .
334
335 :type cache_security_group_name: string
336 :param cache_security_group_name: A name for the cache security group.
337 This value is stored as a lowercase string.
338 Constraints: Must contain no more than 255 alphanumeric characters.
339 Must not be the word "Default".
340
341 Example: `mysecuritygroup`
342
343 :type description: string
344 :param description: A description for the cache security group.
345
346 """
347 params = {
348 'CacheSecurityGroupName': cache_security_group_name,
349 'Description': description,
350 }
351 return self._make_request(
352 action='CreateCacheSecurityGroup',
353 verb='POST',
354 path='/', params=params)
355
356 def create_cache_subnet_group(self, cache_subnet_group_name,
357 cache_subnet_group_description, subnet_ids):
358 """
359 The CreateCacheSubnetGroup operation creates a new cache
360 subnet group.
361
362 Use this parameter only when you are creating a cluster in an
363 Amazon Virtual Private Cloud (VPC).
364
365 :type cache_subnet_group_name: string
366 :param cache_subnet_group_name: A name for the cache subnet group. This
367 value is stored as a lowercase string.
368 Constraints: Must contain no more than 255 alphanumeric characters or
369 hyphens.
370
371 Example: `mysubnetgroup`
372
373 :type cache_subnet_group_description: string
374 :param cache_subnet_group_description: A description for the cache
375 subnet group.
376
377 :type subnet_ids: list
378 :param subnet_ids: A list of VPC subnet IDs for the cache subnet group.
379
380 """
381 params = {
382 'CacheSubnetGroupName': cache_subnet_group_name,
383 'CacheSubnetGroupDescription': cache_subnet_group_description,
384 }
385 self.build_list_params(params,
386 subnet_ids,
387 'SubnetIds.member')
388 return self._make_request(
389 action='CreateCacheSubnetGroup',
390 verb='POST',
391 path='/', params=params)
392
393 def create_replication_group(self, replication_group_id,
394 primary_cluster_id,
395 replication_group_description):
396 """
397 The CreateReplicationGroup operation creates a replication
398 group. A replication group is a collection of cache clusters,
399 where one of the clusters is a read/write primary and the
400 other clusters are read-only replicas. Writes to the primary
401 are automatically propagated to the replicas.
402
403 When you create a replication group, you must specify an
404 existing cache cluster that is in the primary role. When the
405 replication group has been successfully created, you can add
406 one or more read replica replicas to it, up to a total of five
407 read replicas.
408
409 :type replication_group_id: string
410 :param replication_group_id:
411 The replication group identifier. This parameter is stored as a
412 lowercase string.
413
414 Constraints:
415
416
417 + Must contain from 1 to 20 alphanumeric characters or hyphens.
418 + First character must be a letter.
419 + Cannot end with a hyphen or contain two consecutive hyphens.
420
421 :type primary_cluster_id: string
422 :param primary_cluster_id: The identifier of the cache cluster that
423 will serve as the primary for this replication group. This cache
424 cluster must already exist and have a status of available .
425
426 :type replication_group_description: string
427 :param replication_group_description: A user-specified description for
428 the replication group.
429
430 """
431 params = {
432 'ReplicationGroupId': replication_group_id,
433 'PrimaryClusterId': primary_cluster_id,
434 'ReplicationGroupDescription': replication_group_description,
435 }
436 return self._make_request(
437 action='CreateReplicationGroup',
438 verb='POST',
439 path='/', params=params)
440
441 def delete_cache_cluster(self, cache_cluster_id):
442 """
443 The DeleteCacheCluster operation deletes a previously
444 provisioned cache cluster. DeleteCacheCluster deletes all
445 associated cache nodes, node endpoints and the cache cluster
446 itself. When you receive a successful response from this
447 operation, Amazon ElastiCache immediately begins deleting the
448 cache cluster; you cannot cancel or revert this operation.
449
450 :type cache_cluster_id: string
451 :param cache_cluster_id: The cache cluster identifier for the cluster
452 to be deleted. This parameter is not case sensitive.
453
454 """
455 params = {'CacheClusterId': cache_cluster_id, }
456 return self._make_request(
457 action='DeleteCacheCluster',
458 verb='POST',
459 path='/', params=params)
460
461 def delete_cache_parameter_group(self, cache_parameter_group_name):
462 """
463 The DeleteCacheParameterGroup operation deletes the specified
464 cache parameter group. You cannot delete a cache parameter
465 group if it is associated with any cache clusters.
466
467 :type cache_parameter_group_name: string
468 :param cache_parameter_group_name:
469 The name of the cache parameter group to delete.
470
471 The specified cache security group must not be associated with any
472 cache clusters.
473
474 """
475 params = {
476 'CacheParameterGroupName': cache_parameter_group_name,
477 }
478 return self._make_request(
479 action='DeleteCacheParameterGroup',
480 verb='POST',
481 path='/', params=params)
482
483 def delete_cache_security_group(self, cache_security_group_name):
484 """
485 The DeleteCacheSecurityGroup operation deletes a cache
486 security group.
487 You cannot delete a cache security group if it is associated
488 with any cache clusters.
489
490 :type cache_security_group_name: string
491 :param cache_security_group_name:
492 The name of the cache security group to delete.
493
494 You cannot delete the default security group.
495
496 """
497 params = {
498 'CacheSecurityGroupName': cache_security_group_name,
499 }
500 return self._make_request(
501 action='DeleteCacheSecurityGroup',
502 verb='POST',
503 path='/', params=params)
504
505 def delete_cache_subnet_group(self, cache_subnet_group_name):
506 """
507 The DeleteCacheSubnetGroup operation deletes a cache subnet
508 group.
509 You cannot delete a cache subnet group if it is associated
510 with any cache clusters.
511
512 :type cache_subnet_group_name: string
513 :param cache_subnet_group_name: The name of the cache subnet group to
514 delete.
515 Constraints: Must contain no more than 255 alphanumeric characters or
516 hyphens.
517
518 """
519 params = {'CacheSubnetGroupName': cache_subnet_group_name, }
520 return self._make_request(
521 action='DeleteCacheSubnetGroup',
522 verb='POST',
523 path='/', params=params)
524
525 def delete_replication_group(self, replication_group_id):
526 """
527 The DeleteReplicationGroup operation deletes an existing
528 replication group. DeleteReplicationGroup deletes the primary
529 cache cluster and all of the read replicas in the replication
530 group. When you receive a successful response from this
531 operation, Amazon ElastiCache immediately begins deleting the
532 entire replication group; you cannot cancel or revert this
533 operation.
534
535 :type replication_group_id: string
536 :param replication_group_id: The identifier for the replication group
537 to be deleted. This parameter is not case sensitive.
538
539 """
540 params = {'ReplicationGroupId': replication_group_id, }
541 return self._make_request(
542 action='DeleteReplicationGroup',
543 verb='POST',
544 path='/', params=params)
545
546 def describe_cache_clusters(self, cache_cluster_id=None,
547 max_records=None, marker=None,
548 show_cache_node_info=None):
549 """
550 The DescribeCacheClusters operation returns information about
551 all provisioned cache clusters if no cache cluster identifier
552 is specified, or about a specific cache cluster if a cache
553 cluster identifier is supplied.
554
555 By default, abbreviated information about the cache
556 clusters(s) will be returned. You can use the optional
557 ShowDetails flag to retrieve detailed information about the
558 cache nodes associated with the cache clusters. These details
559 include the DNS address and port for the cache node endpoint.
560
561 If the cluster is in the CREATING state, only cluster level
562 information will be displayed until all of the nodes are
563 successfully provisioned.
564
565 If the cluster is in the DELETING state, only cluster level
566 information will be displayed.
567
568 If cache nodes are currently being added to the cache cluster,
569 node endpoint information and creation time for the additional
570 nodes will not be displayed until they are completely
571 provisioned. When the cache cluster state is available , the
572 cluster is ready for use.
573
574 If cache nodes are currently being removed from the cache
575 cluster, no endpoint information for the removed nodes is
576 displayed.
577
578 :type cache_cluster_id: string
579 :param cache_cluster_id: The user-supplied cluster identifier. If this
580 parameter is specified, only information about that specific cache
581 cluster is returned. This parameter isn't case sensitive.
582
583 :type max_records: integer
584 :param max_records: The maximum number of records to include in the
585 response. If more records exist than the specified `MaxRecords`
586 value, a marker is included in the response so that the remaining
587 results can be retrieved.
588 Default: 100
589
590 Constraints: minimum 20; maximum 100.
591
592 :type marker: string
593 :param marker: An optional marker returned from a prior request. Use
594 this marker for pagination of results from this operation. If this
595 parameter is specified, the response includes only records beyond
596 the marker, up to the value specified by MaxRecords .
597
598 :type show_cache_node_info: boolean
599 :param show_cache_node_info: An optional flag that can be included in
600 the DescribeCacheCluster request to retrieve information about the
601 individual cache nodes.
602
603 """
604 params = {}
605 if cache_cluster_id is not None:
606 params['CacheClusterId'] = cache_cluster_id
607 if max_records is not None:
608 params['MaxRecords'] = max_records
609 if marker is not None:
610 params['Marker'] = marker
611 if show_cache_node_info is not None:
612 params['ShowCacheNodeInfo'] = str(
613 show_cache_node_info).lower()
614 return self._make_request(
615 action='DescribeCacheClusters',
616 verb='POST',
617 path='/', params=params)
618
619 def describe_cache_engine_versions(self, engine=None,
620 engine_version=None,
621 cache_parameter_group_family=None,
622 max_records=None, marker=None,
623 default_only=None):
624 """
625 The DescribeCacheEngineVersions operation returns a list of
626 the available cache engines and their versions.
627
628 :type engine: string
629 :param engine: The cache engine to return. Valid values: `memcached` |
630 `redis`
631
632 :type engine_version: string
633 :param engine_version: The cache engine version to return.
634 Example: `1.4.14`
635
636 :type cache_parameter_group_family: string
637 :param cache_parameter_group_family:
638 The name of a specific cache parameter group family to return details
639 for.
640
641 Constraints:
642
643
644 + Must be 1 to 255 alphanumeric characters
645 + First character must be a letter
646 + Cannot end with a hyphen or contain two consecutive hyphens
647
648 :type max_records: integer
649 :param max_records: The maximum number of records to include in the
650 response. If more records exist than the specified `MaxRecords`
651 value, a marker is included in the response so that the remaining
652 results can be retrieved.
653 Default: 100
654
655 Constraints: minimum 20; maximum 100.
656
657 :type marker: string
658 :param marker: An optional marker returned from a prior request. Use
659 this marker for pagination of results from this operation. If this
660 parameter is specified, the response includes only records beyond
661 the marker, up to the value specified by MaxRecords .
662
663 :type default_only: boolean
664 :param default_only: If true , specifies that only the default version
665 of the specified engine or engine and major version combination is
666 to be returned.
667
668 """
669 params = {}
670 if engine is not None:
671 params['Engine'] = engine
672 if engine_version is not None:
673 params['EngineVersion'] = engine_version
674 if cache_parameter_group_family is not None:
675 params['CacheParameterGroupFamily'] = cache_parameter_group_family
676 if max_records is not None:
677 params['MaxRecords'] = max_records
678 if marker is not None:
679 params['Marker'] = marker
680 if default_only is not None:
681 params['DefaultOnly'] = str(
682 default_only).lower()
683 return self._make_request(
684 action='DescribeCacheEngineVersions',
685 verb='POST',
686 path='/', params=params)
687
688 def describe_cache_parameter_groups(self,
689 cache_parameter_group_name=None,
690 max_records=None, marker=None):
691 """
692 The DescribeCacheParameterGroups operation returns a list of
693 cache parameter group descriptions. If a cache parameter group
694 name is specified, the list will contain only the descriptions
695 for that group.
696
697 :type cache_parameter_group_name: string
698 :param cache_parameter_group_name: The name of a specific cache
699 parameter group to return details for.
700
701 :type max_records: integer
702 :param max_records: The maximum number of records to include in the
703 response. If more records exist than the specified `MaxRecords`
704 value, a marker is included in the response so that the remaining
705 results can be retrieved.
706 Default: 100
707
708 Constraints: minimum 20; maximum 100.
709
710 :type marker: string
711 :param marker: An optional marker returned from a prior request. Use
712 this marker for pagination of results from this operation. If this
713 parameter is specified, the response includes only records beyond
714 the marker, up to the value specified by MaxRecords .
715
716 """
717 params = {}
718 if cache_parameter_group_name is not None:
719 params['CacheParameterGroupName'] = cache_parameter_group_name
720 if max_records is not None:
721 params['MaxRecords'] = max_records
722 if marker is not None:
723 params['Marker'] = marker
724 return self._make_request(
725 action='DescribeCacheParameterGroups',
726 verb='POST',
727 path='/', params=params)
728
729 def describe_cache_parameters(self, cache_parameter_group_name,
730 source=None, max_records=None, marker=None):
731 """
732 The DescribeCacheParameters operation returns the detailed
733 parameter list for a particular cache parameter group.
734
735 :type cache_parameter_group_name: string
736 :param cache_parameter_group_name: The name of a specific cache
737 parameter group to return details for.
738
739 :type source: string
740 :param source: The parameter types to return.
741 Valid values: `user` | `system` | `engine-default`
742
743 :type max_records: integer
744 :param max_records: The maximum number of records to include in the
745 response. If more records exist than the specified `MaxRecords`
746 value, a marker is included in the response so that the remaining
747 results can be retrieved.
748 Default: 100
749
750 Constraints: minimum 20; maximum 100.
751
752 :type marker: string
753 :param marker: An optional marker returned from a prior request. Use
754 this marker for pagination of results from this operation. If this
755 parameter is specified, the response includes only records beyond
756 the marker, up to the value specified by MaxRecords .
757
758 """
759 params = {
760 'CacheParameterGroupName': cache_parameter_group_name,
761 }
762 if source is not None:
763 params['Source'] = source
764 if max_records is not None:
765 params['MaxRecords'] = max_records
766 if marker is not None:
767 params['Marker'] = marker
768 return self._make_request(
769 action='DescribeCacheParameters',
770 verb='POST',
771 path='/', params=params)
772
773 def describe_cache_security_groups(self, cache_security_group_name=None,
774 max_records=None, marker=None):
775 """
776 The DescribeCacheSecurityGroups operation returns a list of
777 cache security group descriptions. If a cache security group
778 name is specified, the list will contain only the description
779 of that group.
780
781 :type cache_security_group_name: string
782 :param cache_security_group_name: The name of the cache security group
783 to return details for.
784
785 :type max_records: integer
786 :param max_records: The maximum number of records to include in the
787 response. If more records exist than the specified `MaxRecords`
788 value, a marker is included in the response so that the remaining
789 results can be retrieved.
790 Default: 100
791
792 Constraints: minimum 20; maximum 100.
793
794 :type marker: string
795 :param marker: An optional marker returned from a prior request. Use
796 this marker for pagination of results from this operation. If this
797 parameter is specified, the response includes only records beyond
798 the marker, up to the value specified by MaxRecords .
799
800 """
801 params = {}
802 if cache_security_group_name is not None:
803 params['CacheSecurityGroupName'] = cache_security_group_name
804 if max_records is not None:
805 params['MaxRecords'] = max_records
806 if marker is not None:
807 params['Marker'] = marker
808 return self._make_request(
809 action='DescribeCacheSecurityGroups',
810 verb='POST',
811 path='/', params=params)
812
813 def describe_cache_subnet_groups(self, cache_subnet_group_name=None,
814 max_records=None, marker=None):
815 """
816 The DescribeCacheSubnetGroups operation returns a list of
817 cache subnet group descriptions. If a subnet group name is
818 specified, the list will contain only the description of that
819 group.
820
821 :type cache_subnet_group_name: string
822 :param cache_subnet_group_name: The name of the cache subnet group to
823 return details for.
824
825 :type max_records: integer
826 :param max_records: The maximum number of records to include in the
827 response. If more records exist than the specified `MaxRecords`
828 value, a marker is included in the response so that the remaining
829 results can be retrieved.
830 Default: 100
831
832 Constraints: minimum 20; maximum 100.
833
834 :type marker: string
835 :param marker: An optional marker returned from a prior request. Use
836 this marker for pagination of results from this operation. If this
837 parameter is specified, the response includes only records beyond
838 the marker, up to the value specified by MaxRecords .
839
840 """
841 params = {}
842 if cache_subnet_group_name is not None:
843 params['CacheSubnetGroupName'] = cache_subnet_group_name
844 if max_records is not None:
845 params['MaxRecords'] = max_records
846 if marker is not None:
847 params['Marker'] = marker
848 return self._make_request(
849 action='DescribeCacheSubnetGroups',
850 verb='POST',
851 path='/', params=params)
852
853 def describe_engine_default_parameters(self,
854 cache_parameter_group_family,
855 max_records=None, marker=None):
856 """
857 The DescribeEngineDefaultParameters operation returns the
858 default engine and system parameter information for the
859 specified cache engine.
860
861 :type cache_parameter_group_family: string
862 :param cache_parameter_group_family: The name of the cache parameter
863 group family. Valid values are: `memcached1.4` | `redis2.6`
864
865 :type max_records: integer
866 :param max_records: The maximum number of records to include in the
867 response. If more records exist than the specified `MaxRecords`
868 value, a marker is included in the response so that the remaining
869 results can be retrieved.
870 Default: 100
871
872 Constraints: minimum 20; maximum 100.
873
874 :type marker: string
875 :param marker: An optional marker returned from a prior request. Use
876 this marker for pagination of results from this operation. If this
877 parameter is specified, the response includes only records beyond
878 the marker, up to the value specified by MaxRecords .
879
880 """
881 params = {
882 'CacheParameterGroupFamily': cache_parameter_group_family,
883 }
884 if max_records is not None:
885 params['MaxRecords'] = max_records
886 if marker is not None:
887 params['Marker'] = marker
888 return self._make_request(
889 action='DescribeEngineDefaultParameters',
890 verb='POST',
891 path='/', params=params)
892
893 def describe_events(self, source_identifier=None, source_type=None,
894 start_time=None, end_time=None, duration=None,
895 max_records=None, marker=None):
896 """
897 The DescribeEvents operation returns events related to cache
898 clusters, cache security groups, and cache parameter groups.
899 You can obtain events specific to a particular cache cluster,
900 cache security group, or cache parameter group by providing
901 the name as a parameter.
902
903 By default, only the events occurring within the last hour are
904 returned; however, you can retrieve up to 14 days' worth of
905 events if necessary.
906
907 :type source_identifier: string
908 :param source_identifier: The identifier of the event source for which
909 events will be returned. If not specified, then all sources are
910 included in the response.
911
912 :type source_type: string
913 :param source_type: The event source to retrieve events for. If no
914 value is specified, all events are returned.
915 Valid values are: `cache-cluster` | `cache-parameter-group` | `cache-
916 security-group` | `cache-subnet-group`
917
918 :type start_time: timestamp
919 :param start_time: The beginning of the time interval to retrieve
920 events for, specified in ISO 8601 format.
921
922 :type end_time: timestamp
923 :param end_time: The end of the time interval for which to retrieve
924 events, specified in ISO 8601 format.
925
926 :type duration: integer
927 :param duration: The number of minutes' worth of events to retrieve.
928
929 :type max_records: integer
930 :param max_records: The maximum number of records to include in the
931 response. If more records exist than the specified `MaxRecords`
932 value, a marker is included in the response so that the remaining
933 results can be retrieved.
934 Default: 100
935
936 Constraints: minimum 20; maximum 100.
937
938 :type marker: string
939 :param marker: An optional marker returned from a prior request. Use
940 this marker for pagination of results from this operation. If this
941 parameter is specified, the response includes only records beyond
942 the marker, up to the value specified by MaxRecords .
943
944 """
945 params = {}
946 if source_identifier is not None:
947 params['SourceIdentifier'] = source_identifier
948 if source_type is not None:
949 params['SourceType'] = source_type
950 if start_time is not None:
951 params['StartTime'] = start_time
952 if end_time is not None:
953 params['EndTime'] = end_time
954 if duration is not None:
955 params['Duration'] = duration
956 if max_records is not None:
957 params['MaxRecords'] = max_records
958 if marker is not None:
959 params['Marker'] = marker
960 return self._make_request(
961 action='DescribeEvents',
962 verb='POST',
963 path='/', params=params)
964
965 def describe_replication_groups(self, replication_group_id=None,
966 max_records=None, marker=None):
967 """
968 The DescribeReplicationGroups operation returns information
969 about a particular replication group. If no identifier is
970 specified, DescribeReplicationGroups returns information about
971 all replication groups.
972
973 :type replication_group_id: string
974 :param replication_group_id: The identifier for the replication group
975 to be described. This parameter is not case sensitive.
976 If you do not specify this parameter, information about all replication
977 groups is returned.
978
979 :type max_records: integer
980 :param max_records: The maximum number of records to include in the
981 response. If more records exist than the specified `MaxRecords`
982 value, a marker is included in the response so that the remaining
983 results can be retrieved.
984 Default: 100
985
986 Constraints: minimum 20; maximum 100.
987
988 :type marker: string
989 :param marker: An optional marker returned from a prior request. Use
990 this marker for pagination of results from this operation. If this
991 parameter is specified, the response includes only records beyond
992 the marker, up to the value specified by MaxRecords .
993
994 """
995 params = {}
996 if replication_group_id is not None:
997 params['ReplicationGroupId'] = replication_group_id
998 if max_records is not None:
999 params['MaxRecords'] = max_records
1000 if marker is not None:
1001 params['Marker'] = marker
1002 return self._make_request(
1003 action='DescribeReplicationGroups',
1004 verb='POST',
1005 path='/', params=params)
1006
1007 def describe_reserved_cache_nodes(self, reserved_cache_node_id=None,
1008 reserved_cache_nodes_offering_id=None,
1009 cache_node_type=None, duration=None,
1010 product_description=None,
1011 offering_type=None, max_records=None,
1012 marker=None):
1013 """
1014 The DescribeReservedCacheNodes operation returns information
1015 about reserved cache nodes for this account, or about a
1016 specified reserved cache node.
1017
1018 :type reserved_cache_node_id: string
1019 :param reserved_cache_node_id: The reserved cache node identifier
1020 filter value. Use this parameter to show only the reservation that
1021 matches the specified reservation ID.
1022
1023 :type reserved_cache_nodes_offering_id: string
1024 :param reserved_cache_nodes_offering_id: The offering identifier filter
1025 value. Use this parameter to show only purchased reservations
1026 matching the specified offering identifier.
1027
1028 :type cache_node_type: string
1029 :param cache_node_type: The cache node type filter value. Use this
1030 parameter to show only those reservations matching the specified
1031 cache node type.
1032
1033 :type duration: string
1034 :param duration: The duration filter value, specified in years or
1035 seconds. Use this parameter to show only reservations for this
1036 duration.
1037 Valid Values: `1 | 3 | 31536000 | 94608000`
1038
1039 :type product_description: string
1040 :param product_description: The product description filter value. Use
1041 this parameter to show only those reservations matching the
1042 specified product description.
1043
1044 :type offering_type: string
1045 :param offering_type: The offering type filter value. Use this
1046 parameter to show only the available offerings matching the
1047 specified offering type.
1048 Valid values: `"Light Utilization" | "Medium Utilization" | "Heavy
1049 Utilization" `
1050
1051 :type max_records: integer
1052 :param max_records: The maximum number of records to include in the
1053 response. If more records exist than the specified `MaxRecords`
1054 value, a marker is included in the response so that the remaining
1055 results can be retrieved.
1056 Default: 100
1057
1058 Constraints: minimum 20; maximum 100.
1059
1060 :type marker: string
1061 :param marker: An optional marker returned from a prior request. Use
1062 this marker for pagination of results from this operation. If this
1063 parameter is specified, the response includes only records beyond
1064 the marker, up to the value specified by MaxRecords .
1065
1066 """
1067 params = {}
1068 if reserved_cache_node_id is not None:
1069 params['ReservedCacheNodeId'] = reserved_cache_node_id
1070 if reserved_cache_nodes_offering_id is not None:
1071 params['ReservedCacheNodesOfferingId'] = reserved_cache_nodes_offering_id
1072 if cache_node_type is not None:
1073 params['CacheNodeType'] = cache_node_type
1074 if duration is not None:
1075 params['Duration'] = duration
1076 if product_description is not None:
1077 params['ProductDescription'] = product_description
1078 if offering_type is not None:
1079 params['OfferingType'] = offering_type
1080 if max_records is not None:
1081 params['MaxRecords'] = max_records
1082 if marker is not None:
1083 params['Marker'] = marker
1084 return self._make_request(
1085 action='DescribeReservedCacheNodes',
1086 verb='POST',
1087 path='/', params=params)
1088
1089 def describe_reserved_cache_nodes_offerings(self,
1090 reserved_cache_nodes_offering_id=None,
1091 cache_node_type=None,
1092 duration=None,
1093 product_description=None,
1094 offering_type=None,
1095 max_records=None,
1096 marker=None):
1097 """
1098 The DescribeReservedCacheNodesOfferings operation lists
1099 available reserved cache node offerings.
1100
1101 :type reserved_cache_nodes_offering_id: string
1102 :param reserved_cache_nodes_offering_id: The offering identifier filter
1103 value. Use this parameter to show only the available offering that
1104 matches the specified reservation identifier.
1105 Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706`
1106
1107 :type cache_node_type: string
1108 :param cache_node_type: The cache node type filter value. Use this
1109 parameter to show only the available offerings matching the
1110 specified cache node type.
1111
1112 :type duration: string
1113 :param duration: Duration filter value, specified in years or seconds.
1114 Use this parameter to show only reservations for a given duration.
1115 Valid Values: `1 | 3 | 31536000 | 94608000`
1116
1117 :type product_description: string
1118 :param product_description: The product description filter value. Use
1119 this parameter to show only the available offerings matching the
1120 specified product description.
1121
1122 :type offering_type: string
1123 :param offering_type: The offering type filter value. Use this
1124 parameter to show only the available offerings matching the
1125 specified offering type.
1126 Valid Values: `"Light Utilization" | "Medium Utilization" | "Heavy
1127 Utilization" `
1128
1129 :type max_records: integer
1130 :param max_records: The maximum number of records to include in the
1131 response. If more records exist than the specified `MaxRecords`
1132 value, a marker is included in the response so that the remaining
1133 results can be retrieved.
1134 Default: 100
1135
1136 Constraints: minimum 20; maximum 100.
1137
1138 :type marker: string
1139 :param marker: An optional marker returned from a prior request. Use
1140 this marker for pagination of results from this operation. If this
1141 parameter is specified, the response includes only records beyond
1142 the marker, up to the value specified by MaxRecords .
1143
1144 """
1145 params = {}
1146 if reserved_cache_nodes_offering_id is not None:
1147 params['ReservedCacheNodesOfferingId'] = reserved_cache_nodes_offering_id
1148 if cache_node_type is not None:
1149 params['CacheNodeType'] = cache_node_type
1150 if duration is not None:
1151 params['Duration'] = duration
1152 if product_description is not None:
1153 params['ProductDescription'] = product_description
1154 if offering_type is not None:
1155 params['OfferingType'] = offering_type
1156 if max_records is not None:
1157 params['MaxRecords'] = max_records
1158 if marker is not None:
1159 params['Marker'] = marker
1160 return self._make_request(
1161 action='DescribeReservedCacheNodesOfferings',
1162 verb='POST',
1163 path='/', params=params)
1164
1165 def modify_cache_cluster(self, cache_cluster_id, num_cache_nodes=None,
1166 cache_node_ids_to_remove=None,
1167 cache_security_group_names=None,
1168 security_group_ids=None,
1169 preferred_maintenance_window=None,
1170 notification_topic_arn=None,
1171 cache_parameter_group_name=None,
1172 notification_topic_status=None,
1173 apply_immediately=None, engine_version=None,
1174 auto_minor_version_upgrade=None):
1175 """
1176 The ModifyCacheCluster operation modifies the settings for a
1177 cache cluster. You can use this operation to change one or
1178 more cluster configuration parameters by specifying the
1179 parameters and the new values.
1180
1181 :type cache_cluster_id: string
1182 :param cache_cluster_id: The cache cluster identifier. This value is
1183 stored as a lowercase string.
1184
1185 :type num_cache_nodes: integer
1186 :param num_cache_nodes: The number of cache nodes that the cache
1187 cluster should have. If the value for NumCacheNodes is greater than
1188 the existing number of cache nodes, then more nodes will be added.
1189 If the value is less than the existing number of cache nodes, then
1190 cache nodes will be removed.
1191 If you are removing cache nodes, you must use the CacheNodeIdsToRemove
1192 parameter to provide the IDs of the specific cache nodes to be
1193 removed.
1194
1195 :type cache_node_ids_to_remove: list
1196 :param cache_node_ids_to_remove: A list of cache node IDs to be
1197 removed. A node ID is a numeric identifier (0001, 0002, etc.). This
1198 parameter is only valid when NumCacheNodes is less than the
1199 existing number of cache nodes. The number of cache node IDs
1200 supplied in this parameter must match the difference between the
1201 existing number of cache nodes in the cluster and the value of
1202 NumCacheNodes in the request.
1203
1204 :type cache_security_group_names: list
1205 :param cache_security_group_names: A list of cache security group names
1206 to authorize on this cache cluster. This change is asynchronously
1207 applied as soon as possible.
1208 This parameter can be used only with clusters that are created outside
1209 of an Amazon Virtual Private Cloud (VPC).
1210
1211 Constraints: Must contain no more than 255 alphanumeric characters.
1212 Must not be "Default".
1213
1214 :type security_group_ids: list
1215 :param security_group_ids: Specifies the VPC Security Groups associated
1216 with the cache cluster.
1217 This parameter can be used only with clusters that are created in an
1218 Amazon Virtual Private Cloud (VPC).
1219
1220 :type preferred_maintenance_window: string
1221 :param preferred_maintenance_window: The weekly time range (in UTC)
1222 during which system maintenance can occur. Note that system
1223 maintenance may result in an outage. This change is made
1224 immediately. If you are moving this window to the current time,
1225 there must be at least 120 minutes between the current time and end
1226 of the window to ensure that pending changes are applied.
1227
1228 :type notification_topic_arn: string
1229 :param notification_topic_arn:
1230 The Amazon Resource Name (ARN) of the SNS topic to which notifications
1231 will be sent.
1232
1233 The SNS topic owner must be same as the cache cluster owner.
1234
1235 :type cache_parameter_group_name: string
1236 :param cache_parameter_group_name: The name of the cache parameter
1237 group to apply to this cache cluster. This change is asynchronously
1238 applied as soon as possible for parameters when the
1239 ApplyImmediately parameter is specified as true for this request.
1240
1241 :type notification_topic_status: string
1242 :param notification_topic_status: The status of the Amazon SNS
1243 notification topic. Notifications are sent only if the status is
1244 active .
1245 Valid values: `active` | `inactive`
1246
1247 :type apply_immediately: boolean
1248 :param apply_immediately: If `True`, this parameter causes the
1249 modifications in this request and any pending modifications to be
1250 applied, asynchronously and as soon as possible, regardless of the
1251 PreferredMaintenanceWindow setting for the cache cluster.
1252 If `False`, then changes to the cache cluster are applied on the next
1253 maintenance reboot, or the next failure reboot, whichever occurs
1254 first.
1255
1256 Valid values: `True` | `False`
1257
1258 Default: `False`
1259
1260 :type engine_version: string
1261 :param engine_version: The upgraded version of the cache engine to be
1262 run on the cache cluster nodes.
1263
1264 :type auto_minor_version_upgrade: boolean
1265 :param auto_minor_version_upgrade: If `True`, then minor engine
1266 upgrades will be applied automatically to the cache cluster during
1267 the maintenance window.
1268 Valid values: `True` | `False`
1269
1270 Default: `True`
1271
1272 """
1273 params = {'CacheClusterId': cache_cluster_id, }
1274 if num_cache_nodes is not None:
1275 params['NumCacheNodes'] = num_cache_nodes
1276 if cache_node_ids_to_remove is not None:
1277 self.build_list_params(params,
1278 cache_node_ids_to_remove,
1279 'CacheNodeIdsToRemove.member')
1280 if cache_security_group_names is not None:
1281 self.build_list_params(params,
1282 cache_security_group_names,
1283 'CacheSecurityGroupNames.member')
1284 if security_group_ids is not None:
1285 self.build_list_params(params,
1286 security_group_ids,
1287 'SecurityGroupIds.member')
1288 if preferred_maintenance_window is not None:
1289 params['PreferredMaintenanceWindow'] = preferred_maintenance_window
1290 if notification_topic_arn is not None:
1291 params['NotificationTopicArn'] = notification_topic_arn
1292 if cache_parameter_group_name is not None:
1293 params['CacheParameterGroupName'] = cache_parameter_group_name
1294 if notification_topic_status is not None:
1295 params['NotificationTopicStatus'] = notification_topic_status
1296 if apply_immediately is not None:
1297 params['ApplyImmediately'] = str(
1298 apply_immediately).lower()
1299 if engine_version is not None:
1300 params['EngineVersion'] = engine_version
1301 if auto_minor_version_upgrade is not None:
1302 params['AutoMinorVersionUpgrade'] = str(
1303 auto_minor_version_upgrade).lower()
1304 return self._make_request(
1305 action='ModifyCacheCluster',
1306 verb='POST',
1307 path='/', params=params)
1308
1309 def modify_cache_parameter_group(self, cache_parameter_group_name,
1310 parameter_name_values):
1311 """
1312 The ModifyCacheParameterGroup operation modifies the
1313 parameters of a cache parameter group. You can modify up to 20
1314 parameters in a single request by submitting a list parameter
1315 name and value pairs.
1316
1317 :type cache_parameter_group_name: string
1318 :param cache_parameter_group_name: The name of the cache parameter
1319 group to modify.
1320
1321 :type parameter_name_values: list
1322 :param parameter_name_values: An array of parameter names and values
1323 for the parameter update. You must supply at least one parameter
1324 name and value; subsequent arguments are optional. A maximum of 20
1325 parameters may be modified per request.
1326
1327 """
1328 params = {
1329 'CacheParameterGroupName': cache_parameter_group_name,
1330 }
1331 self.build_complex_list_params(
1332 params, parameter_name_values,
1333 'ParameterNameValues.member',
1334 ('ParameterName', 'ParameterValue'))
1335 return self._make_request(
1336 action='ModifyCacheParameterGroup',
1337 verb='POST',
1338 path='/', params=params)
1339
1340 def modify_cache_subnet_group(self, cache_subnet_group_name,
1341 cache_subnet_group_description=None,
1342 subnet_ids=None):
1343 """
1344 The ModifyCacheSubnetGroup operation modifies an existing
1345 cache subnet group.
1346
1347 :type cache_subnet_group_name: string
1348 :param cache_subnet_group_name: The name for the cache subnet group.
1349 This value is stored as a lowercase string.
1350 Constraints: Must contain no more than 255 alphanumeric characters or
1351 hyphens.
1352
1353 Example: `mysubnetgroup`
1354
1355 :type cache_subnet_group_description: string
1356 :param cache_subnet_group_description: A description for the cache
1357 subnet group.
1358
1359 :type subnet_ids: list
1360 :param subnet_ids: The EC2 subnet IDs for the cache subnet group.
1361
1362 """
1363 params = {'CacheSubnetGroupName': cache_subnet_group_name, }
1364 if cache_subnet_group_description is not None:
1365 params['CacheSubnetGroupDescription'] = cache_subnet_group_description
1366 if subnet_ids is not None:
1367 self.build_list_params(params,
1368 subnet_ids,
1369 'SubnetIds.member')
1370 return self._make_request(
1371 action='ModifyCacheSubnetGroup',
1372 verb='POST',
1373 path='/', params=params)
1374
1375 def modify_replication_group(self, replication_group_id,
1376 replication_group_description=None,
1377 cache_security_group_names=None,
1378 security_group_ids=None,
1379 preferred_maintenance_window=None,
1380 notification_topic_arn=None,
1381 cache_parameter_group_name=None,
1382 notification_topic_status=None,
1383 apply_immediately=None, engine_version=None,
1384 auto_minor_version_upgrade=None,
1385 primary_cluster_id=None):
1386 """
1387 The ModifyReplicationGroup operation modifies the settings for
1388 a replication group.
1389
1390 :type replication_group_id: string
1391 :param replication_group_id: The identifier of the replication group to
1392 modify.
1393
1394 :type replication_group_description: string
1395 :param replication_group_description: A description for the replication
1396 group. Maximum length is 255 characters.
1397
1398 :type cache_security_group_names: list
1399 :param cache_security_group_names: A list of cache security group names
1400 to authorize for the clusters in this replication group. This
1401 change is asynchronously applied as soon as possible.
1402 This parameter can be used only with replication groups containing
1403 cache clusters running outside of an Amazon Virtual Private Cloud
1404 (VPC).
1405
1406 Constraints: Must contain no more than 255 alphanumeric characters.
1407 Must not be "Default".
1408
1409 :type security_group_ids: list
1410 :param security_group_ids: Specifies the VPC Security Groups associated
1411 with the cache clusters in the replication group.
1412 This parameter can be used only with replication groups containing
1413 cache clusters running in an Amazon Virtual Private Cloud (VPC).
1414
1415 :type preferred_maintenance_window: string
1416 :param preferred_maintenance_window: The weekly time range (in UTC)
1417 during which replication group system maintenance can occur. Note
1418 that system maintenance may result in an outage. This change is
1419 made immediately. If you are moving this window to the current
1420 time, there must be at least 120 minutes between the current time
1421 and end of the window to ensure that pending changes are applied.
1422
1423 :type notification_topic_arn: string
1424 :param notification_topic_arn:
1425 The Amazon Resource Name (ARN) of the SNS topic to which notifications
1426 will be sent.
1427
1428 The SNS topic owner must be same as the replication group owner.
1429
1430 :type cache_parameter_group_name: string
1431 :param cache_parameter_group_name: The name of the cache parameter
1432 group to apply to all of the cache nodes in this replication group.
1433 This change is asynchronously applied as soon as possible for
1434 parameters when the ApplyImmediately parameter is specified as true
1435 for this request.
1436
1437 :type notification_topic_status: string
1438 :param notification_topic_status: The status of the Amazon SNS
1439 notification topic for the replication group. Notifications are
1440 sent only if the status is active .
1441 Valid values: `active` | `inactive`
1442
1443 :type apply_immediately: boolean
1444 :param apply_immediately: If `True`, this parameter causes the
1445 modifications in this request and any pending modifications to be
1446 applied, asynchronously and as soon as possible, regardless of the
1447 PreferredMaintenanceWindow setting for the replication group.
1448 If `False`, then changes to the nodes in the replication group are
1449 applied on the next maintenance reboot, or the next failure reboot,
1450 whichever occurs first.
1451
1452 Valid values: `True` | `False`
1453
1454 Default: `False`
1455
1456 :type engine_version: string
1457 :param engine_version: The upgraded version of the cache engine to be
1458 run on the nodes in the replication group..
1459
1460 :type auto_minor_version_upgrade: boolean
1461 :param auto_minor_version_upgrade: Determines whether minor engine
1462 upgrades will be applied automatically to all of the cache nodes in
1463 the replication group during the maintenance window. A value of
1464 `True` allows these upgrades to occur; `False` disables automatic
1465 upgrades.
1466
1467 :type primary_cluster_id: string
1468 :param primary_cluster_id: If this parameter is specified, ElastiCache
1469 will promote each of the nodes in the specified cache cluster to
1470 the primary role. The nodes of all other clusters in the
1471 replication group will be read replicas.
1472
1473 """
1474 params = {'ReplicationGroupId': replication_group_id, }
1475 if replication_group_description is not None:
1476 params['ReplicationGroupDescription'] = replication_group_description
1477 if cache_security_group_names is not None:
1478 self.build_list_params(params,
1479 cache_security_group_names,
1480 'CacheSecurityGroupNames.member')
1481 if security_group_ids is not None:
1482 self.build_list_params(params,
1483 security_group_ids,
1484 'SecurityGroupIds.member')
1485 if preferred_maintenance_window is not None:
1486 params['PreferredMaintenanceWindow'] = preferred_maintenance_window
1487 if notification_topic_arn is not None:
1488 params['NotificationTopicArn'] = notification_topic_arn
1489 if cache_parameter_group_name is not None:
1490 params['CacheParameterGroupName'] = cache_parameter_group_name
1491 if notification_topic_status is not None:
1492 params['NotificationTopicStatus'] = notification_topic_status
1493 if apply_immediately is not None:
1494 params['ApplyImmediately'] = str(
1495 apply_immediately).lower()
1496 if engine_version is not None:
1497 params['EngineVersion'] = engine_version
1498 if auto_minor_version_upgrade is not None:
1499 params['AutoMinorVersionUpgrade'] = str(
1500 auto_minor_version_upgrade).lower()
1501 if primary_cluster_id is not None:
1502 params['PrimaryClusterId'] = primary_cluster_id
1503 return self._make_request(
1504 action='ModifyReplicationGroup',
1505 verb='POST',
1506 path='/', params=params)
1507
1508 def purchase_reserved_cache_nodes_offering(self,
1509 reserved_cache_nodes_offering_id,
1510 reserved_cache_node_id=None,
1511 cache_node_count=None):
1512 """
1513 The PurchaseReservedCacheNodesOffering operation allows you to
1514 purchase a reserved cache node offering.
1515
1516 :type reserved_cache_nodes_offering_id: string
1517 :param reserved_cache_nodes_offering_id: The ID of the reserved cache
1518 node offering to purchase.
1519 Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706
1520
1521 :type reserved_cache_node_id: string
1522 :param reserved_cache_node_id: A customer-specified identifier to track
1523 this reservation.
1524 Example: myreservationID
1525
1526 :type cache_node_count: integer
1527 :param cache_node_count: The number of cache node instances to reserve.
1528 Default: `1`
1529
1530 """
1531 params = {
1532 'ReservedCacheNodesOfferingId': reserved_cache_nodes_offering_id,
1533 }
1534 if reserved_cache_node_id is not None:
1535 params['ReservedCacheNodeId'] = reserved_cache_node_id
1536 if cache_node_count is not None:
1537 params['CacheNodeCount'] = cache_node_count
1538 return self._make_request(
1539 action='PurchaseReservedCacheNodesOffering',
1540 verb='POST',
1541 path='/', params=params)
1542
1543 def reboot_cache_cluster(self, cache_cluster_id,
1544 cache_node_ids_to_reboot):
1545 """
1546 The RebootCacheCluster operation reboots some, or all, of the
1547 cache cluster nodes within a provisioned cache cluster. This
1548 API will apply any modified cache parameter groups to the
1549 cache cluster. The reboot action takes place as soon as
1550 possible, and results in a momentary outage to the cache
1551 cluster. During the reboot, the cache cluster status is set to
1552 REBOOTING.
1553
1554 The reboot causes the contents of the cache (for each cache
1555 cluster node being rebooted) to be lost.
1556
1557 When the reboot is complete, a cache cluster event is created.
1558
1559 :type cache_cluster_id: string
1560 :param cache_cluster_id: The cache cluster identifier. This parameter
1561 is stored as a lowercase string.
1562
1563 :type cache_node_ids_to_reboot: list
1564 :param cache_node_ids_to_reboot: A list of cache cluster node IDs to
1565 reboot. A node ID is a numeric identifier (0001, 0002, etc.). To
1566 reboot an entire cache cluster, specify all of the cache cluster
1567 node IDs.
1568
1569 """
1570 params = {'CacheClusterId': cache_cluster_id, }
1571 self.build_list_params(params,
1572 cache_node_ids_to_reboot,
1573 'CacheNodeIdsToReboot.member')
1574 return self._make_request(
1575 action='RebootCacheCluster',
1576 verb='POST',
1577 path='/', params=params)
1578
1579 def reset_cache_parameter_group(self, cache_parameter_group_name,
1580 parameter_name_values,
1581 reset_all_parameters=None):
1582 """
1583 The ResetCacheParameterGroup operation modifies the parameters
1584 of a cache parameter group to the engine or system default
1585 value. You can reset specific parameters by submitting a list
1586 of parameter names. To reset the entire cache parameter group,
1587 specify the ResetAllParameters and CacheParameterGroupName
1588 parameters.
1589
1590 :type cache_parameter_group_name: string
1591 :param cache_parameter_group_name: The name of the cache parameter
1592 group to reset.
1593
1594 :type reset_all_parameters: boolean
1595 :param reset_all_parameters: If true , all parameters in the cache
1596 parameter group will be reset to default values. If false , no such
1597 action occurs.
1598 Valid values: `True` | `False`
1599
1600 :type parameter_name_values: list
1601 :param parameter_name_values: An array of parameter names to be reset.
1602 If you are not resetting the entire cache parameter group, you must
1603 specify at least one parameter name.
1604
1605 """
1606 params = {
1607 'CacheParameterGroupName': cache_parameter_group_name,
1608 }
1609 self.build_complex_list_params(
1610 params, parameter_name_values,
1611 'ParameterNameValues.member',
1612 ('ParameterName', 'ParameterValue'))
1613 if reset_all_parameters is not None:
1614 params['ResetAllParameters'] = str(
1615 reset_all_parameters).lower()
1616 return self._make_request(
1617 action='ResetCacheParameterGroup',
1618 verb='POST',
1619 path='/', params=params)
1620
1621 def revoke_cache_security_group_ingress(self, cache_security_group_name,
1622 ec2_security_group_name,
1623 ec2_security_group_owner_id):
1624 """
1625 The RevokeCacheSecurityGroupIngress operation revokes ingress
1626 from a cache security group. Use this operation to disallow
1627 access from an Amazon EC2 security group that had been
1628 previously authorized.
1629
1630 :type cache_security_group_name: string
1631 :param cache_security_group_name: The name of the cache security group
1632 to revoke ingress from.
1633
1634 :type ec2_security_group_name: string
1635 :param ec2_security_group_name: The name of the Amazon EC2 security
1636 group to revoke access from.
1637
1638 :type ec2_security_group_owner_id: string
1639 :param ec2_security_group_owner_id: The AWS account number of the
1640 Amazon EC2 security group owner. Note that this is not the same
1641 thing as an AWS access key ID - you must provide a valid AWS
1642 account number for this parameter.
1643
1644 """
1645 params = {
1646 'CacheSecurityGroupName': cache_security_group_name,
1647 'EC2SecurityGroupName': ec2_security_group_name,
1648 'EC2SecurityGroupOwnerId': ec2_security_group_owner_id,
1649 }
1650 return self._make_request(
1651 action='RevokeCacheSecurityGroupIngress',
1652 verb='POST',
1653 path='/', params=params)
1654
1655 def _make_request(self, action, verb, path, params):
1656 params['ContentType'] = 'JSON'
1657 response = self.make_request(action=action, verb='POST',
1658 path='/', params=params)
1659 body = response.read().decode('utf-8')
1660 boto.log.debug(body)
1661 if response.status == 200:
1662 return json.loads(body)
1663 else:
1664 raise self.ResponseError(response.status, response.reason, body)