Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/boto/redshift/layer1.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:18:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d30785e31577 |
|---|---|
| 1 # Copyright (c) 2014 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 from boto.exception import JSONResponseError | |
| 28 from boto.redshift import exceptions | |
| 29 | |
| 30 | |
| 31 class RedshiftConnection(AWSQueryConnection): | |
| 32 """ | |
| 33 Amazon Redshift **Overview** | |
| 34 This is an interface reference for Amazon Redshift. It contains | |
| 35 documentation for one of the programming or command line | |
| 36 interfaces you can use to manage Amazon Redshift clusters. Note | |
| 37 that Amazon Redshift is asynchronous, which means that some | |
| 38 interfaces may require techniques, such as polling or asynchronous | |
| 39 callback handlers, to determine when a command has been applied. | |
| 40 In this reference, the parameter descriptions indicate whether a | |
| 41 change is applied immediately, on the next instance reboot, or | |
| 42 during the next maintenance window. For a summary of the Amazon | |
| 43 Redshift cluster management interfaces, go to `Using the Amazon | |
| 44 Redshift Management Interfaces `_. | |
| 45 | |
| 46 Amazon Redshift manages all the work of setting up, operating, and | |
| 47 scaling a data warehouse: provisioning capacity, monitoring and | |
| 48 backing up the cluster, and applying patches and upgrades to the | |
| 49 Amazon Redshift engine. You can focus on using your data to | |
| 50 acquire new insights for your business and customers. | |
| 51 | |
| 52 If you are a first-time user of Amazon Redshift, we recommend that | |
| 53 you begin by reading the The `Amazon Redshift Getting Started | |
| 54 Guide`_ | |
| 55 | |
| 56 If you are a database developer, the `Amazon Redshift Database | |
| 57 Developer Guide`_ explains how to design, build, query, and | |
| 58 maintain the databases that make up your data warehouse. | |
| 59 """ | |
| 60 APIVersion = "2012-12-01" | |
| 61 DefaultRegionName = "us-east-1" | |
| 62 DefaultRegionEndpoint = "redshift.us-east-1.amazonaws.com" | |
| 63 ResponseError = JSONResponseError | |
| 64 | |
| 65 _faults = { | |
| 66 "SnapshotCopyAlreadyDisabled": exceptions.SnapshotCopyAlreadyDisabled, | |
| 67 "ClusterNotFound": exceptions.ClusterNotFound, | |
| 68 "UnknownSnapshotCopyRegion": exceptions.UnknownSnapshotCopyRegion, | |
| 69 "InvalidClusterSubnetState": exceptions.InvalidClusterSubnetState, | |
| 70 "InvalidSubnet": exceptions.InvalidSubnet, | |
| 71 "ReservedNodeQuotaExceeded": exceptions.ReservedNodeQuotaExceeded, | |
| 72 "InvalidClusterState": exceptions.InvalidClusterState, | |
| 73 "HsmClientCertificateQuotaExceeded": exceptions.HsmClientCertificateQuotaExceeded, | |
| 74 "SubscriptionCategoryNotFound": exceptions.SubscriptionCategoryNotFound, | |
| 75 "HsmClientCertificateNotFound": exceptions.HsmClientCertificateNotFound, | |
| 76 "SubscriptionEventIdNotFound": exceptions.SubscriptionEventIdNotFound, | |
| 77 "ClusterSecurityGroupAlreadyExists": exceptions.ClusterSecurityGroupAlreadyExists, | |
| 78 "HsmConfigurationAlreadyExists": exceptions.HsmConfigurationAlreadyExists, | |
| 79 "NumberOfNodesQuotaExceeded": exceptions.NumberOfNodesQuotaExceeded, | |
| 80 "ReservedNodeOfferingNotFound": exceptions.ReservedNodeOfferingNotFound, | |
| 81 "BucketNotFound": exceptions.BucketNotFound, | |
| 82 "InsufficientClusterCapacity": exceptions.InsufficientClusterCapacity, | |
| 83 "InvalidRestore": exceptions.InvalidRestore, | |
| 84 "UnauthorizedOperation": exceptions.UnauthorizedOperation, | |
| 85 "ClusterQuotaExceeded": exceptions.ClusterQuotaExceeded, | |
| 86 "InvalidVPCNetworkState": exceptions.InvalidVPCNetworkState, | |
| 87 "ClusterSnapshotNotFound": exceptions.ClusterSnapshotNotFound, | |
| 88 "AuthorizationQuotaExceeded": exceptions.AuthorizationQuotaExceeded, | |
| 89 "InvalidHsmClientCertificateState": exceptions.InvalidHsmClientCertificateState, | |
| 90 "SNSTopicArnNotFound": exceptions.SNSTopicArnNotFound, | |
| 91 "ResizeNotFound": exceptions.ResizeNotFound, | |
| 92 "ClusterSubnetGroupNotFound": exceptions.ClusterSubnetGroupNotFound, | |
| 93 "SNSNoAuthorization": exceptions.SNSNoAuthorization, | |
| 94 "ClusterSnapshotQuotaExceeded": exceptions.ClusterSnapshotQuotaExceeded, | |
| 95 "AccessToSnapshotDenied": exceptions.AccessToSnapshotDenied, | |
| 96 "InvalidClusterSecurityGroupState": exceptions.InvalidClusterSecurityGroupState, | |
| 97 "NumberOfNodesPerClusterLimitExceeded": exceptions.NumberOfNodesPerClusterLimitExceeded, | |
| 98 "ClusterSubnetQuotaExceeded": exceptions.ClusterSubnetQuotaExceeded, | |
| 99 "SNSInvalidTopic": exceptions.SNSInvalidTopic, | |
| 100 "ClusterSecurityGroupNotFound": exceptions.ClusterSecurityGroupNotFound, | |
| 101 "InvalidElasticIp": exceptions.InvalidElasticIp, | |
| 102 "InvalidClusterParameterGroupState": exceptions.InvalidClusterParameterGroupState, | |
| 103 "InvalidHsmConfigurationState": exceptions.InvalidHsmConfigurationState, | |
| 104 "ClusterAlreadyExists": exceptions.ClusterAlreadyExists, | |
| 105 "HsmConfigurationQuotaExceeded": exceptions.HsmConfigurationQuotaExceeded, | |
| 106 "ClusterSnapshotAlreadyExists": exceptions.ClusterSnapshotAlreadyExists, | |
| 107 "SubscriptionSeverityNotFound": exceptions.SubscriptionSeverityNotFound, | |
| 108 "SourceNotFound": exceptions.SourceNotFound, | |
| 109 "ReservedNodeAlreadyExists": exceptions.ReservedNodeAlreadyExists, | |
| 110 "ClusterSubnetGroupQuotaExceeded": exceptions.ClusterSubnetGroupQuotaExceeded, | |
| 111 "ClusterParameterGroupNotFound": exceptions.ClusterParameterGroupNotFound, | |
| 112 "InvalidS3BucketName": exceptions.InvalidS3BucketName, | |
| 113 "InvalidS3KeyPrefix": exceptions.InvalidS3KeyPrefix, | |
| 114 "SubscriptionAlreadyExist": exceptions.SubscriptionAlreadyExist, | |
| 115 "HsmConfigurationNotFound": exceptions.HsmConfigurationNotFound, | |
| 116 "InvalidSubscriptionState": exceptions.InvalidSubscriptionState, | |
| 117 "AuthorizationNotFound": exceptions.AuthorizationNotFound, | |
| 118 "ClusterSecurityGroupQuotaExceeded": exceptions.ClusterSecurityGroupQuotaExceeded, | |
| 119 "SubnetAlreadyInUse": exceptions.SubnetAlreadyInUse, | |
| 120 "EventSubscriptionQuotaExceeded": exceptions.EventSubscriptionQuotaExceeded, | |
| 121 "AuthorizationAlreadyExists": exceptions.AuthorizationAlreadyExists, | |
| 122 "InvalidClusterSnapshotState": exceptions.InvalidClusterSnapshotState, | |
| 123 "ClusterParameterGroupQuotaExceeded": exceptions.ClusterParameterGroupQuotaExceeded, | |
| 124 "SnapshotCopyDisabled": exceptions.SnapshotCopyDisabled, | |
| 125 "ClusterSubnetGroupAlreadyExists": exceptions.ClusterSubnetGroupAlreadyExists, | |
| 126 "ReservedNodeNotFound": exceptions.ReservedNodeNotFound, | |
| 127 "HsmClientCertificateAlreadyExists": exceptions.HsmClientCertificateAlreadyExists, | |
| 128 "InvalidClusterSubnetGroupState": exceptions.InvalidClusterSubnetGroupState, | |
| 129 "SubscriptionNotFound": exceptions.SubscriptionNotFound, | |
| 130 "InsufficientS3BucketPolicy": exceptions.InsufficientS3BucketPolicy, | |
| 131 "ClusterParameterGroupAlreadyExists": exceptions.ClusterParameterGroupAlreadyExists, | |
| 132 "UnsupportedOption": exceptions.UnsupportedOption, | |
| 133 "CopyToRegionDisabled": exceptions.CopyToRegionDisabled, | |
| 134 "SnapshotCopyAlreadyEnabled": exceptions.SnapshotCopyAlreadyEnabled, | |
| 135 "IncompatibleOrderableOptions": exceptions.IncompatibleOrderableOptions, | |
| 136 } | |
| 137 | |
| 138 | |
| 139 def __init__(self, **kwargs): | |
| 140 region = kwargs.pop('region', None) | |
| 141 if not region: | |
| 142 region = RegionInfo(self, self.DefaultRegionName, | |
| 143 self.DefaultRegionEndpoint) | |
| 144 | |
| 145 if 'host' not in kwargs or kwargs['host'] is None: | |
| 146 kwargs['host'] = region.endpoint | |
| 147 | |
| 148 super(RedshiftConnection, self).__init__(**kwargs) | |
| 149 self.region = region | |
| 150 | |
| 151 def _required_auth_capability(self): | |
| 152 return ['hmac-v4'] | |
| 153 | |
| 154 def authorize_cluster_security_group_ingress(self, | |
| 155 cluster_security_group_name, | |
| 156 cidrip=None, | |
| 157 ec2_security_group_name=None, | |
| 158 ec2_security_group_owner_id=None): | |
| 159 """ | |
| 160 Adds an inbound (ingress) rule to an Amazon Redshift security | |
| 161 group. Depending on whether the application accessing your | |
| 162 cluster is running on the Internet or an EC2 instance, you can | |
| 163 authorize inbound access to either a Classless Interdomain | |
| 164 Routing (CIDR) IP address range or an EC2 security group. You | |
| 165 can add as many as 20 ingress rules to an Amazon Redshift | |
| 166 security group. | |
| 167 | |
| 168 For an overview of CIDR blocks, see the Wikipedia article on | |
| 169 `Classless Inter-Domain Routing`_. | |
| 170 | |
| 171 You must also associate the security group with a cluster so | |
| 172 that clients running on these IP addresses or the EC2 instance | |
| 173 are authorized to connect to the cluster. For information | |
| 174 about managing security groups, go to `Working with Security | |
| 175 Groups`_ in the Amazon Redshift Management Guide . | |
| 176 | |
| 177 :type cluster_security_group_name: string | |
| 178 :param cluster_security_group_name: The name of the security group to | |
| 179 which the ingress rule is added. | |
| 180 | |
| 181 :type cidrip: string | |
| 182 :param cidrip: The IP range to be added the Amazon Redshift security | |
| 183 group. | |
| 184 | |
| 185 :type ec2_security_group_name: string | |
| 186 :param ec2_security_group_name: The EC2 security group to be added the | |
| 187 Amazon Redshift security group. | |
| 188 | |
| 189 :type ec2_security_group_owner_id: string | |
| 190 :param ec2_security_group_owner_id: The AWS account number of the owner | |
| 191 of the security group specified by the EC2SecurityGroupName | |
| 192 parameter. The AWS Access Key ID is not an acceptable value. | |
| 193 Example: `111122223333` | |
| 194 | |
| 195 """ | |
| 196 params = { | |
| 197 'ClusterSecurityGroupName': cluster_security_group_name, | |
| 198 } | |
| 199 if cidrip is not None: | |
| 200 params['CIDRIP'] = cidrip | |
| 201 if ec2_security_group_name is not None: | |
| 202 params['EC2SecurityGroupName'] = ec2_security_group_name | |
| 203 if ec2_security_group_owner_id is not None: | |
| 204 params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id | |
| 205 return self._make_request( | |
| 206 action='AuthorizeClusterSecurityGroupIngress', | |
| 207 verb='POST', | |
| 208 path='/', params=params) | |
| 209 | |
| 210 def authorize_snapshot_access(self, snapshot_identifier, | |
| 211 account_with_restore_access, | |
| 212 snapshot_cluster_identifier=None): | |
| 213 """ | |
| 214 Authorizes the specified AWS customer account to restore the | |
| 215 specified snapshot. | |
| 216 | |
| 217 For more information about working with snapshots, go to | |
| 218 `Amazon Redshift Snapshots`_ in the Amazon Redshift Management | |
| 219 Guide . | |
| 220 | |
| 221 :type snapshot_identifier: string | |
| 222 :param snapshot_identifier: The identifier of the snapshot the account | |
| 223 is authorized to restore. | |
| 224 | |
| 225 :type snapshot_cluster_identifier: string | |
| 226 :param snapshot_cluster_identifier: The identifier of the cluster the | |
| 227 snapshot was created from. This parameter is required if your IAM | |
| 228 user has a policy containing a snapshot resource element that | |
| 229 specifies anything other than * for the cluster name. | |
| 230 | |
| 231 :type account_with_restore_access: string | |
| 232 :param account_with_restore_access: The identifier of the AWS customer | |
| 233 account authorized to restore the specified snapshot. | |
| 234 | |
| 235 """ | |
| 236 params = { | |
| 237 'SnapshotIdentifier': snapshot_identifier, | |
| 238 'AccountWithRestoreAccess': account_with_restore_access, | |
| 239 } | |
| 240 if snapshot_cluster_identifier is not None: | |
| 241 params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier | |
| 242 return self._make_request( | |
| 243 action='AuthorizeSnapshotAccess', | |
| 244 verb='POST', | |
| 245 path='/', params=params) | |
| 246 | |
| 247 def copy_cluster_snapshot(self, source_snapshot_identifier, | |
| 248 target_snapshot_identifier, | |
| 249 source_snapshot_cluster_identifier=None): | |
| 250 """ | |
| 251 Copies the specified automated cluster snapshot to a new | |
| 252 manual cluster snapshot. The source must be an automated | |
| 253 snapshot and it must be in the available state. | |
| 254 | |
| 255 When you delete a cluster, Amazon Redshift deletes any | |
| 256 automated snapshots of the cluster. Also, when the retention | |
| 257 period of the snapshot expires, Amazon Redshift automatically | |
| 258 deletes it. If you want to keep an automated snapshot for a | |
| 259 longer period, you can make a manual copy of the snapshot. | |
| 260 Manual snapshots are retained until you delete them. | |
| 261 | |
| 262 For more information about working with snapshots, go to | |
| 263 `Amazon Redshift Snapshots`_ in the Amazon Redshift Management | |
| 264 Guide . | |
| 265 | |
| 266 :type source_snapshot_identifier: string | |
| 267 :param source_snapshot_identifier: | |
| 268 The identifier for the source snapshot. | |
| 269 | |
| 270 Constraints: | |
| 271 | |
| 272 | |
| 273 + Must be the identifier for a valid automated snapshot whose state is | |
| 274 `available`. | |
| 275 | |
| 276 :type source_snapshot_cluster_identifier: string | |
| 277 :param source_snapshot_cluster_identifier: | |
| 278 The identifier of the cluster the source snapshot was created from. | |
| 279 This parameter is required if your IAM user has a policy containing | |
| 280 a snapshot resource element that specifies anything other than * | |
| 281 for the cluster name. | |
| 282 | |
| 283 Constraints: | |
| 284 | |
| 285 | |
| 286 + Must be the identifier for a valid cluster. | |
| 287 | |
| 288 :type target_snapshot_identifier: string | |
| 289 :param target_snapshot_identifier: | |
| 290 The identifier given to the new manual snapshot. | |
| 291 | |
| 292 Constraints: | |
| 293 | |
| 294 | |
| 295 + Cannot be null, empty, or blank. | |
| 296 + Must contain from 1 to 255 alphanumeric characters or hyphens. | |
| 297 + First character must be a letter. | |
| 298 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 299 + Must be unique for the AWS account that is making the request. | |
| 300 | |
| 301 """ | |
| 302 params = { | |
| 303 'SourceSnapshotIdentifier': source_snapshot_identifier, | |
| 304 'TargetSnapshotIdentifier': target_snapshot_identifier, | |
| 305 } | |
| 306 if source_snapshot_cluster_identifier is not None: | |
| 307 params['SourceSnapshotClusterIdentifier'] = source_snapshot_cluster_identifier | |
| 308 return self._make_request( | |
| 309 action='CopyClusterSnapshot', | |
| 310 verb='POST', | |
| 311 path='/', params=params) | |
| 312 | |
| 313 def create_cluster(self, cluster_identifier, node_type, master_username, | |
| 314 master_user_password, db_name=None, cluster_type=None, | |
| 315 cluster_security_groups=None, | |
| 316 vpc_security_group_ids=None, | |
| 317 cluster_subnet_group_name=None, | |
| 318 availability_zone=None, | |
| 319 preferred_maintenance_window=None, | |
| 320 cluster_parameter_group_name=None, | |
| 321 automated_snapshot_retention_period=None, port=None, | |
| 322 cluster_version=None, allow_version_upgrade=None, | |
| 323 number_of_nodes=None, publicly_accessible=None, | |
| 324 encrypted=None, | |
| 325 hsm_client_certificate_identifier=None, | |
| 326 hsm_configuration_identifier=None, elastic_ip=None): | |
| 327 """ | |
| 328 Creates a new cluster. To create the cluster in virtual | |
| 329 private cloud (VPC), you must provide cluster subnet group | |
| 330 name. If you don't provide a cluster subnet group name or the | |
| 331 cluster security group parameter, Amazon Redshift creates a | |
| 332 non-VPC cluster, it associates the default cluster security | |
| 333 group with the cluster. For more information about managing | |
| 334 clusters, go to `Amazon Redshift Clusters`_ in the Amazon | |
| 335 Redshift Management Guide . | |
| 336 | |
| 337 :type db_name: string | |
| 338 :param db_name: | |
| 339 The name of the first database to be created when the cluster is | |
| 340 created. | |
| 341 | |
| 342 To create additional databases after the cluster is created, connect to | |
| 343 the cluster with a SQL client and use SQL commands to create a | |
| 344 database. For more information, go to `Create a Database`_ in the | |
| 345 Amazon Redshift Database Developer Guide. | |
| 346 | |
| 347 Default: `dev` | |
| 348 | |
| 349 Constraints: | |
| 350 | |
| 351 | |
| 352 + Must contain 1 to 64 alphanumeric characters. | |
| 353 + Must contain only lowercase letters. | |
| 354 + Cannot be a word that is reserved by the service. A list of reserved | |
| 355 words can be found in `Reserved Words`_ in the Amazon Redshift | |
| 356 Database Developer Guide. | |
| 357 | |
| 358 :type cluster_identifier: string | |
| 359 :param cluster_identifier: A unique identifier for the cluster. You use | |
| 360 this identifier to refer to the cluster for any subsequent cluster | |
| 361 operations such as deleting or modifying. The identifier also | |
| 362 appears in the Amazon Redshift console. | |
| 363 Constraints: | |
| 364 | |
| 365 | |
| 366 + Must contain from 1 to 63 alphanumeric characters or hyphens. | |
| 367 + Alphabetic characters must be lowercase. | |
| 368 + First character must be a letter. | |
| 369 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 370 + Must be unique for all clusters within an AWS account. | |
| 371 | |
| 372 | |
| 373 Example: `myexamplecluster` | |
| 374 | |
| 375 :type cluster_type: string | |
| 376 :param cluster_type: The type of the cluster. When cluster type is | |
| 377 specified as | |
| 378 | |
| 379 + `single-node`, the **NumberOfNodes** parameter is not required. | |
| 380 + `multi-node`, the **NumberOfNodes** parameter is required. | |
| 381 | |
| 382 | |
| 383 Valid Values: `multi-node` | `single-node` | |
| 384 | |
| 385 Default: `multi-node` | |
| 386 | |
| 387 :type node_type: string | |
| 388 :param node_type: The node type to be provisioned for the cluster. For | |
| 389 information about node types, go to ` Working with Clusters`_ in | |
| 390 the Amazon Redshift Management Guide . | |
| 391 Valid Values: `dw1.xlarge` | `dw1.8xlarge` | `dw2.large` | | |
| 392 `dw2.8xlarge`. | |
| 393 | |
| 394 :type master_username: string | |
| 395 :param master_username: | |
| 396 The user name associated with the master user account for the cluster | |
| 397 that is being created. | |
| 398 | |
| 399 Constraints: | |
| 400 | |
| 401 | |
| 402 + Must be 1 - 128 alphanumeric characters. | |
| 403 + First character must be a letter. | |
| 404 + Cannot be a reserved word. A list of reserved words can be found in | |
| 405 `Reserved Words`_ in the Amazon Redshift Database Developer Guide. | |
| 406 | |
| 407 :type master_user_password: string | |
| 408 :param master_user_password: | |
| 409 The password associated with the master user account for the cluster | |
| 410 that is being created. | |
| 411 | |
| 412 Constraints: | |
| 413 | |
| 414 | |
| 415 + Must be between 8 and 64 characters in length. | |
| 416 + Must contain at least one uppercase letter. | |
| 417 + Must contain at least one lowercase letter. | |
| 418 + Must contain one number. | |
| 419 + Can be any printable ASCII character (ASCII code 33 to 126) except ' | |
| 420 (single quote), " (double quote), \, /, @, or space. | |
| 421 | |
| 422 :type cluster_security_groups: list | |
| 423 :param cluster_security_groups: A list of security groups to be | |
| 424 associated with this cluster. | |
| 425 Default: The default cluster security group for Amazon Redshift. | |
| 426 | |
| 427 :type vpc_security_group_ids: list | |
| 428 :param vpc_security_group_ids: A list of Virtual Private Cloud (VPC) | |
| 429 security groups to be associated with the cluster. | |
| 430 Default: The default VPC security group is associated with the cluster. | |
| 431 | |
| 432 :type cluster_subnet_group_name: string | |
| 433 :param cluster_subnet_group_name: The name of a cluster subnet group to | |
| 434 be associated with this cluster. | |
| 435 If this parameter is not provided the resulting cluster will be | |
| 436 deployed outside virtual private cloud (VPC). | |
| 437 | |
| 438 :type availability_zone: string | |
| 439 :param availability_zone: The EC2 Availability Zone (AZ) in which you | |
| 440 want Amazon Redshift to provision the cluster. For example, if you | |
| 441 have several EC2 instances running in a specific Availability Zone, | |
| 442 then you might want the cluster to be provisioned in the same zone | |
| 443 in order to decrease network latency. | |
| 444 Default: A random, system-chosen Availability Zone in the region that | |
| 445 is specified by the endpoint. | |
| 446 | |
| 447 Example: `us-east-1d` | |
| 448 | |
| 449 Constraint: The specified Availability Zone must be in the same region | |
| 450 as the current endpoint. | |
| 451 | |
| 452 :type preferred_maintenance_window: string | |
| 453 :param preferred_maintenance_window: The weekly time range (in UTC) | |
| 454 during which automated cluster maintenance can occur. | |
| 455 Format: `ddd:hh24:mi-ddd:hh24:mi` | |
| 456 | |
| 457 Default: A 30-minute window selected at random from an 8-hour block of | |
| 458 time per region, occurring on a random day of the week. The | |
| 459 following list shows the time blocks for each region from which the | |
| 460 default maintenance windows are assigned. | |
| 461 | |
| 462 | |
| 463 + **US-East (Northern Virginia) Region:** 03:00-11:00 UTC | |
| 464 + **US-West (Oregon) Region** 06:00-14:00 UTC | |
| 465 + **EU (Ireland) Region** 22:00-06:00 UTC | |
| 466 + **Asia Pacific (Singapore) Region** 14:00-22:00 UTC | |
| 467 + **Asia Pacific (Sydney) Region** 12:00-20:00 UTC | |
| 468 + **Asia Pacific (Tokyo) Region** 17:00-03:00 UTC | |
| 469 | |
| 470 | |
| 471 Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun | |
| 472 | |
| 473 Constraints: Minimum 30-minute window. | |
| 474 | |
| 475 :type cluster_parameter_group_name: string | |
| 476 :param cluster_parameter_group_name: | |
| 477 The name of the parameter group to be associated with this cluster. | |
| 478 | |
| 479 Default: The default Amazon Redshift cluster parameter group. For | |
| 480 information about the default parameter group, go to `Working with | |
| 481 Amazon Redshift Parameter Groups`_ | |
| 482 | |
| 483 Constraints: | |
| 484 | |
| 485 | |
| 486 + Must be 1 to 255 alphanumeric characters or hyphens. | |
| 487 + First character must be a letter. | |
| 488 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 489 | |
| 490 :type automated_snapshot_retention_period: integer | |
| 491 :param automated_snapshot_retention_period: The number of days that | |
| 492 automated snapshots are retained. If the value is 0, automated | |
| 493 snapshots are disabled. Even if automated snapshots are disabled, | |
| 494 you can still create manual snapshots when you want with | |
| 495 CreateClusterSnapshot. | |
| 496 Default: `1` | |
| 497 | |
| 498 Constraints: Must be a value from 0 to 35. | |
| 499 | |
| 500 :type port: integer | |
| 501 :param port: The port number on which the cluster accepts incoming | |
| 502 connections. | |
| 503 The cluster is accessible only via the JDBC and ODBC connection | |
| 504 strings. Part of the connection string requires the port on which | |
| 505 the cluster will listen for incoming connections. | |
| 506 | |
| 507 Default: `5439` | |
| 508 | |
| 509 Valid Values: `1150-65535` | |
| 510 | |
| 511 :type cluster_version: string | |
| 512 :param cluster_version: The version of the Amazon Redshift engine | |
| 513 software that you want to deploy on the cluster. | |
| 514 The version selected runs on all the nodes in the cluster. | |
| 515 | |
| 516 Constraints: Only version 1.0 is currently available. | |
| 517 | |
| 518 Example: `1.0` | |
| 519 | |
| 520 :type allow_version_upgrade: boolean | |
| 521 :param allow_version_upgrade: If `True`, upgrades can be applied during | |
| 522 the maintenance window to the Amazon Redshift engine that is | |
| 523 running on the cluster. | |
| 524 When a new version of the Amazon Redshift engine is released, you can | |
| 525 request that the service automatically apply upgrades during the | |
| 526 maintenance window to the Amazon Redshift engine that is running on | |
| 527 your cluster. | |
| 528 | |
| 529 Default: `True` | |
| 530 | |
| 531 :type number_of_nodes: integer | |
| 532 :param number_of_nodes: The number of compute nodes in the cluster. | |
| 533 This parameter is required when the **ClusterType** parameter is | |
| 534 specified as `multi-node`. | |
| 535 For information about determining how many nodes you need, go to ` | |
| 536 Working with Clusters`_ in the Amazon Redshift Management Guide . | |
| 537 | |
| 538 If you don't specify this parameter, you get a single-node cluster. | |
| 539 When requesting a multi-node cluster, you must specify the number | |
| 540 of nodes that you want in the cluster. | |
| 541 | |
| 542 Default: `1` | |
| 543 | |
| 544 Constraints: Value must be at least 1 and no more than 100. | |
| 545 | |
| 546 :type publicly_accessible: boolean | |
| 547 :param publicly_accessible: If `True`, the cluster can be accessed from | |
| 548 a public network. | |
| 549 | |
| 550 :type encrypted: boolean | |
| 551 :param encrypted: If `True`, the data in the cluster is encrypted at | |
| 552 rest. | |
| 553 Default: false | |
| 554 | |
| 555 :type hsm_client_certificate_identifier: string | |
| 556 :param hsm_client_certificate_identifier: Specifies the name of the HSM | |
| 557 client certificate the Amazon Redshift cluster uses to retrieve the | |
| 558 data encryption keys stored in an HSM. | |
| 559 | |
| 560 :type hsm_configuration_identifier: string | |
| 561 :param hsm_configuration_identifier: Specifies the name of the HSM | |
| 562 configuration that contains the information the Amazon Redshift | |
| 563 cluster can use to retrieve and store keys in an HSM. | |
| 564 | |
| 565 :type elastic_ip: string | |
| 566 :param elastic_ip: The Elastic IP (EIP) address for the cluster. | |
| 567 Constraints: The cluster must be provisioned in EC2-VPC and publicly- | |
| 568 accessible through an Internet gateway. For more information about | |
| 569 provisioning clusters in EC2-VPC, go to `Supported Platforms to | |
| 570 Launch Your Cluster`_ in the Amazon Redshift Management Guide. | |
| 571 | |
| 572 """ | |
| 573 params = { | |
| 574 'ClusterIdentifier': cluster_identifier, | |
| 575 'NodeType': node_type, | |
| 576 'MasterUsername': master_username, | |
| 577 'MasterUserPassword': master_user_password, | |
| 578 } | |
| 579 if db_name is not None: | |
| 580 params['DBName'] = db_name | |
| 581 if cluster_type is not None: | |
| 582 params['ClusterType'] = cluster_type | |
| 583 if cluster_security_groups is not None: | |
| 584 self.build_list_params(params, | |
| 585 cluster_security_groups, | |
| 586 'ClusterSecurityGroups.member') | |
| 587 if vpc_security_group_ids is not None: | |
| 588 self.build_list_params(params, | |
| 589 vpc_security_group_ids, | |
| 590 'VpcSecurityGroupIds.member') | |
| 591 if cluster_subnet_group_name is not None: | |
| 592 params['ClusterSubnetGroupName'] = cluster_subnet_group_name | |
| 593 if availability_zone is not None: | |
| 594 params['AvailabilityZone'] = availability_zone | |
| 595 if preferred_maintenance_window is not None: | |
| 596 params['PreferredMaintenanceWindow'] = preferred_maintenance_window | |
| 597 if cluster_parameter_group_name is not None: | |
| 598 params['ClusterParameterGroupName'] = cluster_parameter_group_name | |
| 599 if automated_snapshot_retention_period is not None: | |
| 600 params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period | |
| 601 if port is not None: | |
| 602 params['Port'] = port | |
| 603 if cluster_version is not None: | |
| 604 params['ClusterVersion'] = cluster_version | |
| 605 if allow_version_upgrade is not None: | |
| 606 params['AllowVersionUpgrade'] = str( | |
| 607 allow_version_upgrade).lower() | |
| 608 if number_of_nodes is not None: | |
| 609 params['NumberOfNodes'] = number_of_nodes | |
| 610 if publicly_accessible is not None: | |
| 611 params['PubliclyAccessible'] = str( | |
| 612 publicly_accessible).lower() | |
| 613 if encrypted is not None: | |
| 614 params['Encrypted'] = str( | |
| 615 encrypted).lower() | |
| 616 if hsm_client_certificate_identifier is not None: | |
| 617 params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier | |
| 618 if hsm_configuration_identifier is not None: | |
| 619 params['HsmConfigurationIdentifier'] = hsm_configuration_identifier | |
| 620 if elastic_ip is not None: | |
| 621 params['ElasticIp'] = elastic_ip | |
| 622 return self._make_request( | |
| 623 action='CreateCluster', | |
| 624 verb='POST', | |
| 625 path='/', params=params) | |
| 626 | |
| 627 def create_cluster_parameter_group(self, parameter_group_name, | |
| 628 parameter_group_family, description): | |
| 629 """ | |
| 630 Creates an Amazon Redshift parameter group. | |
| 631 | |
| 632 Creating parameter groups is independent of creating clusters. | |
| 633 You can associate a cluster with a parameter group when you | |
| 634 create the cluster. You can also associate an existing cluster | |
| 635 with a parameter group after the cluster is created by using | |
| 636 ModifyCluster. | |
| 637 | |
| 638 Parameters in the parameter group define specific behavior | |
| 639 that applies to the databases you create on the cluster. For | |
| 640 more information about managing parameter groups, go to | |
| 641 `Amazon Redshift Parameter Groups`_ in the Amazon Redshift | |
| 642 Management Guide . | |
| 643 | |
| 644 :type parameter_group_name: string | |
| 645 :param parameter_group_name: | |
| 646 The name of the cluster parameter group. | |
| 647 | |
| 648 Constraints: | |
| 649 | |
| 650 | |
| 651 + Must be 1 to 255 alphanumeric characters or hyphens | |
| 652 + First character must be a letter. | |
| 653 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 654 + Must be unique within your AWS account. | |
| 655 | |
| 656 This value is stored as a lower-case string. | |
| 657 | |
| 658 :type parameter_group_family: string | |
| 659 :param parameter_group_family: The Amazon Redshift engine version to | |
| 660 which the cluster parameter group applies. The cluster engine | |
| 661 version determines the set of parameters. | |
| 662 To get a list of valid parameter group family names, you can call | |
| 663 DescribeClusterParameterGroups. By default, Amazon Redshift returns | |
| 664 a list of all the parameter groups that are owned by your AWS | |
| 665 account, including the default parameter groups for each Amazon | |
| 666 Redshift engine version. The parameter group family names | |
| 667 associated with the default parameter groups provide you the valid | |
| 668 values. For example, a valid family name is "redshift-1.0". | |
| 669 | |
| 670 :type description: string | |
| 671 :param description: A description of the parameter group. | |
| 672 | |
| 673 """ | |
| 674 params = { | |
| 675 'ParameterGroupName': parameter_group_name, | |
| 676 'ParameterGroupFamily': parameter_group_family, | |
| 677 'Description': description, | |
| 678 } | |
| 679 return self._make_request( | |
| 680 action='CreateClusterParameterGroup', | |
| 681 verb='POST', | |
| 682 path='/', params=params) | |
| 683 | |
| 684 def create_cluster_security_group(self, cluster_security_group_name, | |
| 685 description): | |
| 686 """ | |
| 687 Creates a new Amazon Redshift security group. You use security | |
| 688 groups to control access to non-VPC clusters. | |
| 689 | |
| 690 For information about managing security groups, go to `Amazon | |
| 691 Redshift Cluster Security Groups`_ in the Amazon Redshift | |
| 692 Management Guide . | |
| 693 | |
| 694 :type cluster_security_group_name: string | |
| 695 :param cluster_security_group_name: The name for the security group. | |
| 696 Amazon Redshift stores the value as a lowercase string. | |
| 697 Constraints: | |
| 698 | |
| 699 | |
| 700 + Must contain no more than 255 alphanumeric characters or hyphens. | |
| 701 + Must not be "Default". | |
| 702 + Must be unique for all security groups that are created by your AWS | |
| 703 account. | |
| 704 | |
| 705 | |
| 706 Example: `examplesecuritygroup` | |
| 707 | |
| 708 :type description: string | |
| 709 :param description: A description for the security group. | |
| 710 | |
| 711 """ | |
| 712 params = { | |
| 713 'ClusterSecurityGroupName': cluster_security_group_name, | |
| 714 'Description': description, | |
| 715 } | |
| 716 return self._make_request( | |
| 717 action='CreateClusterSecurityGroup', | |
| 718 verb='POST', | |
| 719 path='/', params=params) | |
| 720 | |
| 721 def create_cluster_snapshot(self, snapshot_identifier, | |
| 722 cluster_identifier): | |
| 723 """ | |
| 724 Creates a manual snapshot of the specified cluster. The | |
| 725 cluster must be in the `available` state. | |
| 726 | |
| 727 For more information about working with snapshots, go to | |
| 728 `Amazon Redshift Snapshots`_ in the Amazon Redshift Management | |
| 729 Guide . | |
| 730 | |
| 731 :type snapshot_identifier: string | |
| 732 :param snapshot_identifier: A unique identifier for the snapshot that | |
| 733 you are requesting. This identifier must be unique for all | |
| 734 snapshots within the AWS account. | |
| 735 Constraints: | |
| 736 | |
| 737 | |
| 738 + Cannot be null, empty, or blank | |
| 739 + Must contain from 1 to 255 alphanumeric characters or hyphens | |
| 740 + First character must be a letter | |
| 741 + Cannot end with a hyphen or contain two consecutive hyphens | |
| 742 | |
| 743 | |
| 744 Example: `my-snapshot-id` | |
| 745 | |
| 746 :type cluster_identifier: string | |
| 747 :param cluster_identifier: The cluster identifier for which you want a | |
| 748 snapshot. | |
| 749 | |
| 750 """ | |
| 751 params = { | |
| 752 'SnapshotIdentifier': snapshot_identifier, | |
| 753 'ClusterIdentifier': cluster_identifier, | |
| 754 } | |
| 755 return self._make_request( | |
| 756 action='CreateClusterSnapshot', | |
| 757 verb='POST', | |
| 758 path='/', params=params) | |
| 759 | |
| 760 def create_cluster_subnet_group(self, cluster_subnet_group_name, | |
| 761 description, subnet_ids): | |
| 762 """ | |
| 763 Creates a new Amazon Redshift subnet group. You must provide a | |
| 764 list of one or more subnets in your existing Amazon Virtual | |
| 765 Private Cloud (Amazon VPC) when creating Amazon Redshift | |
| 766 subnet group. | |
| 767 | |
| 768 For information about subnet groups, go to `Amazon Redshift | |
| 769 Cluster Subnet Groups`_ in the Amazon Redshift Management | |
| 770 Guide . | |
| 771 | |
| 772 :type cluster_subnet_group_name: string | |
| 773 :param cluster_subnet_group_name: The name for the subnet group. Amazon | |
| 774 Redshift stores the value as a lowercase string. | |
| 775 Constraints: | |
| 776 | |
| 777 | |
| 778 + Must contain no more than 255 alphanumeric characters or hyphens. | |
| 779 + Must not be "Default". | |
| 780 + Must be unique for all subnet groups that are created by your AWS | |
| 781 account. | |
| 782 | |
| 783 | |
| 784 Example: `examplesubnetgroup` | |
| 785 | |
| 786 :type description: string | |
| 787 :param description: A description for the subnet group. | |
| 788 | |
| 789 :type subnet_ids: list | |
| 790 :param subnet_ids: An array of VPC subnet IDs. A maximum of 20 subnets | |
| 791 can be modified in a single request. | |
| 792 | |
| 793 """ | |
| 794 params = { | |
| 795 'ClusterSubnetGroupName': cluster_subnet_group_name, | |
| 796 'Description': description, | |
| 797 } | |
| 798 self.build_list_params(params, | |
| 799 subnet_ids, | |
| 800 'SubnetIds.member') | |
| 801 return self._make_request( | |
| 802 action='CreateClusterSubnetGroup', | |
| 803 verb='POST', | |
| 804 path='/', params=params) | |
| 805 | |
| 806 def create_event_subscription(self, subscription_name, sns_topic_arn, | |
| 807 source_type=None, source_ids=None, | |
| 808 event_categories=None, severity=None, | |
| 809 enabled=None): | |
| 810 """ | |
| 811 Creates an Amazon Redshift event notification subscription. | |
| 812 This action requires an ARN (Amazon Resource Name) of an | |
| 813 Amazon SNS topic created by either the Amazon Redshift | |
| 814 console, the Amazon SNS console, or the Amazon SNS API. To | |
| 815 obtain an ARN with Amazon SNS, you must create a topic in | |
| 816 Amazon SNS and subscribe to the topic. The ARN is displayed in | |
| 817 the SNS console. | |
| 818 | |
| 819 You can specify the source type, and lists of Amazon Redshift | |
| 820 source IDs, event categories, and event severities. | |
| 821 Notifications will be sent for all events you want that match | |
| 822 those criteria. For example, you can specify source type = | |
| 823 cluster, source ID = my-cluster-1 and mycluster2, event | |
| 824 categories = Availability, Backup, and severity = ERROR. The | |
| 825 subscription will only send notifications for those ERROR | |
| 826 events in the Availability and Backup categories for the | |
| 827 specified clusters. | |
| 828 | |
| 829 If you specify both the source type and source IDs, such as | |
| 830 source type = cluster and source identifier = my-cluster-1, | |
| 831 notifications will be sent for all the cluster events for my- | |
| 832 cluster-1. If you specify a source type but do not specify a | |
| 833 source identifier, you will receive notice of the events for | |
| 834 the objects of that type in your AWS account. If you do not | |
| 835 specify either the SourceType nor the SourceIdentifier, you | |
| 836 will be notified of events generated from all Amazon Redshift | |
| 837 sources belonging to your AWS account. You must specify a | |
| 838 source type if you specify a source ID. | |
| 839 | |
| 840 :type subscription_name: string | |
| 841 :param subscription_name: | |
| 842 The name of the event subscription to be created. | |
| 843 | |
| 844 Constraints: | |
| 845 | |
| 846 | |
| 847 + Cannot be null, empty, or blank. | |
| 848 + Must contain from 1 to 255 alphanumeric characters or hyphens. | |
| 849 + First character must be a letter. | |
| 850 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 851 | |
| 852 :type sns_topic_arn: string | |
| 853 :param sns_topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS | |
| 854 topic used to transmit the event notifications. The ARN is created | |
| 855 by Amazon SNS when you create a topic and subscribe to it. | |
| 856 | |
| 857 :type source_type: string | |
| 858 :param source_type: The type of source that will be generating the | |
| 859 events. For example, if you want to be notified of events generated | |
| 860 by a cluster, you would set this parameter to cluster. If this | |
| 861 value is not specified, events are returned for all Amazon Redshift | |
| 862 objects in your AWS account. You must specify a source type in | |
| 863 order to specify source IDs. | |
| 864 Valid values: cluster, cluster-parameter-group, cluster-security-group, | |
| 865 and cluster-snapshot. | |
| 866 | |
| 867 :type source_ids: list | |
| 868 :param source_ids: A list of one or more identifiers of Amazon Redshift | |
| 869 source objects. All of the objects must be of the same type as was | |
| 870 specified in the source type parameter. The event subscription will | |
| 871 return only events generated by the specified objects. If not | |
| 872 specified, then events are returned for all objects within the | |
| 873 source type specified. | |
| 874 Example: my-cluster-1, my-cluster-2 | |
| 875 | |
| 876 Example: my-snapshot-20131010 | |
| 877 | |
| 878 :type event_categories: list | |
| 879 :param event_categories: Specifies the Amazon Redshift event categories | |
| 880 to be published by the event notification subscription. | |
| 881 Values: Configuration, Management, Monitoring, Security | |
| 882 | |
| 883 :type severity: string | |
| 884 :param severity: Specifies the Amazon Redshift event severity to be | |
| 885 published by the event notification subscription. | |
| 886 Values: ERROR, INFO | |
| 887 | |
| 888 :type enabled: boolean | |
| 889 :param enabled: A Boolean value; set to `True` to activate the | |
| 890 subscription, set to `False` to create the subscription but not | |
| 891 active it. | |
| 892 | |
| 893 """ | |
| 894 params = { | |
| 895 'SubscriptionName': subscription_name, | |
| 896 'SnsTopicArn': sns_topic_arn, | |
| 897 } | |
| 898 if source_type is not None: | |
| 899 params['SourceType'] = source_type | |
| 900 if source_ids is not None: | |
| 901 self.build_list_params(params, | |
| 902 source_ids, | |
| 903 'SourceIds.member') | |
| 904 if event_categories is not None: | |
| 905 self.build_list_params(params, | |
| 906 event_categories, | |
| 907 'EventCategories.member') | |
| 908 if severity is not None: | |
| 909 params['Severity'] = severity | |
| 910 if enabled is not None: | |
| 911 params['Enabled'] = str( | |
| 912 enabled).lower() | |
| 913 return self._make_request( | |
| 914 action='CreateEventSubscription', | |
| 915 verb='POST', | |
| 916 path='/', params=params) | |
| 917 | |
| 918 def create_hsm_client_certificate(self, | |
| 919 hsm_client_certificate_identifier): | |
| 920 """ | |
| 921 Creates an HSM client certificate that an Amazon Redshift | |
| 922 cluster will use to connect to the client's HSM in order to | |
| 923 store and retrieve the keys used to encrypt the cluster | |
| 924 databases. | |
| 925 | |
| 926 The command returns a public key, which you must store in the | |
| 927 HSM. In addition to creating the HSM certificate, you must | |
| 928 create an Amazon Redshift HSM configuration that provides a | |
| 929 cluster the information needed to store and use encryption | |
| 930 keys in the HSM. For more information, go to `Hardware | |
| 931 Security Modules`_ in the Amazon Redshift Management Guide. | |
| 932 | |
| 933 :type hsm_client_certificate_identifier: string | |
| 934 :param hsm_client_certificate_identifier: The identifier to be assigned | |
| 935 to the new HSM client certificate that the cluster will use to | |
| 936 connect to the HSM to use the database encryption keys. | |
| 937 | |
| 938 """ | |
| 939 params = { | |
| 940 'HsmClientCertificateIdentifier': hsm_client_certificate_identifier, | |
| 941 } | |
| 942 return self._make_request( | |
| 943 action='CreateHsmClientCertificate', | |
| 944 verb='POST', | |
| 945 path='/', params=params) | |
| 946 | |
| 947 def create_hsm_configuration(self, hsm_configuration_identifier, | |
| 948 description, hsm_ip_address, | |
| 949 hsm_partition_name, hsm_partition_password, | |
| 950 hsm_server_public_certificate): | |
| 951 """ | |
| 952 Creates an HSM configuration that contains the information | |
| 953 required by an Amazon Redshift cluster to store and use | |
| 954 database encryption keys in a Hardware Security Module (HSM). | |
| 955 After creating the HSM configuration, you can specify it as a | |
| 956 parameter when creating a cluster. The cluster will then store | |
| 957 its encryption keys in the HSM. | |
| 958 | |
| 959 In addition to creating an HSM configuration, you must also | |
| 960 create an HSM client certificate. For more information, go to | |
| 961 `Hardware Security Modules`_ in the Amazon Redshift Management | |
| 962 Guide. | |
| 963 | |
| 964 :type hsm_configuration_identifier: string | |
| 965 :param hsm_configuration_identifier: The identifier to be assigned to | |
| 966 the new Amazon Redshift HSM configuration. | |
| 967 | |
| 968 :type description: string | |
| 969 :param description: A text description of the HSM configuration to be | |
| 970 created. | |
| 971 | |
| 972 :type hsm_ip_address: string | |
| 973 :param hsm_ip_address: The IP address that the Amazon Redshift cluster | |
| 974 must use to access the HSM. | |
| 975 | |
| 976 :type hsm_partition_name: string | |
| 977 :param hsm_partition_name: The name of the partition in the HSM where | |
| 978 the Amazon Redshift clusters will store their database encryption | |
| 979 keys. | |
| 980 | |
| 981 :type hsm_partition_password: string | |
| 982 :param hsm_partition_password: The password required to access the HSM | |
| 983 partition. | |
| 984 | |
| 985 :type hsm_server_public_certificate: string | |
| 986 :param hsm_server_public_certificate: The HSMs public certificate file. | |
| 987 When using Cloud HSM, the file name is server.pem. | |
| 988 | |
| 989 """ | |
| 990 params = { | |
| 991 'HsmConfigurationIdentifier': hsm_configuration_identifier, | |
| 992 'Description': description, | |
| 993 'HsmIpAddress': hsm_ip_address, | |
| 994 'HsmPartitionName': hsm_partition_name, | |
| 995 'HsmPartitionPassword': hsm_partition_password, | |
| 996 'HsmServerPublicCertificate': hsm_server_public_certificate, | |
| 997 } | |
| 998 return self._make_request( | |
| 999 action='CreateHsmConfiguration', | |
| 1000 verb='POST', | |
| 1001 path='/', params=params) | |
| 1002 | |
| 1003 def delete_cluster(self, cluster_identifier, | |
| 1004 skip_final_cluster_snapshot=None, | |
| 1005 final_cluster_snapshot_identifier=None): | |
| 1006 """ | |
| 1007 Deletes a previously provisioned cluster. A successful | |
| 1008 response from the web service indicates that the request was | |
| 1009 received correctly. If a final cluster snapshot is requested | |
| 1010 the status of the cluster will be "final-snapshot" while the | |
| 1011 snapshot is being taken, then it's "deleting" once Amazon | |
| 1012 Redshift begins deleting the cluster. Use DescribeClusters to | |
| 1013 monitor the status of the deletion. The delete operation | |
| 1014 cannot be canceled or reverted once submitted. For more | |
| 1015 information about managing clusters, go to `Amazon Redshift | |
| 1016 Clusters`_ in the Amazon Redshift Management Guide . | |
| 1017 | |
| 1018 :type cluster_identifier: string | |
| 1019 :param cluster_identifier: | |
| 1020 The identifier of the cluster to be deleted. | |
| 1021 | |
| 1022 Constraints: | |
| 1023 | |
| 1024 | |
| 1025 + Must contain lowercase characters. | |
| 1026 + Must contain from 1 to 63 alphanumeric characters or hyphens. | |
| 1027 + First character must be a letter. | |
| 1028 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 1029 | |
| 1030 :type skip_final_cluster_snapshot: boolean | |
| 1031 :param skip_final_cluster_snapshot: Determines whether a final snapshot | |
| 1032 of the cluster is created before Amazon Redshift deletes the | |
| 1033 cluster. If `True`, a final cluster snapshot is not created. If | |
| 1034 `False`, a final cluster snapshot is created before the cluster is | |
| 1035 deleted. | |
| 1036 Default: `False` | |
| 1037 | |
| 1038 :type final_cluster_snapshot_identifier: string | |
| 1039 :param final_cluster_snapshot_identifier: | |
| 1040 The identifier of the final snapshot that is to be created immediately | |
| 1041 before deleting the cluster. If this parameter is provided, | |
| 1042 SkipFinalClusterSnapshot must be `False`. | |
| 1043 | |
| 1044 Constraints: | |
| 1045 | |
| 1046 | |
| 1047 + Must be 1 to 255 alphanumeric characters. | |
| 1048 + First character must be a letter. | |
| 1049 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 1050 | |
| 1051 """ | |
| 1052 params = {'ClusterIdentifier': cluster_identifier, } | |
| 1053 if skip_final_cluster_snapshot is not None: | |
| 1054 params['SkipFinalClusterSnapshot'] = str( | |
| 1055 skip_final_cluster_snapshot).lower() | |
| 1056 if final_cluster_snapshot_identifier is not None: | |
| 1057 params['FinalClusterSnapshotIdentifier'] = final_cluster_snapshot_identifier | |
| 1058 return self._make_request( | |
| 1059 action='DeleteCluster', | |
| 1060 verb='POST', | |
| 1061 path='/', params=params) | |
| 1062 | |
| 1063 def delete_cluster_parameter_group(self, parameter_group_name): | |
| 1064 """ | |
| 1065 Deletes a specified Amazon Redshift parameter group. | |
| 1066 | |
| 1067 :type parameter_group_name: string | |
| 1068 :param parameter_group_name: | |
| 1069 The name of the parameter group to be deleted. | |
| 1070 | |
| 1071 Constraints: | |
| 1072 | |
| 1073 | |
| 1074 + Must be the name of an existing cluster parameter group. | |
| 1075 + Cannot delete a default cluster parameter group. | |
| 1076 | |
| 1077 """ | |
| 1078 params = {'ParameterGroupName': parameter_group_name, } | |
| 1079 return self._make_request( | |
| 1080 action='DeleteClusterParameterGroup', | |
| 1081 verb='POST', | |
| 1082 path='/', params=params) | |
| 1083 | |
| 1084 def delete_cluster_security_group(self, cluster_security_group_name): | |
| 1085 """ | |
| 1086 Deletes an Amazon Redshift security group. | |
| 1087 | |
| 1088 For information about managing security groups, go to `Amazon | |
| 1089 Redshift Cluster Security Groups`_ in the Amazon Redshift | |
| 1090 Management Guide . | |
| 1091 | |
| 1092 :type cluster_security_group_name: string | |
| 1093 :param cluster_security_group_name: The name of the cluster security | |
| 1094 group to be deleted. | |
| 1095 | |
| 1096 """ | |
| 1097 params = { | |
| 1098 'ClusterSecurityGroupName': cluster_security_group_name, | |
| 1099 } | |
| 1100 return self._make_request( | |
| 1101 action='DeleteClusterSecurityGroup', | |
| 1102 verb='POST', | |
| 1103 path='/', params=params) | |
| 1104 | |
| 1105 def delete_cluster_snapshot(self, snapshot_identifier, | |
| 1106 snapshot_cluster_identifier=None): | |
| 1107 """ | |
| 1108 Deletes the specified manual snapshot. The snapshot must be in | |
| 1109 the `available` state, with no other users authorized to | |
| 1110 access the snapshot. | |
| 1111 | |
| 1112 Unlike automated snapshots, manual snapshots are retained even | |
| 1113 after you delete your cluster. Amazon Redshift does not delete | |
| 1114 your manual snapshots. You must delete manual snapshot | |
| 1115 explicitly to avoid getting charged. If other accounts are | |
| 1116 authorized to access the snapshot, you must revoke all of the | |
| 1117 authorizations before you can delete the snapshot. | |
| 1118 | |
| 1119 :type snapshot_identifier: string | |
| 1120 :param snapshot_identifier: The unique identifier of the manual | |
| 1121 snapshot to be deleted. | |
| 1122 Constraints: Must be the name of an existing snapshot that is in the | |
| 1123 `available` state. | |
| 1124 | |
| 1125 :type snapshot_cluster_identifier: string | |
| 1126 :param snapshot_cluster_identifier: The unique identifier of the | |
| 1127 cluster the snapshot was created from. This parameter is required | |
| 1128 if your IAM user has a policy containing a snapshot resource | |
| 1129 element that specifies anything other than * for the cluster name. | |
| 1130 Constraints: Must be the name of valid cluster. | |
| 1131 | |
| 1132 """ | |
| 1133 params = {'SnapshotIdentifier': snapshot_identifier, } | |
| 1134 if snapshot_cluster_identifier is not None: | |
| 1135 params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier | |
| 1136 return self._make_request( | |
| 1137 action='DeleteClusterSnapshot', | |
| 1138 verb='POST', | |
| 1139 path='/', params=params) | |
| 1140 | |
| 1141 def delete_cluster_subnet_group(self, cluster_subnet_group_name): | |
| 1142 """ | |
| 1143 Deletes the specified cluster subnet group. | |
| 1144 | |
| 1145 :type cluster_subnet_group_name: string | |
| 1146 :param cluster_subnet_group_name: The name of the cluster subnet group | |
| 1147 name to be deleted. | |
| 1148 | |
| 1149 """ | |
| 1150 params = { | |
| 1151 'ClusterSubnetGroupName': cluster_subnet_group_name, | |
| 1152 } | |
| 1153 return self._make_request( | |
| 1154 action='DeleteClusterSubnetGroup', | |
| 1155 verb='POST', | |
| 1156 path='/', params=params) | |
| 1157 | |
| 1158 def delete_event_subscription(self, subscription_name): | |
| 1159 """ | |
| 1160 Deletes an Amazon Redshift event notification subscription. | |
| 1161 | |
| 1162 :type subscription_name: string | |
| 1163 :param subscription_name: The name of the Amazon Redshift event | |
| 1164 notification subscription to be deleted. | |
| 1165 | |
| 1166 """ | |
| 1167 params = {'SubscriptionName': subscription_name, } | |
| 1168 return self._make_request( | |
| 1169 action='DeleteEventSubscription', | |
| 1170 verb='POST', | |
| 1171 path='/', params=params) | |
| 1172 | |
| 1173 def delete_hsm_client_certificate(self, | |
| 1174 hsm_client_certificate_identifier): | |
| 1175 """ | |
| 1176 Deletes the specified HSM client certificate. | |
| 1177 | |
| 1178 :type hsm_client_certificate_identifier: string | |
| 1179 :param hsm_client_certificate_identifier: The identifier of the HSM | |
| 1180 client certificate to be deleted. | |
| 1181 | |
| 1182 """ | |
| 1183 params = { | |
| 1184 'HsmClientCertificateIdentifier': hsm_client_certificate_identifier, | |
| 1185 } | |
| 1186 return self._make_request( | |
| 1187 action='DeleteHsmClientCertificate', | |
| 1188 verb='POST', | |
| 1189 path='/', params=params) | |
| 1190 | |
| 1191 def delete_hsm_configuration(self, hsm_configuration_identifier): | |
| 1192 """ | |
| 1193 Deletes the specified Amazon Redshift HSM configuration. | |
| 1194 | |
| 1195 :type hsm_configuration_identifier: string | |
| 1196 :param hsm_configuration_identifier: The identifier of the Amazon | |
| 1197 Redshift HSM configuration to be deleted. | |
| 1198 | |
| 1199 """ | |
| 1200 params = { | |
| 1201 'HsmConfigurationIdentifier': hsm_configuration_identifier, | |
| 1202 } | |
| 1203 return self._make_request( | |
| 1204 action='DeleteHsmConfiguration', | |
| 1205 verb='POST', | |
| 1206 path='/', params=params) | |
| 1207 | |
| 1208 def describe_cluster_parameter_groups(self, parameter_group_name=None, | |
| 1209 max_records=None, marker=None): | |
| 1210 """ | |
| 1211 Returns a list of Amazon Redshift parameter groups, including | |
| 1212 parameter groups you created and the default parameter group. | |
| 1213 For each parameter group, the response includes the parameter | |
| 1214 group name, description, and parameter group family name. You | |
| 1215 can optionally specify a name to retrieve the description of a | |
| 1216 specific parameter group. | |
| 1217 | |
| 1218 For more information about managing parameter groups, go to | |
| 1219 `Amazon Redshift Parameter Groups`_ in the Amazon Redshift | |
| 1220 Management Guide . | |
| 1221 | |
| 1222 :type parameter_group_name: string | |
| 1223 :param parameter_group_name: The name of a specific parameter group for | |
| 1224 which to return details. By default, details about all parameter | |
| 1225 groups and the default parameter group are returned. | |
| 1226 | |
| 1227 :type max_records: integer | |
| 1228 :param max_records: The maximum number of response records to return in | |
| 1229 each call. If the number of remaining response records exceeds the | |
| 1230 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1231 field of the response. You can retrieve the next set of records by | |
| 1232 retrying the command with the returned marker value. | |
| 1233 Default: `100` | |
| 1234 | |
| 1235 Constraints: minimum 20, maximum 100. | |
| 1236 | |
| 1237 :type marker: string | |
| 1238 :param marker: An optional parameter that specifies the starting point | |
| 1239 to return a set of response records. When the results of a | |
| 1240 DescribeClusterParameterGroups request exceed the value specified | |
| 1241 in `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1242 response. You can retrieve the next set of response records by | |
| 1243 providing the returned marker value in the `Marker` parameter and | |
| 1244 retrying the request. | |
| 1245 | |
| 1246 """ | |
| 1247 params = {} | |
| 1248 if parameter_group_name is not None: | |
| 1249 params['ParameterGroupName'] = parameter_group_name | |
| 1250 if max_records is not None: | |
| 1251 params['MaxRecords'] = max_records | |
| 1252 if marker is not None: | |
| 1253 params['Marker'] = marker | |
| 1254 return self._make_request( | |
| 1255 action='DescribeClusterParameterGroups', | |
| 1256 verb='POST', | |
| 1257 path='/', params=params) | |
| 1258 | |
| 1259 def describe_cluster_parameters(self, parameter_group_name, source=None, | |
| 1260 max_records=None, marker=None): | |
| 1261 """ | |
| 1262 Returns a detailed list of parameters contained within the | |
| 1263 specified Amazon Redshift parameter group. For each parameter | |
| 1264 the response includes information such as parameter name, | |
| 1265 description, data type, value, whether the parameter value is | |
| 1266 modifiable, and so on. | |
| 1267 | |
| 1268 You can specify source filter to retrieve parameters of only | |
| 1269 specific type. For example, to retrieve parameters that were | |
| 1270 modified by a user action such as from | |
| 1271 ModifyClusterParameterGroup, you can specify source equal to | |
| 1272 user . | |
| 1273 | |
| 1274 For more information about managing parameter groups, go to | |
| 1275 `Amazon Redshift Parameter Groups`_ in the Amazon Redshift | |
| 1276 Management Guide . | |
| 1277 | |
| 1278 :type parameter_group_name: string | |
| 1279 :param parameter_group_name: The name of a cluster parameter group for | |
| 1280 which to return details. | |
| 1281 | |
| 1282 :type source: string | |
| 1283 :param source: The parameter types to return. Specify `user` to show | |
| 1284 parameters that are different form the default. Similarly, specify | |
| 1285 `engine-default` to show parameters that are the same as the | |
| 1286 default parameter group. | |
| 1287 Default: All parameter types returned. | |
| 1288 | |
| 1289 Valid Values: `user` | `engine-default` | |
| 1290 | |
| 1291 :type max_records: integer | |
| 1292 :param max_records: The maximum number of response records to return in | |
| 1293 each call. If the number of remaining response records exceeds the | |
| 1294 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1295 field of the response. You can retrieve the next set of records by | |
| 1296 retrying the command with the returned marker value. | |
| 1297 Default: `100` | |
| 1298 | |
| 1299 Constraints: minimum 20, maximum 100. | |
| 1300 | |
| 1301 :type marker: string | |
| 1302 :param marker: An optional parameter that specifies the starting point | |
| 1303 to return a set of response records. When the results of a | |
| 1304 DescribeClusterParameters request exceed the value specified in | |
| 1305 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1306 response. You can retrieve the next set of response records by | |
| 1307 providing the returned marker value in the `Marker` parameter and | |
| 1308 retrying the request. | |
| 1309 | |
| 1310 """ | |
| 1311 params = {'ParameterGroupName': parameter_group_name, } | |
| 1312 if source is not None: | |
| 1313 params['Source'] = source | |
| 1314 if max_records is not None: | |
| 1315 params['MaxRecords'] = max_records | |
| 1316 if marker is not None: | |
| 1317 params['Marker'] = marker | |
| 1318 return self._make_request( | |
| 1319 action='DescribeClusterParameters', | |
| 1320 verb='POST', | |
| 1321 path='/', params=params) | |
| 1322 | |
| 1323 def describe_cluster_security_groups(self, | |
| 1324 cluster_security_group_name=None, | |
| 1325 max_records=None, marker=None): | |
| 1326 """ | |
| 1327 Returns information about Amazon Redshift security groups. If | |
| 1328 the name of a security group is specified, the response will | |
| 1329 contain only information about only that security group. | |
| 1330 | |
| 1331 For information about managing security groups, go to `Amazon | |
| 1332 Redshift Cluster Security Groups`_ in the Amazon Redshift | |
| 1333 Management Guide . | |
| 1334 | |
| 1335 :type cluster_security_group_name: string | |
| 1336 :param cluster_security_group_name: The name of a cluster security | |
| 1337 group for which you are requesting details. You can specify either | |
| 1338 the **Marker** parameter or a **ClusterSecurityGroupName** | |
| 1339 parameter, but not both. | |
| 1340 Example: `securitygroup1` | |
| 1341 | |
| 1342 :type max_records: integer | |
| 1343 :param max_records: The maximum number of response records to return in | |
| 1344 each call. If the number of remaining response records exceeds the | |
| 1345 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1346 field of the response. You can retrieve the next set of records by | |
| 1347 retrying the command with the returned marker value. | |
| 1348 Default: `100` | |
| 1349 | |
| 1350 Constraints: minimum 20, maximum 100. | |
| 1351 | |
| 1352 :type marker: string | |
| 1353 :param marker: An optional parameter that specifies the starting point | |
| 1354 to return a set of response records. When the results of a | |
| 1355 DescribeClusterSecurityGroups request exceed the value specified in | |
| 1356 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1357 response. You can retrieve the next set of response records by | |
| 1358 providing the returned marker value in the `Marker` parameter and | |
| 1359 retrying the request. | |
| 1360 Constraints: You can specify either the **ClusterSecurityGroupName** | |
| 1361 parameter or the **Marker** parameter, but not both. | |
| 1362 | |
| 1363 """ | |
| 1364 params = {} | |
| 1365 if cluster_security_group_name is not None: | |
| 1366 params['ClusterSecurityGroupName'] = cluster_security_group_name | |
| 1367 if max_records is not None: | |
| 1368 params['MaxRecords'] = max_records | |
| 1369 if marker is not None: | |
| 1370 params['Marker'] = marker | |
| 1371 return self._make_request( | |
| 1372 action='DescribeClusterSecurityGroups', | |
| 1373 verb='POST', | |
| 1374 path='/', params=params) | |
| 1375 | |
| 1376 def describe_cluster_snapshots(self, cluster_identifier=None, | |
| 1377 snapshot_identifier=None, | |
| 1378 snapshot_type=None, start_time=None, | |
| 1379 end_time=None, max_records=None, | |
| 1380 marker=None, owner_account=None): | |
| 1381 """ | |
| 1382 Returns one or more snapshot objects, which contain metadata | |
| 1383 about your cluster snapshots. By default, this operation | |
| 1384 returns information about all snapshots of all clusters that | |
| 1385 are owned by you AWS customer account. No information is | |
| 1386 returned for snapshots owned by inactive AWS customer | |
| 1387 accounts. | |
| 1388 | |
| 1389 :type cluster_identifier: string | |
| 1390 :param cluster_identifier: The identifier of the cluster for which | |
| 1391 information about snapshots is requested. | |
| 1392 | |
| 1393 :type snapshot_identifier: string | |
| 1394 :param snapshot_identifier: The snapshot identifier of the snapshot | |
| 1395 about which to return information. | |
| 1396 | |
| 1397 :type snapshot_type: string | |
| 1398 :param snapshot_type: The type of snapshots for which you are | |
| 1399 requesting information. By default, snapshots of all types are | |
| 1400 returned. | |
| 1401 Valid Values: `automated` | `manual` | |
| 1402 | |
| 1403 :type start_time: timestamp | |
| 1404 :param start_time: A value that requests only snapshots created at or | |
| 1405 after the specified time. The time value is specified in ISO 8601 | |
| 1406 format. For more information about ISO 8601, go to the `ISO8601 | |
| 1407 Wikipedia page.`_ | |
| 1408 Example: `2012-07-16T18:00:00Z` | |
| 1409 | |
| 1410 :type end_time: timestamp | |
| 1411 :param end_time: A time value that requests only snapshots created at | |
| 1412 or before the specified time. The time value is specified in ISO | |
| 1413 8601 format. For more information about ISO 8601, go to the | |
| 1414 `ISO8601 Wikipedia page.`_ | |
| 1415 Example: `2012-07-16T18:00:00Z` | |
| 1416 | |
| 1417 :type max_records: integer | |
| 1418 :param max_records: The maximum number of response records to return in | |
| 1419 each call. If the number of remaining response records exceeds the | |
| 1420 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1421 field of the response. You can retrieve the next set of records by | |
| 1422 retrying the command with the returned marker value. | |
| 1423 Default: `100` | |
| 1424 | |
| 1425 Constraints: minimum 20, maximum 100. | |
| 1426 | |
| 1427 :type marker: string | |
| 1428 :param marker: An optional parameter that specifies the starting point | |
| 1429 to return a set of response records. When the results of a | |
| 1430 DescribeClusterSnapshots request exceed the value specified in | |
| 1431 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1432 response. You can retrieve the next set of response records by | |
| 1433 providing the returned marker value in the `Marker` parameter and | |
| 1434 retrying the request. | |
| 1435 | |
| 1436 :type owner_account: string | |
| 1437 :param owner_account: The AWS customer account used to create or copy | |
| 1438 the snapshot. Use this field to filter the results to snapshots | |
| 1439 owned by a particular account. To describe snapshots you own, | |
| 1440 either specify your AWS customer account, or do not specify the | |
| 1441 parameter. | |
| 1442 | |
| 1443 """ | |
| 1444 params = {} | |
| 1445 if cluster_identifier is not None: | |
| 1446 params['ClusterIdentifier'] = cluster_identifier | |
| 1447 if snapshot_identifier is not None: | |
| 1448 params['SnapshotIdentifier'] = snapshot_identifier | |
| 1449 if snapshot_type is not None: | |
| 1450 params['SnapshotType'] = snapshot_type | |
| 1451 if start_time is not None: | |
| 1452 params['StartTime'] = start_time | |
| 1453 if end_time is not None: | |
| 1454 params['EndTime'] = end_time | |
| 1455 if max_records is not None: | |
| 1456 params['MaxRecords'] = max_records | |
| 1457 if marker is not None: | |
| 1458 params['Marker'] = marker | |
| 1459 if owner_account is not None: | |
| 1460 params['OwnerAccount'] = owner_account | |
| 1461 return self._make_request( | |
| 1462 action='DescribeClusterSnapshots', | |
| 1463 verb='POST', | |
| 1464 path='/', params=params) | |
| 1465 | |
| 1466 def describe_cluster_subnet_groups(self, cluster_subnet_group_name=None, | |
| 1467 max_records=None, marker=None): | |
| 1468 """ | |
| 1469 Returns one or more cluster subnet group objects, which | |
| 1470 contain metadata about your cluster subnet groups. By default, | |
| 1471 this operation returns information about all cluster subnet | |
| 1472 groups that are defined in you AWS account. | |
| 1473 | |
| 1474 :type cluster_subnet_group_name: string | |
| 1475 :param cluster_subnet_group_name: The name of the cluster subnet group | |
| 1476 for which information is requested. | |
| 1477 | |
| 1478 :type max_records: integer | |
| 1479 :param max_records: The maximum number of response records to return in | |
| 1480 each call. If the number of remaining response records exceeds the | |
| 1481 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1482 field of the response. You can retrieve the next set of records by | |
| 1483 retrying the command with the returned marker value. | |
| 1484 Default: `100` | |
| 1485 | |
| 1486 Constraints: minimum 20, maximum 100. | |
| 1487 | |
| 1488 :type marker: string | |
| 1489 :param marker: An optional parameter that specifies the starting point | |
| 1490 to return a set of response records. When the results of a | |
| 1491 DescribeClusterSubnetGroups request exceed the value specified in | |
| 1492 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1493 response. You can retrieve the next set of response records by | |
| 1494 providing the returned marker value in the `Marker` parameter and | |
| 1495 retrying the request. | |
| 1496 | |
| 1497 """ | |
| 1498 params = {} | |
| 1499 if cluster_subnet_group_name is not None: | |
| 1500 params['ClusterSubnetGroupName'] = cluster_subnet_group_name | |
| 1501 if max_records is not None: | |
| 1502 params['MaxRecords'] = max_records | |
| 1503 if marker is not None: | |
| 1504 params['Marker'] = marker | |
| 1505 return self._make_request( | |
| 1506 action='DescribeClusterSubnetGroups', | |
| 1507 verb='POST', | |
| 1508 path='/', params=params) | |
| 1509 | |
| 1510 def describe_cluster_versions(self, cluster_version=None, | |
| 1511 cluster_parameter_group_family=None, | |
| 1512 max_records=None, marker=None): | |
| 1513 """ | |
| 1514 Returns descriptions of the available Amazon Redshift cluster | |
| 1515 versions. You can call this operation even before creating any | |
| 1516 clusters to learn more about the Amazon Redshift versions. For | |
| 1517 more information about managing clusters, go to `Amazon | |
| 1518 Redshift Clusters`_ in the Amazon Redshift Management Guide | |
| 1519 | |
| 1520 :type cluster_version: string | |
| 1521 :param cluster_version: The specific cluster version to return. | |
| 1522 Example: `1.0` | |
| 1523 | |
| 1524 :type cluster_parameter_group_family: string | |
| 1525 :param cluster_parameter_group_family: | |
| 1526 The name of a specific cluster parameter group family to return details | |
| 1527 for. | |
| 1528 | |
| 1529 Constraints: | |
| 1530 | |
| 1531 | |
| 1532 + Must be 1 to 255 alphanumeric characters | |
| 1533 + First character must be a letter | |
| 1534 + Cannot end with a hyphen or contain two consecutive hyphens | |
| 1535 | |
| 1536 :type max_records: integer | |
| 1537 :param max_records: The maximum number of response records to return in | |
| 1538 each call. If the number of remaining response records exceeds the | |
| 1539 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1540 field of the response. You can retrieve the next set of records by | |
| 1541 retrying the command with the returned marker value. | |
| 1542 Default: `100` | |
| 1543 | |
| 1544 Constraints: minimum 20, maximum 100. | |
| 1545 | |
| 1546 :type marker: string | |
| 1547 :param marker: An optional parameter that specifies the starting point | |
| 1548 to return a set of response records. When the results of a | |
| 1549 DescribeClusterVersions request exceed the value specified in | |
| 1550 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1551 response. You can retrieve the next set of response records by | |
| 1552 providing the returned marker value in the `Marker` parameter and | |
| 1553 retrying the request. | |
| 1554 | |
| 1555 """ | |
| 1556 params = {} | |
| 1557 if cluster_version is not None: | |
| 1558 params['ClusterVersion'] = cluster_version | |
| 1559 if cluster_parameter_group_family is not None: | |
| 1560 params['ClusterParameterGroupFamily'] = cluster_parameter_group_family | |
| 1561 if max_records is not None: | |
| 1562 params['MaxRecords'] = max_records | |
| 1563 if marker is not None: | |
| 1564 params['Marker'] = marker | |
| 1565 return self._make_request( | |
| 1566 action='DescribeClusterVersions', | |
| 1567 verb='POST', | |
| 1568 path='/', params=params) | |
| 1569 | |
| 1570 def describe_clusters(self, cluster_identifier=None, max_records=None, | |
| 1571 marker=None): | |
| 1572 """ | |
| 1573 Returns properties of provisioned clusters including general | |
| 1574 cluster properties, cluster database properties, maintenance | |
| 1575 and backup properties, and security and access properties. | |
| 1576 This operation supports pagination. For more information about | |
| 1577 managing clusters, go to `Amazon Redshift Clusters`_ in the | |
| 1578 Amazon Redshift Management Guide . | |
| 1579 | |
| 1580 :type cluster_identifier: string | |
| 1581 :param cluster_identifier: The unique identifier of a cluster whose | |
| 1582 properties you are requesting. This parameter is case sensitive. | |
| 1583 The default is that all clusters defined for an account are returned. | |
| 1584 | |
| 1585 :type max_records: integer | |
| 1586 :param max_records: The maximum number of response records to return in | |
| 1587 each call. If the number of remaining response records exceeds the | |
| 1588 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1589 field of the response. You can retrieve the next set of records by | |
| 1590 retrying the command with the returned marker value. | |
| 1591 Default: `100` | |
| 1592 | |
| 1593 Constraints: minimum 20, maximum 100. | |
| 1594 | |
| 1595 :type marker: string | |
| 1596 :param marker: An optional parameter that specifies the starting point | |
| 1597 to return a set of response records. When the results of a | |
| 1598 DescribeClusters request exceed the value specified in | |
| 1599 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1600 response. You can retrieve the next set of response records by | |
| 1601 providing the returned marker value in the `Marker` parameter and | |
| 1602 retrying the request. | |
| 1603 Constraints: You can specify either the **ClusterIdentifier** parameter | |
| 1604 or the **Marker** parameter, but not both. | |
| 1605 | |
| 1606 """ | |
| 1607 params = {} | |
| 1608 if cluster_identifier is not None: | |
| 1609 params['ClusterIdentifier'] = cluster_identifier | |
| 1610 if max_records is not None: | |
| 1611 params['MaxRecords'] = max_records | |
| 1612 if marker is not None: | |
| 1613 params['Marker'] = marker | |
| 1614 return self._make_request( | |
| 1615 action='DescribeClusters', | |
| 1616 verb='POST', | |
| 1617 path='/', params=params) | |
| 1618 | |
| 1619 def describe_default_cluster_parameters(self, parameter_group_family, | |
| 1620 max_records=None, marker=None): | |
| 1621 """ | |
| 1622 Returns a list of parameter settings for the specified | |
| 1623 parameter group family. | |
| 1624 | |
| 1625 For more information about managing parameter groups, go to | |
| 1626 `Amazon Redshift Parameter Groups`_ in the Amazon Redshift | |
| 1627 Management Guide . | |
| 1628 | |
| 1629 :type parameter_group_family: string | |
| 1630 :param parameter_group_family: The name of the cluster parameter group | |
| 1631 family. | |
| 1632 | |
| 1633 :type max_records: integer | |
| 1634 :param max_records: The maximum number of response records to return in | |
| 1635 each call. If the number of remaining response records exceeds the | |
| 1636 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1637 field of the response. You can retrieve the next set of records by | |
| 1638 retrying the command with the returned marker value. | |
| 1639 Default: `100` | |
| 1640 | |
| 1641 Constraints: minimum 20, maximum 100. | |
| 1642 | |
| 1643 :type marker: string | |
| 1644 :param marker: An optional parameter that specifies the starting point | |
| 1645 to return a set of response records. When the results of a | |
| 1646 DescribeDefaultClusterParameters request exceed the value specified | |
| 1647 in `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1648 response. You can retrieve the next set of response records by | |
| 1649 providing the returned marker value in the `Marker` parameter and | |
| 1650 retrying the request. | |
| 1651 | |
| 1652 """ | |
| 1653 params = {'ParameterGroupFamily': parameter_group_family, } | |
| 1654 if max_records is not None: | |
| 1655 params['MaxRecords'] = max_records | |
| 1656 if marker is not None: | |
| 1657 params['Marker'] = marker | |
| 1658 return self._make_request( | |
| 1659 action='DescribeDefaultClusterParameters', | |
| 1660 verb='POST', | |
| 1661 path='/', params=params) | |
| 1662 | |
| 1663 def describe_event_categories(self, source_type=None): | |
| 1664 """ | |
| 1665 Displays a list of event categories for all event source | |
| 1666 types, or for a specified source type. For a list of the event | |
| 1667 categories and source types, go to `Amazon Redshift Event | |
| 1668 Notifications`_. | |
| 1669 | |
| 1670 :type source_type: string | |
| 1671 :param source_type: The source type, such as cluster or parameter | |
| 1672 group, to which the described event categories apply. | |
| 1673 Valid values: cluster, snapshot, parameter group, and security group. | |
| 1674 | |
| 1675 """ | |
| 1676 params = {} | |
| 1677 if source_type is not None: | |
| 1678 params['SourceType'] = source_type | |
| 1679 return self._make_request( | |
| 1680 action='DescribeEventCategories', | |
| 1681 verb='POST', | |
| 1682 path='/', params=params) | |
| 1683 | |
| 1684 def describe_event_subscriptions(self, subscription_name=None, | |
| 1685 max_records=None, marker=None): | |
| 1686 """ | |
| 1687 Lists descriptions of all the Amazon Redshift event | |
| 1688 notifications subscription for a customer account. If you | |
| 1689 specify a subscription name, lists the description for that | |
| 1690 subscription. | |
| 1691 | |
| 1692 :type subscription_name: string | |
| 1693 :param subscription_name: The name of the Amazon Redshift event | |
| 1694 notification subscription to be described. | |
| 1695 | |
| 1696 :type max_records: integer | |
| 1697 :param max_records: The maximum number of response records to return in | |
| 1698 each call. If the number of remaining response records exceeds the | |
| 1699 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1700 field of the response. You can retrieve the next set of records by | |
| 1701 retrying the command with the returned marker value. | |
| 1702 Default: `100` | |
| 1703 | |
| 1704 Constraints: minimum 20, maximum 100. | |
| 1705 | |
| 1706 :type marker: string | |
| 1707 :param marker: An optional parameter that specifies the starting point | |
| 1708 to return a set of response records. When the results of a | |
| 1709 DescribeEventSubscriptions request exceed the value specified in | |
| 1710 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1711 response. You can retrieve the next set of response records by | |
| 1712 providing the returned marker value in the `Marker` parameter and | |
| 1713 retrying the request. | |
| 1714 | |
| 1715 """ | |
| 1716 params = {} | |
| 1717 if subscription_name is not None: | |
| 1718 params['SubscriptionName'] = subscription_name | |
| 1719 if max_records is not None: | |
| 1720 params['MaxRecords'] = max_records | |
| 1721 if marker is not None: | |
| 1722 params['Marker'] = marker | |
| 1723 return self._make_request( | |
| 1724 action='DescribeEventSubscriptions', | |
| 1725 verb='POST', | |
| 1726 path='/', params=params) | |
| 1727 | |
| 1728 def describe_events(self, source_identifier=None, source_type=None, | |
| 1729 start_time=None, end_time=None, duration=None, | |
| 1730 max_records=None, marker=None): | |
| 1731 """ | |
| 1732 Returns events related to clusters, security groups, | |
| 1733 snapshots, and parameter groups for the past 14 days. Events | |
| 1734 specific to a particular cluster, security group, snapshot or | |
| 1735 parameter group can be obtained by providing the name as a | |
| 1736 parameter. By default, the past hour of events are returned. | |
| 1737 | |
| 1738 :type source_identifier: string | |
| 1739 :param source_identifier: | |
| 1740 The identifier of the event source for which events will be returned. | |
| 1741 If this parameter is not specified, then all sources are included | |
| 1742 in the response. | |
| 1743 | |
| 1744 Constraints: | |
| 1745 | |
| 1746 If SourceIdentifier is supplied, SourceType must also be provided. | |
| 1747 | |
| 1748 | |
| 1749 + Specify a cluster identifier when SourceType is `cluster`. | |
| 1750 + Specify a cluster security group name when SourceType is `cluster- | |
| 1751 security-group`. | |
| 1752 + Specify a cluster parameter group name when SourceType is `cluster- | |
| 1753 parameter-group`. | |
| 1754 + Specify a cluster snapshot identifier when SourceType is `cluster- | |
| 1755 snapshot`. | |
| 1756 | |
| 1757 :type source_type: string | |
| 1758 :param source_type: | |
| 1759 The event source to retrieve events for. If no value is specified, all | |
| 1760 events are returned. | |
| 1761 | |
| 1762 Constraints: | |
| 1763 | |
| 1764 If SourceType is supplied, SourceIdentifier must also be provided. | |
| 1765 | |
| 1766 | |
| 1767 + Specify `cluster` when SourceIdentifier is a cluster identifier. | |
| 1768 + Specify `cluster-security-group` when SourceIdentifier is a cluster | |
| 1769 security group name. | |
| 1770 + Specify `cluster-parameter-group` when SourceIdentifier is a cluster | |
| 1771 parameter group name. | |
| 1772 + Specify `cluster-snapshot` when SourceIdentifier is a cluster | |
| 1773 snapshot identifier. | |
| 1774 | |
| 1775 :type start_time: timestamp | |
| 1776 :param start_time: The beginning of the time interval to retrieve | |
| 1777 events for, specified in ISO 8601 format. For more information | |
| 1778 about ISO 8601, go to the `ISO8601 Wikipedia page.`_ | |
| 1779 Example: `2009-07-08T18:00Z` | |
| 1780 | |
| 1781 :type end_time: timestamp | |
| 1782 :param end_time: The end of the time interval for which to retrieve | |
| 1783 events, specified in ISO 8601 format. For more information about | |
| 1784 ISO 8601, go to the `ISO8601 Wikipedia page.`_ | |
| 1785 Example: `2009-07-08T18:00Z` | |
| 1786 | |
| 1787 :type duration: integer | |
| 1788 :param duration: The number of minutes prior to the time of the request | |
| 1789 for which to retrieve events. For example, if the request is sent | |
| 1790 at 18:00 and you specify a duration of 60, then only events which | |
| 1791 have occurred after 17:00 will be returned. | |
| 1792 Default: `60` | |
| 1793 | |
| 1794 :type max_records: integer | |
| 1795 :param max_records: The maximum number of response records to return in | |
| 1796 each call. If the number of remaining response records exceeds the | |
| 1797 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1798 field of the response. You can retrieve the next set of records by | |
| 1799 retrying the command with the returned marker value. | |
| 1800 Default: `100` | |
| 1801 | |
| 1802 Constraints: minimum 20, maximum 100. | |
| 1803 | |
| 1804 :type marker: string | |
| 1805 :param marker: An optional parameter that specifies the starting point | |
| 1806 to return a set of response records. When the results of a | |
| 1807 DescribeEvents request exceed the value specified in `MaxRecords`, | |
| 1808 AWS returns a value in the `Marker` field of the response. You can | |
| 1809 retrieve the next set of response records by providing the returned | |
| 1810 marker value in the `Marker` parameter and retrying the request. | |
| 1811 | |
| 1812 """ | |
| 1813 params = {} | |
| 1814 if source_identifier is not None: | |
| 1815 params['SourceIdentifier'] = source_identifier | |
| 1816 if source_type is not None: | |
| 1817 params['SourceType'] = source_type | |
| 1818 if start_time is not None: | |
| 1819 params['StartTime'] = start_time | |
| 1820 if end_time is not None: | |
| 1821 params['EndTime'] = end_time | |
| 1822 if duration is not None: | |
| 1823 params['Duration'] = duration | |
| 1824 if max_records is not None: | |
| 1825 params['MaxRecords'] = max_records | |
| 1826 if marker is not None: | |
| 1827 params['Marker'] = marker | |
| 1828 return self._make_request( | |
| 1829 action='DescribeEvents', | |
| 1830 verb='POST', | |
| 1831 path='/', params=params) | |
| 1832 | |
| 1833 def describe_hsm_client_certificates(self, | |
| 1834 hsm_client_certificate_identifier=None, | |
| 1835 max_records=None, marker=None): | |
| 1836 """ | |
| 1837 Returns information about the specified HSM client | |
| 1838 certificate. If no certificate ID is specified, returns | |
| 1839 information about all the HSM certificates owned by your AWS | |
| 1840 customer account. | |
| 1841 | |
| 1842 :type hsm_client_certificate_identifier: string | |
| 1843 :param hsm_client_certificate_identifier: The identifier of a specific | |
| 1844 HSM client certificate for which you want information. If no | |
| 1845 identifier is specified, information is returned for all HSM client | |
| 1846 certificates owned by your AWS customer account. | |
| 1847 | |
| 1848 :type max_records: integer | |
| 1849 :param max_records: The maximum number of response records to return in | |
| 1850 each call. If the number of remaining response records exceeds the | |
| 1851 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1852 field of the response. You can retrieve the next set of records by | |
| 1853 retrying the command with the returned marker value. | |
| 1854 Default: `100` | |
| 1855 | |
| 1856 Constraints: minimum 20, maximum 100. | |
| 1857 | |
| 1858 :type marker: string | |
| 1859 :param marker: An optional parameter that specifies the starting point | |
| 1860 to return a set of response records. When the results of a | |
| 1861 DescribeHsmClientCertificates request exceed the value specified in | |
| 1862 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1863 response. You can retrieve the next set of response records by | |
| 1864 providing the returned marker value in the `Marker` parameter and | |
| 1865 retrying the request. | |
| 1866 | |
| 1867 """ | |
| 1868 params = {} | |
| 1869 if hsm_client_certificate_identifier is not None: | |
| 1870 params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier | |
| 1871 if max_records is not None: | |
| 1872 params['MaxRecords'] = max_records | |
| 1873 if marker is not None: | |
| 1874 params['Marker'] = marker | |
| 1875 return self._make_request( | |
| 1876 action='DescribeHsmClientCertificates', | |
| 1877 verb='POST', | |
| 1878 path='/', params=params) | |
| 1879 | |
| 1880 def describe_hsm_configurations(self, hsm_configuration_identifier=None, | |
| 1881 max_records=None, marker=None): | |
| 1882 """ | |
| 1883 Returns information about the specified Amazon Redshift HSM | |
| 1884 configuration. If no configuration ID is specified, returns | |
| 1885 information about all the HSM configurations owned by your AWS | |
| 1886 customer account. | |
| 1887 | |
| 1888 :type hsm_configuration_identifier: string | |
| 1889 :param hsm_configuration_identifier: The identifier of a specific | |
| 1890 Amazon Redshift HSM configuration to be described. If no identifier | |
| 1891 is specified, information is returned for all HSM configurations | |
| 1892 owned by your AWS customer account. | |
| 1893 | |
| 1894 :type max_records: integer | |
| 1895 :param max_records: The maximum number of response records to return in | |
| 1896 each call. If the number of remaining response records exceeds the | |
| 1897 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1898 field of the response. You can retrieve the next set of records by | |
| 1899 retrying the command with the returned marker value. | |
| 1900 Default: `100` | |
| 1901 | |
| 1902 Constraints: minimum 20, maximum 100. | |
| 1903 | |
| 1904 :type marker: string | |
| 1905 :param marker: An optional parameter that specifies the starting point | |
| 1906 to return a set of response records. When the results of a | |
| 1907 DescribeHsmConfigurations request exceed the value specified in | |
| 1908 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1909 response. You can retrieve the next set of response records by | |
| 1910 providing the returned marker value in the `Marker` parameter and | |
| 1911 retrying the request. | |
| 1912 | |
| 1913 """ | |
| 1914 params = {} | |
| 1915 if hsm_configuration_identifier is not None: | |
| 1916 params['HsmConfigurationIdentifier'] = hsm_configuration_identifier | |
| 1917 if max_records is not None: | |
| 1918 params['MaxRecords'] = max_records | |
| 1919 if marker is not None: | |
| 1920 params['Marker'] = marker | |
| 1921 return self._make_request( | |
| 1922 action='DescribeHsmConfigurations', | |
| 1923 verb='POST', | |
| 1924 path='/', params=params) | |
| 1925 | |
| 1926 def describe_logging_status(self, cluster_identifier): | |
| 1927 """ | |
| 1928 Describes whether information, such as queries and connection | |
| 1929 attempts, is being logged for the specified Amazon Redshift | |
| 1930 cluster. | |
| 1931 | |
| 1932 :type cluster_identifier: string | |
| 1933 :param cluster_identifier: The identifier of the cluster to get the | |
| 1934 logging status from. | |
| 1935 Example: `examplecluster` | |
| 1936 | |
| 1937 """ | |
| 1938 params = {'ClusterIdentifier': cluster_identifier, } | |
| 1939 return self._make_request( | |
| 1940 action='DescribeLoggingStatus', | |
| 1941 verb='POST', | |
| 1942 path='/', params=params) | |
| 1943 | |
| 1944 def describe_orderable_cluster_options(self, cluster_version=None, | |
| 1945 node_type=None, max_records=None, | |
| 1946 marker=None): | |
| 1947 """ | |
| 1948 Returns a list of orderable cluster options. Before you create | |
| 1949 a new cluster you can use this operation to find what options | |
| 1950 are available, such as the EC2 Availability Zones (AZ) in the | |
| 1951 specific AWS region that you can specify, and the node types | |
| 1952 you can request. The node types differ by available storage, | |
| 1953 memory, CPU and price. With the cost involved you might want | |
| 1954 to obtain a list of cluster options in the specific region and | |
| 1955 specify values when creating a cluster. For more information | |
| 1956 about managing clusters, go to `Amazon Redshift Clusters`_ in | |
| 1957 the Amazon Redshift Management Guide | |
| 1958 | |
| 1959 :type cluster_version: string | |
| 1960 :param cluster_version: The version filter value. Specify this | |
| 1961 parameter to show only the available offerings matching the | |
| 1962 specified version. | |
| 1963 Default: All versions. | |
| 1964 | |
| 1965 Constraints: Must be one of the version returned from | |
| 1966 DescribeClusterVersions. | |
| 1967 | |
| 1968 :type node_type: string | |
| 1969 :param node_type: The node type filter value. Specify this parameter to | |
| 1970 show only the available offerings matching the specified node type. | |
| 1971 | |
| 1972 :type max_records: integer | |
| 1973 :param max_records: The maximum number of response records to return in | |
| 1974 each call. If the number of remaining response records exceeds the | |
| 1975 specified `MaxRecords` value, a value is returned in a `marker` | |
| 1976 field of the response. You can retrieve the next set of records by | |
| 1977 retrying the command with the returned marker value. | |
| 1978 Default: `100` | |
| 1979 | |
| 1980 Constraints: minimum 20, maximum 100. | |
| 1981 | |
| 1982 :type marker: string | |
| 1983 :param marker: An optional parameter that specifies the starting point | |
| 1984 to return a set of response records. When the results of a | |
| 1985 DescribeOrderableClusterOptions request exceed the value specified | |
| 1986 in `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 1987 response. You can retrieve the next set of response records by | |
| 1988 providing the returned marker value in the `Marker` parameter and | |
| 1989 retrying the request. | |
| 1990 | |
| 1991 """ | |
| 1992 params = {} | |
| 1993 if cluster_version is not None: | |
| 1994 params['ClusterVersion'] = cluster_version | |
| 1995 if node_type is not None: | |
| 1996 params['NodeType'] = node_type | |
| 1997 if max_records is not None: | |
| 1998 params['MaxRecords'] = max_records | |
| 1999 if marker is not None: | |
| 2000 params['Marker'] = marker | |
| 2001 return self._make_request( | |
| 2002 action='DescribeOrderableClusterOptions', | |
| 2003 verb='POST', | |
| 2004 path='/', params=params) | |
| 2005 | |
| 2006 def describe_reserved_node_offerings(self, | |
| 2007 reserved_node_offering_id=None, | |
| 2008 max_records=None, marker=None): | |
| 2009 """ | |
| 2010 Returns a list of the available reserved node offerings by | |
| 2011 Amazon Redshift with their descriptions including the node | |
| 2012 type, the fixed and recurring costs of reserving the node and | |
| 2013 duration the node will be reserved for you. These descriptions | |
| 2014 help you determine which reserve node offering you want to | |
| 2015 purchase. You then use the unique offering ID in you call to | |
| 2016 PurchaseReservedNodeOffering to reserve one or more nodes for | |
| 2017 your Amazon Redshift cluster. | |
| 2018 | |
| 2019 For more information about managing parameter groups, go to | |
| 2020 `Purchasing Reserved Nodes`_ in the Amazon Redshift Management | |
| 2021 Guide . | |
| 2022 | |
| 2023 :type reserved_node_offering_id: string | |
| 2024 :param reserved_node_offering_id: The unique identifier for the | |
| 2025 offering. | |
| 2026 | |
| 2027 :type max_records: integer | |
| 2028 :param max_records: The maximum number of response records to return in | |
| 2029 each call. If the number of remaining response records exceeds the | |
| 2030 specified `MaxRecords` value, a value is returned in a `marker` | |
| 2031 field of the response. You can retrieve the next set of records by | |
| 2032 retrying the command with the returned marker value. | |
| 2033 Default: `100` | |
| 2034 | |
| 2035 Constraints: minimum 20, maximum 100. | |
| 2036 | |
| 2037 :type marker: string | |
| 2038 :param marker: An optional parameter that specifies the starting point | |
| 2039 to return a set of response records. When the results of a | |
| 2040 DescribeReservedNodeOfferings request exceed the value specified in | |
| 2041 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 2042 response. You can retrieve the next set of response records by | |
| 2043 providing the returned marker value in the `Marker` parameter and | |
| 2044 retrying the request. | |
| 2045 | |
| 2046 """ | |
| 2047 params = {} | |
| 2048 if reserved_node_offering_id is not None: | |
| 2049 params['ReservedNodeOfferingId'] = reserved_node_offering_id | |
| 2050 if max_records is not None: | |
| 2051 params['MaxRecords'] = max_records | |
| 2052 if marker is not None: | |
| 2053 params['Marker'] = marker | |
| 2054 return self._make_request( | |
| 2055 action='DescribeReservedNodeOfferings', | |
| 2056 verb='POST', | |
| 2057 path='/', params=params) | |
| 2058 | |
| 2059 def describe_reserved_nodes(self, reserved_node_id=None, | |
| 2060 max_records=None, marker=None): | |
| 2061 """ | |
| 2062 Returns the descriptions of the reserved nodes. | |
| 2063 | |
| 2064 :type reserved_node_id: string | |
| 2065 :param reserved_node_id: Identifier for the node reservation. | |
| 2066 | |
| 2067 :type max_records: integer | |
| 2068 :param max_records: The maximum number of response records to return in | |
| 2069 each call. If the number of remaining response records exceeds the | |
| 2070 specified `MaxRecords` value, a value is returned in a `marker` | |
| 2071 field of the response. You can retrieve the next set of records by | |
| 2072 retrying the command with the returned marker value. | |
| 2073 Default: `100` | |
| 2074 | |
| 2075 Constraints: minimum 20, maximum 100. | |
| 2076 | |
| 2077 :type marker: string | |
| 2078 :param marker: An optional parameter that specifies the starting point | |
| 2079 to return a set of response records. When the results of a | |
| 2080 DescribeReservedNodes request exceed the value specified in | |
| 2081 `MaxRecords`, AWS returns a value in the `Marker` field of the | |
| 2082 response. You can retrieve the next set of response records by | |
| 2083 providing the returned marker value in the `Marker` parameter and | |
| 2084 retrying the request. | |
| 2085 | |
| 2086 """ | |
| 2087 params = {} | |
| 2088 if reserved_node_id is not None: | |
| 2089 params['ReservedNodeId'] = reserved_node_id | |
| 2090 if max_records is not None: | |
| 2091 params['MaxRecords'] = max_records | |
| 2092 if marker is not None: | |
| 2093 params['Marker'] = marker | |
| 2094 return self._make_request( | |
| 2095 action='DescribeReservedNodes', | |
| 2096 verb='POST', | |
| 2097 path='/', params=params) | |
| 2098 | |
| 2099 def describe_resize(self, cluster_identifier): | |
| 2100 """ | |
| 2101 Returns information about the last resize operation for the | |
| 2102 specified cluster. If no resize operation has ever been | |
| 2103 initiated for the specified cluster, a `HTTP 404` error is | |
| 2104 returned. If a resize operation was initiated and completed, | |
| 2105 the status of the resize remains as `SUCCEEDED` until the next | |
| 2106 resize. | |
| 2107 | |
| 2108 A resize operation can be requested using ModifyCluster and | |
| 2109 specifying a different number or type of nodes for the | |
| 2110 cluster. | |
| 2111 | |
| 2112 :type cluster_identifier: string | |
| 2113 :param cluster_identifier: The unique identifier of a cluster whose | |
| 2114 resize progress you are requesting. This parameter isn't case- | |
| 2115 sensitive. | |
| 2116 By default, resize operations for all clusters defined for an AWS | |
| 2117 account are returned. | |
| 2118 | |
| 2119 """ | |
| 2120 params = {'ClusterIdentifier': cluster_identifier, } | |
| 2121 return self._make_request( | |
| 2122 action='DescribeResize', | |
| 2123 verb='POST', | |
| 2124 path='/', params=params) | |
| 2125 | |
| 2126 def disable_logging(self, cluster_identifier): | |
| 2127 """ | |
| 2128 Stops logging information, such as queries and connection | |
| 2129 attempts, for the specified Amazon Redshift cluster. | |
| 2130 | |
| 2131 :type cluster_identifier: string | |
| 2132 :param cluster_identifier: The identifier of the cluster on which | |
| 2133 logging is to be stopped. | |
| 2134 Example: `examplecluster` | |
| 2135 | |
| 2136 """ | |
| 2137 params = {'ClusterIdentifier': cluster_identifier, } | |
| 2138 return self._make_request( | |
| 2139 action='DisableLogging', | |
| 2140 verb='POST', | |
| 2141 path='/', params=params) | |
| 2142 | |
| 2143 def disable_snapshot_copy(self, cluster_identifier): | |
| 2144 """ | |
| 2145 Disables the automatic copying of snapshots from one region to | |
| 2146 another region for a specified cluster. | |
| 2147 | |
| 2148 :type cluster_identifier: string | |
| 2149 :param cluster_identifier: The unique identifier of the source cluster | |
| 2150 that you want to disable copying of snapshots to a destination | |
| 2151 region. | |
| 2152 Constraints: Must be the valid name of an existing cluster that has | |
| 2153 cross-region snapshot copy enabled. | |
| 2154 | |
| 2155 """ | |
| 2156 params = {'ClusterIdentifier': cluster_identifier, } | |
| 2157 return self._make_request( | |
| 2158 action='DisableSnapshotCopy', | |
| 2159 verb='POST', | |
| 2160 path='/', params=params) | |
| 2161 | |
| 2162 def enable_logging(self, cluster_identifier, bucket_name, | |
| 2163 s3_key_prefix=None): | |
| 2164 """ | |
| 2165 Starts logging information, such as queries and connection | |
| 2166 attempts, for the specified Amazon Redshift cluster. | |
| 2167 | |
| 2168 :type cluster_identifier: string | |
| 2169 :param cluster_identifier: The identifier of the cluster on which | |
| 2170 logging is to be started. | |
| 2171 Example: `examplecluster` | |
| 2172 | |
| 2173 :type bucket_name: string | |
| 2174 :param bucket_name: | |
| 2175 The name of an existing S3 bucket where the log files are to be stored. | |
| 2176 | |
| 2177 Constraints: | |
| 2178 | |
| 2179 | |
| 2180 + Must be in the same region as the cluster | |
| 2181 + The cluster must have read bucket and put object permissions | |
| 2182 | |
| 2183 :type s3_key_prefix: string | |
| 2184 :param s3_key_prefix: | |
| 2185 The prefix applied to the log file names. | |
| 2186 | |
| 2187 Constraints: | |
| 2188 | |
| 2189 | |
| 2190 + Cannot exceed 512 characters | |
| 2191 + Cannot contain spaces( ), double quotes ("), single quotes ('), a | |
| 2192 backslash (\), or control characters. The hexadecimal codes for | |
| 2193 invalid characters are: | |
| 2194 | |
| 2195 + x00 to x20 | |
| 2196 + x22 | |
| 2197 + x27 | |
| 2198 + x5c | |
| 2199 + x7f or larger | |
| 2200 | |
| 2201 """ | |
| 2202 params = { | |
| 2203 'ClusterIdentifier': cluster_identifier, | |
| 2204 'BucketName': bucket_name, | |
| 2205 } | |
| 2206 if s3_key_prefix is not None: | |
| 2207 params['S3KeyPrefix'] = s3_key_prefix | |
| 2208 return self._make_request( | |
| 2209 action='EnableLogging', | |
| 2210 verb='POST', | |
| 2211 path='/', params=params) | |
| 2212 | |
| 2213 def enable_snapshot_copy(self, cluster_identifier, destination_region, | |
| 2214 retention_period=None): | |
| 2215 """ | |
| 2216 Enables the automatic copy of snapshots from one region to | |
| 2217 another region for a specified cluster. | |
| 2218 | |
| 2219 :type cluster_identifier: string | |
| 2220 :param cluster_identifier: The unique identifier of the source cluster | |
| 2221 to copy snapshots from. | |
| 2222 Constraints: Must be the valid name of an existing cluster that does | |
| 2223 not already have cross-region snapshot copy enabled. | |
| 2224 | |
| 2225 :type destination_region: string | |
| 2226 :param destination_region: The destination region that you want to copy | |
| 2227 snapshots to. | |
| 2228 Constraints: Must be the name of a valid region. For more information, | |
| 2229 see `Regions and Endpoints`_ in the Amazon Web Services General | |
| 2230 Reference. | |
| 2231 | |
| 2232 :type retention_period: integer | |
| 2233 :param retention_period: The number of days to retain automated | |
| 2234 snapshots in the destination region after they are copied from the | |
| 2235 source region. | |
| 2236 Default: 7. | |
| 2237 | |
| 2238 Constraints: Must be at least 1 and no more than 35. | |
| 2239 | |
| 2240 """ | |
| 2241 params = { | |
| 2242 'ClusterIdentifier': cluster_identifier, | |
| 2243 'DestinationRegion': destination_region, | |
| 2244 } | |
| 2245 if retention_period is not None: | |
| 2246 params['RetentionPeriod'] = retention_period | |
| 2247 return self._make_request( | |
| 2248 action='EnableSnapshotCopy', | |
| 2249 verb='POST', | |
| 2250 path='/', params=params) | |
| 2251 | |
| 2252 def modify_cluster(self, cluster_identifier, cluster_type=None, | |
| 2253 node_type=None, number_of_nodes=None, | |
| 2254 cluster_security_groups=None, | |
| 2255 vpc_security_group_ids=None, | |
| 2256 master_user_password=None, | |
| 2257 cluster_parameter_group_name=None, | |
| 2258 automated_snapshot_retention_period=None, | |
| 2259 preferred_maintenance_window=None, | |
| 2260 cluster_version=None, allow_version_upgrade=None, | |
| 2261 hsm_client_certificate_identifier=None, | |
| 2262 hsm_configuration_identifier=None, | |
| 2263 new_cluster_identifier=None): | |
| 2264 """ | |
| 2265 Modifies the settings for a cluster. For example, you can add | |
| 2266 another security or parameter group, update the preferred | |
| 2267 maintenance window, or change the master user password. | |
| 2268 Resetting a cluster password or modifying the security groups | |
| 2269 associated with a cluster do not need a reboot. However, | |
| 2270 modifying a parameter group requires a reboot for parameters | |
| 2271 to take effect. For more information about managing clusters, | |
| 2272 go to `Amazon Redshift Clusters`_ in the Amazon Redshift | |
| 2273 Management Guide | |
| 2274 | |
| 2275 You can also change node type and the number of nodes to scale | |
| 2276 up or down the cluster. When resizing a cluster, you must | |
| 2277 specify both the number of nodes and the node type even if one | |
| 2278 of the parameters does not change. If you specify the same | |
| 2279 number of nodes and node type that are already configured for | |
| 2280 the cluster, an error is returned. | |
| 2281 | |
| 2282 :type cluster_identifier: string | |
| 2283 :param cluster_identifier: The unique identifier of the cluster to be | |
| 2284 modified. | |
| 2285 Example: `examplecluster` | |
| 2286 | |
| 2287 :type cluster_type: string | |
| 2288 :param cluster_type: The new cluster type. | |
| 2289 When you submit your cluster resize request, your existing cluster goes | |
| 2290 into a read-only mode. After Amazon Redshift provisions a new | |
| 2291 cluster based on your resize requirements, there will be outage for | |
| 2292 a period while the old cluster is deleted and your connection is | |
| 2293 switched to the new cluster. You can use DescribeResize to track | |
| 2294 the progress of the resize request. | |
| 2295 | |
| 2296 Valid Values: ` multi-node | single-node ` | |
| 2297 | |
| 2298 :type node_type: string | |
| 2299 :param node_type: The new node type of the cluster. If you specify a | |
| 2300 new node type, you must also specify the number of nodes parameter | |
| 2301 also. | |
| 2302 When you submit your request to resize a cluster, Amazon Redshift sets | |
| 2303 access permissions for the cluster to read-only. After Amazon | |
| 2304 Redshift provisions a new cluster according to your resize | |
| 2305 requirements, there will be a temporary outage while the old | |
| 2306 cluster is deleted and your connection is switched to the new | |
| 2307 cluster. When the new connection is complete, the original access | |
| 2308 permissions for the cluster are restored. You can use the | |
| 2309 DescribeResize to track the progress of the resize request. | |
| 2310 | |
| 2311 Valid Values: ` dw1.xlarge` | `dw1.8xlarge` | `dw2.large` | | |
| 2312 `dw2.8xlarge`. | |
| 2313 | |
| 2314 :type number_of_nodes: integer | |
| 2315 :param number_of_nodes: The new number of nodes of the cluster. If you | |
| 2316 specify a new number of nodes, you must also specify the node type | |
| 2317 parameter also. | |
| 2318 When you submit your request to resize a cluster, Amazon Redshift sets | |
| 2319 access permissions for the cluster to read-only. After Amazon | |
| 2320 Redshift provisions a new cluster according to your resize | |
| 2321 requirements, there will be a temporary outage while the old | |
| 2322 cluster is deleted and your connection is switched to the new | |
| 2323 cluster. When the new connection is complete, the original access | |
| 2324 permissions for the cluster are restored. You can use | |
| 2325 DescribeResize to track the progress of the resize request. | |
| 2326 | |
| 2327 Valid Values: Integer greater than `0`. | |
| 2328 | |
| 2329 :type cluster_security_groups: list | |
| 2330 :param cluster_security_groups: | |
| 2331 A list of cluster security groups to be authorized on this cluster. | |
| 2332 This change is asynchronously applied as soon as possible. | |
| 2333 | |
| 2334 Security groups currently associated with the cluster, and not in the | |
| 2335 list of groups to apply, will be revoked from the cluster. | |
| 2336 | |
| 2337 Constraints: | |
| 2338 | |
| 2339 | |
| 2340 + Must be 1 to 255 alphanumeric characters or hyphens | |
| 2341 + First character must be a letter | |
| 2342 + Cannot end with a hyphen or contain two consecutive hyphens | |
| 2343 | |
| 2344 :type vpc_security_group_ids: list | |
| 2345 :param vpc_security_group_ids: A list of virtual private cloud (VPC) | |
| 2346 security groups to be associated with the cluster. | |
| 2347 | |
| 2348 :type master_user_password: string | |
| 2349 :param master_user_password: | |
| 2350 The new password for the cluster master user. This change is | |
| 2351 asynchronously applied as soon as possible. Between the time of the | |
| 2352 request and the completion of the request, the `MasterUserPassword` | |
| 2353 element exists in the `PendingModifiedValues` element of the | |
| 2354 operation response. | |
| 2355 | |
| 2356 Default: Uses existing setting. | |
| 2357 | |
| 2358 Constraints: | |
| 2359 | |
| 2360 | |
| 2361 + Must be between 8 and 64 characters in length. | |
| 2362 + Must contain at least one uppercase letter. | |
| 2363 + Must contain at least one lowercase letter. | |
| 2364 + Must contain one number. | |
| 2365 + Can be any printable ASCII character (ASCII code 33 to 126) except ' | |
| 2366 (single quote), " (double quote), \, /, @, or space. | |
| 2367 | |
| 2368 :type cluster_parameter_group_name: string | |
| 2369 :param cluster_parameter_group_name: The name of the cluster parameter | |
| 2370 group to apply to this cluster. This change is applied only after | |
| 2371 the cluster is rebooted. To reboot a cluster use RebootCluster. | |
| 2372 Default: Uses existing setting. | |
| 2373 | |
| 2374 Constraints: The cluster parameter group must be in the same parameter | |
| 2375 group family that matches the cluster version. | |
| 2376 | |
| 2377 :type automated_snapshot_retention_period: integer | |
| 2378 :param automated_snapshot_retention_period: The number of days that | |
| 2379 automated snapshots are retained. If the value is 0, automated | |
| 2380 snapshots are disabled. Even if automated snapshots are disabled, | |
| 2381 you can still create manual snapshots when you want with | |
| 2382 CreateClusterSnapshot. | |
| 2383 If you decrease the automated snapshot retention period from its | |
| 2384 current value, existing automated snapshots that fall outside of | |
| 2385 the new retention period will be immediately deleted. | |
| 2386 | |
| 2387 Default: Uses existing setting. | |
| 2388 | |
| 2389 Constraints: Must be a value from 0 to 35. | |
| 2390 | |
| 2391 :type preferred_maintenance_window: string | |
| 2392 :param preferred_maintenance_window: The weekly time range (in UTC) | |
| 2393 during which system maintenance can occur, if necessary. If system | |
| 2394 maintenance is necessary during the window, it may result in an | |
| 2395 outage. | |
| 2396 This maintenance window change is made immediately. If the new | |
| 2397 maintenance window indicates the current time, there must be at | |
| 2398 least 120 minutes between the current time and end of the window in | |
| 2399 order to ensure that pending changes are applied. | |
| 2400 | |
| 2401 Default: Uses existing setting. | |
| 2402 | |
| 2403 Format: ddd:hh24:mi-ddd:hh24:mi, for example `wed:07:30-wed:08:00`. | |
| 2404 | |
| 2405 Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun | |
| 2406 | |
| 2407 Constraints: Must be at least 30 minutes. | |
| 2408 | |
| 2409 :type cluster_version: string | |
| 2410 :param cluster_version: The new version number of the Amazon Redshift | |
| 2411 engine to upgrade to. | |
| 2412 For major version upgrades, if a non-default cluster parameter group is | |
| 2413 currently in use, a new cluster parameter group in the cluster | |
| 2414 parameter group family for the new version must be specified. The | |
| 2415 new cluster parameter group can be the default for that cluster | |
| 2416 parameter group family. For more information about managing | |
| 2417 parameter groups, go to `Amazon Redshift Parameter Groups`_ in the | |
| 2418 Amazon Redshift Management Guide . | |
| 2419 | |
| 2420 Example: `1.0` | |
| 2421 | |
| 2422 :type allow_version_upgrade: boolean | |
| 2423 :param allow_version_upgrade: If `True`, upgrades will be applied | |
| 2424 automatically to the cluster during the maintenance window. | |
| 2425 Default: `False` | |
| 2426 | |
| 2427 :type hsm_client_certificate_identifier: string | |
| 2428 :param hsm_client_certificate_identifier: Specifies the name of the HSM | |
| 2429 client certificate the Amazon Redshift cluster uses to retrieve the | |
| 2430 data encryption keys stored in an HSM. | |
| 2431 | |
| 2432 :type hsm_configuration_identifier: string | |
| 2433 :param hsm_configuration_identifier: Specifies the name of the HSM | |
| 2434 configuration that contains the information the Amazon Redshift | |
| 2435 cluster can use to retrieve and store keys in an HSM. | |
| 2436 | |
| 2437 :type new_cluster_identifier: string | |
| 2438 :param new_cluster_identifier: The new identifier for the cluster. | |
| 2439 Constraints: | |
| 2440 | |
| 2441 | |
| 2442 + Must contain from 1 to 63 alphanumeric characters or hyphens. | |
| 2443 + Alphabetic characters must be lowercase. | |
| 2444 + First character must be a letter. | |
| 2445 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 2446 + Must be unique for all clusters within an AWS account. | |
| 2447 | |
| 2448 | |
| 2449 Example: `examplecluster` | |
| 2450 | |
| 2451 """ | |
| 2452 params = {'ClusterIdentifier': cluster_identifier, } | |
| 2453 if cluster_type is not None: | |
| 2454 params['ClusterType'] = cluster_type | |
| 2455 if node_type is not None: | |
| 2456 params['NodeType'] = node_type | |
| 2457 if number_of_nodes is not None: | |
| 2458 params['NumberOfNodes'] = number_of_nodes | |
| 2459 if cluster_security_groups is not None: | |
| 2460 self.build_list_params(params, | |
| 2461 cluster_security_groups, | |
| 2462 'ClusterSecurityGroups.member') | |
| 2463 if vpc_security_group_ids is not None: | |
| 2464 self.build_list_params(params, | |
| 2465 vpc_security_group_ids, | |
| 2466 'VpcSecurityGroupIds.member') | |
| 2467 if master_user_password is not None: | |
| 2468 params['MasterUserPassword'] = master_user_password | |
| 2469 if cluster_parameter_group_name is not None: | |
| 2470 params['ClusterParameterGroupName'] = cluster_parameter_group_name | |
| 2471 if automated_snapshot_retention_period is not None: | |
| 2472 params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period | |
| 2473 if preferred_maintenance_window is not None: | |
| 2474 params['PreferredMaintenanceWindow'] = preferred_maintenance_window | |
| 2475 if cluster_version is not None: | |
| 2476 params['ClusterVersion'] = cluster_version | |
| 2477 if allow_version_upgrade is not None: | |
| 2478 params['AllowVersionUpgrade'] = str( | |
| 2479 allow_version_upgrade).lower() | |
| 2480 if hsm_client_certificate_identifier is not None: | |
| 2481 params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier | |
| 2482 if hsm_configuration_identifier is not None: | |
| 2483 params['HsmConfigurationIdentifier'] = hsm_configuration_identifier | |
| 2484 if new_cluster_identifier is not None: | |
| 2485 params['NewClusterIdentifier'] = new_cluster_identifier | |
| 2486 return self._make_request( | |
| 2487 action='ModifyCluster', | |
| 2488 verb='POST', | |
| 2489 path='/', params=params) | |
| 2490 | |
| 2491 def modify_cluster_parameter_group(self, parameter_group_name, | |
| 2492 parameters): | |
| 2493 """ | |
| 2494 Modifies the parameters of a parameter group. | |
| 2495 | |
| 2496 For more information about managing parameter groups, go to | |
| 2497 `Amazon Redshift Parameter Groups`_ in the Amazon Redshift | |
| 2498 Management Guide . | |
| 2499 | |
| 2500 :type parameter_group_name: string | |
| 2501 :param parameter_group_name: The name of the parameter group to be | |
| 2502 modified. | |
| 2503 | |
| 2504 :type parameters: list | |
| 2505 :param parameters: An array of parameters to be modified. A maximum of | |
| 2506 20 parameters can be modified in a single request. | |
| 2507 For each parameter to be modified, you must supply at least the | |
| 2508 parameter name and parameter value; other name-value pairs of the | |
| 2509 parameter are optional. | |
| 2510 | |
| 2511 For the workload management (WLM) configuration, you must supply all | |
| 2512 the name-value pairs in the wlm_json_configuration parameter. | |
| 2513 | |
| 2514 """ | |
| 2515 params = {'ParameterGroupName': parameter_group_name, } | |
| 2516 self.build_complex_list_params( | |
| 2517 params, parameters, | |
| 2518 'Parameters.member', | |
| 2519 ('ParameterName', 'ParameterValue', 'Description', 'Source', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion')) | |
| 2520 return self._make_request( | |
| 2521 action='ModifyClusterParameterGroup', | |
| 2522 verb='POST', | |
| 2523 path='/', params=params) | |
| 2524 | |
| 2525 def modify_cluster_subnet_group(self, cluster_subnet_group_name, | |
| 2526 subnet_ids, description=None): | |
| 2527 """ | |
| 2528 Modifies a cluster subnet group to include the specified list | |
| 2529 of VPC subnets. The operation replaces the existing list of | |
| 2530 subnets with the new list of subnets. | |
| 2531 | |
| 2532 :type cluster_subnet_group_name: string | |
| 2533 :param cluster_subnet_group_name: The name of the subnet group to be | |
| 2534 modified. | |
| 2535 | |
| 2536 :type description: string | |
| 2537 :param description: A text description of the subnet group to be | |
| 2538 modified. | |
| 2539 | |
| 2540 :type subnet_ids: list | |
| 2541 :param subnet_ids: An array of VPC subnet IDs. A maximum of 20 subnets | |
| 2542 can be modified in a single request. | |
| 2543 | |
| 2544 """ | |
| 2545 params = { | |
| 2546 'ClusterSubnetGroupName': cluster_subnet_group_name, | |
| 2547 } | |
| 2548 self.build_list_params(params, | |
| 2549 subnet_ids, | |
| 2550 'SubnetIds.member') | |
| 2551 if description is not None: | |
| 2552 params['Description'] = description | |
| 2553 return self._make_request( | |
| 2554 action='ModifyClusterSubnetGroup', | |
| 2555 verb='POST', | |
| 2556 path='/', params=params) | |
| 2557 | |
| 2558 def modify_event_subscription(self, subscription_name, | |
| 2559 sns_topic_arn=None, source_type=None, | |
| 2560 source_ids=None, event_categories=None, | |
| 2561 severity=None, enabled=None): | |
| 2562 """ | |
| 2563 Modifies an existing Amazon Redshift event notification | |
| 2564 subscription. | |
| 2565 | |
| 2566 :type subscription_name: string | |
| 2567 :param subscription_name: The name of the modified Amazon Redshift | |
| 2568 event notification subscription. | |
| 2569 | |
| 2570 :type sns_topic_arn: string | |
| 2571 :param sns_topic_arn: The Amazon Resource Name (ARN) of the SNS topic | |
| 2572 to be used by the event notification subscription. | |
| 2573 | |
| 2574 :type source_type: string | |
| 2575 :param source_type: The type of source that will be generating the | |
| 2576 events. For example, if you want to be notified of events generated | |
| 2577 by a cluster, you would set this parameter to cluster. If this | |
| 2578 value is not specified, events are returned for all Amazon Redshift | |
| 2579 objects in your AWS account. You must specify a source type in | |
| 2580 order to specify source IDs. | |
| 2581 Valid values: cluster, cluster-parameter-group, cluster-security-group, | |
| 2582 and cluster-snapshot. | |
| 2583 | |
| 2584 :type source_ids: list | |
| 2585 :param source_ids: A list of one or more identifiers of Amazon Redshift | |
| 2586 source objects. All of the objects must be of the same type as was | |
| 2587 specified in the source type parameter. The event subscription will | |
| 2588 return only events generated by the specified objects. If not | |
| 2589 specified, then events are returned for all objects within the | |
| 2590 source type specified. | |
| 2591 Example: my-cluster-1, my-cluster-2 | |
| 2592 | |
| 2593 Example: my-snapshot-20131010 | |
| 2594 | |
| 2595 :type event_categories: list | |
| 2596 :param event_categories: Specifies the Amazon Redshift event categories | |
| 2597 to be published by the event notification subscription. | |
| 2598 Values: Configuration, Management, Monitoring, Security | |
| 2599 | |
| 2600 :type severity: string | |
| 2601 :param severity: Specifies the Amazon Redshift event severity to be | |
| 2602 published by the event notification subscription. | |
| 2603 Values: ERROR, INFO | |
| 2604 | |
| 2605 :type enabled: boolean | |
| 2606 :param enabled: A Boolean value indicating if the subscription is | |
| 2607 enabled. `True` indicates the subscription is enabled | |
| 2608 | |
| 2609 """ | |
| 2610 params = {'SubscriptionName': subscription_name, } | |
| 2611 if sns_topic_arn is not None: | |
| 2612 params['SnsTopicArn'] = sns_topic_arn | |
| 2613 if source_type is not None: | |
| 2614 params['SourceType'] = source_type | |
| 2615 if source_ids is not None: | |
| 2616 self.build_list_params(params, | |
| 2617 source_ids, | |
| 2618 'SourceIds.member') | |
| 2619 if event_categories is not None: | |
| 2620 self.build_list_params(params, | |
| 2621 event_categories, | |
| 2622 'EventCategories.member') | |
| 2623 if severity is not None: | |
| 2624 params['Severity'] = severity | |
| 2625 if enabled is not None: | |
| 2626 params['Enabled'] = str( | |
| 2627 enabled).lower() | |
| 2628 return self._make_request( | |
| 2629 action='ModifyEventSubscription', | |
| 2630 verb='POST', | |
| 2631 path='/', params=params) | |
| 2632 | |
| 2633 def modify_snapshot_copy_retention_period(self, cluster_identifier, | |
| 2634 retention_period): | |
| 2635 """ | |
| 2636 Modifies the number of days to retain automated snapshots in | |
| 2637 the destination region after they are copied from the source | |
| 2638 region. | |
| 2639 | |
| 2640 :type cluster_identifier: string | |
| 2641 :param cluster_identifier: The unique identifier of the cluster for | |
| 2642 which you want to change the retention period for automated | |
| 2643 snapshots that are copied to a destination region. | |
| 2644 Constraints: Must be the valid name of an existing cluster that has | |
| 2645 cross-region snapshot copy enabled. | |
| 2646 | |
| 2647 :type retention_period: integer | |
| 2648 :param retention_period: The number of days to retain automated | |
| 2649 snapshots in the destination region after they are copied from the | |
| 2650 source region. | |
| 2651 If you decrease the retention period for automated snapshots that are | |
| 2652 copied to a destination region, Amazon Redshift will delete any | |
| 2653 existing automated snapshots that were copied to the destination | |
| 2654 region and that fall outside of the new retention period. | |
| 2655 | |
| 2656 Constraints: Must be at least 1 and no more than 35. | |
| 2657 | |
| 2658 """ | |
| 2659 params = { | |
| 2660 'ClusterIdentifier': cluster_identifier, | |
| 2661 'RetentionPeriod': retention_period, | |
| 2662 } | |
| 2663 return self._make_request( | |
| 2664 action='ModifySnapshotCopyRetentionPeriod', | |
| 2665 verb='POST', | |
| 2666 path='/', params=params) | |
| 2667 | |
| 2668 def purchase_reserved_node_offering(self, reserved_node_offering_id, | |
| 2669 node_count=None): | |
| 2670 """ | |
| 2671 Allows you to purchase reserved nodes. Amazon Redshift offers | |
| 2672 a predefined set of reserved node offerings. You can purchase | |
| 2673 one of the offerings. You can call the | |
| 2674 DescribeReservedNodeOfferings API to obtain the available | |
| 2675 reserved node offerings. You can call this API by providing a | |
| 2676 specific reserved node offering and the number of nodes you | |
| 2677 want to reserve. | |
| 2678 | |
| 2679 For more information about managing parameter groups, go to | |
| 2680 `Purchasing Reserved Nodes`_ in the Amazon Redshift Management | |
| 2681 Guide . | |
| 2682 | |
| 2683 :type reserved_node_offering_id: string | |
| 2684 :param reserved_node_offering_id: The unique identifier of the reserved | |
| 2685 node offering you want to purchase. | |
| 2686 | |
| 2687 :type node_count: integer | |
| 2688 :param node_count: The number of reserved nodes you want to purchase. | |
| 2689 Default: `1` | |
| 2690 | |
| 2691 """ | |
| 2692 params = { | |
| 2693 'ReservedNodeOfferingId': reserved_node_offering_id, | |
| 2694 } | |
| 2695 if node_count is not None: | |
| 2696 params['NodeCount'] = node_count | |
| 2697 return self._make_request( | |
| 2698 action='PurchaseReservedNodeOffering', | |
| 2699 verb='POST', | |
| 2700 path='/', params=params) | |
| 2701 | |
| 2702 def reboot_cluster(self, cluster_identifier): | |
| 2703 """ | |
| 2704 Reboots a cluster. This action is taken as soon as possible. | |
| 2705 It results in a momentary outage to the cluster, during which | |
| 2706 the cluster status is set to `rebooting`. A cluster event is | |
| 2707 created when the reboot is completed. Any pending cluster | |
| 2708 modifications (see ModifyCluster) are applied at this reboot. | |
| 2709 For more information about managing clusters, go to `Amazon | |
| 2710 Redshift Clusters`_ in the Amazon Redshift Management Guide | |
| 2711 | |
| 2712 :type cluster_identifier: string | |
| 2713 :param cluster_identifier: The cluster identifier. | |
| 2714 | |
| 2715 """ | |
| 2716 params = {'ClusterIdentifier': cluster_identifier, } | |
| 2717 return self._make_request( | |
| 2718 action='RebootCluster', | |
| 2719 verb='POST', | |
| 2720 path='/', params=params) | |
| 2721 | |
| 2722 def reset_cluster_parameter_group(self, parameter_group_name, | |
| 2723 reset_all_parameters=None, | |
| 2724 parameters=None): | |
| 2725 """ | |
| 2726 Sets one or more parameters of the specified parameter group | |
| 2727 to their default values and sets the source values of the | |
| 2728 parameters to "engine-default". To reset the entire parameter | |
| 2729 group specify the ResetAllParameters parameter. For parameter | |
| 2730 changes to take effect you must reboot any associated | |
| 2731 clusters. | |
| 2732 | |
| 2733 :type parameter_group_name: string | |
| 2734 :param parameter_group_name: The name of the cluster parameter group to | |
| 2735 be reset. | |
| 2736 | |
| 2737 :type reset_all_parameters: boolean | |
| 2738 :param reset_all_parameters: If `True`, all parameters in the specified | |
| 2739 parameter group will be reset to their default values. | |
| 2740 Default: `True` | |
| 2741 | |
| 2742 :type parameters: list | |
| 2743 :param parameters: An array of names of parameters to be reset. If | |
| 2744 ResetAllParameters option is not used, then at least one parameter | |
| 2745 name must be supplied. | |
| 2746 Constraints: A maximum of 20 parameters can be reset in a single | |
| 2747 request. | |
| 2748 | |
| 2749 """ | |
| 2750 params = {'ParameterGroupName': parameter_group_name, } | |
| 2751 if reset_all_parameters is not None: | |
| 2752 params['ResetAllParameters'] = str( | |
| 2753 reset_all_parameters).lower() | |
| 2754 if parameters is not None: | |
| 2755 self.build_complex_list_params( | |
| 2756 params, parameters, | |
| 2757 'Parameters.member', | |
| 2758 ('ParameterName', 'ParameterValue', 'Description', 'Source', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion')) | |
| 2759 return self._make_request( | |
| 2760 action='ResetClusterParameterGroup', | |
| 2761 verb='POST', | |
| 2762 path='/', params=params) | |
| 2763 | |
| 2764 def restore_from_cluster_snapshot(self, cluster_identifier, | |
| 2765 snapshot_identifier, | |
| 2766 snapshot_cluster_identifier=None, | |
| 2767 port=None, availability_zone=None, | |
| 2768 allow_version_upgrade=None, | |
| 2769 cluster_subnet_group_name=None, | |
| 2770 publicly_accessible=None, | |
| 2771 owner_account=None, | |
| 2772 hsm_client_certificate_identifier=None, | |
| 2773 hsm_configuration_identifier=None, | |
| 2774 elastic_ip=None, | |
| 2775 cluster_parameter_group_name=None, | |
| 2776 cluster_security_groups=None, | |
| 2777 vpc_security_group_ids=None, | |
| 2778 preferred_maintenance_window=None, | |
| 2779 automated_snapshot_retention_period=None): | |
| 2780 """ | |
| 2781 Creates a new cluster from a snapshot. Amazon Redshift creates | |
| 2782 the resulting cluster with the same configuration as the | |
| 2783 original cluster from which the snapshot was created, except | |
| 2784 that the new cluster is created with the default cluster | |
| 2785 security and parameter group. After Amazon Redshift creates | |
| 2786 the cluster you can use the ModifyCluster API to associate a | |
| 2787 different security group and different parameter group with | |
| 2788 the restored cluster. | |
| 2789 | |
| 2790 If you restore a cluster into a VPC, you must provide a | |
| 2791 cluster subnet group where you want the cluster restored. | |
| 2792 | |
| 2793 For more information about working with snapshots, go to | |
| 2794 `Amazon Redshift Snapshots`_ in the Amazon Redshift Management | |
| 2795 Guide . | |
| 2796 | |
| 2797 :type cluster_identifier: string | |
| 2798 :param cluster_identifier: The identifier of the cluster that will be | |
| 2799 created from restoring the snapshot. | |
| 2800 | |
| 2801 Constraints: | |
| 2802 | |
| 2803 | |
| 2804 + Must contain from 1 to 63 alphanumeric characters or hyphens. | |
| 2805 + Alphabetic characters must be lowercase. | |
| 2806 + First character must be a letter. | |
| 2807 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 2808 + Must be unique for all clusters within an AWS account. | |
| 2809 | |
| 2810 :type snapshot_identifier: string | |
| 2811 :param snapshot_identifier: The name of the snapshot from which to | |
| 2812 create the new cluster. This parameter isn't case sensitive. | |
| 2813 Example: `my-snapshot-id` | |
| 2814 | |
| 2815 :type snapshot_cluster_identifier: string | |
| 2816 :param snapshot_cluster_identifier: The name of the cluster the source | |
| 2817 snapshot was created from. This parameter is required if your IAM | |
| 2818 user has a policy containing a snapshot resource element that | |
| 2819 specifies anything other than * for the cluster name. | |
| 2820 | |
| 2821 :type port: integer | |
| 2822 :param port: The port number on which the cluster accepts connections. | |
| 2823 Default: The same port as the original cluster. | |
| 2824 | |
| 2825 Constraints: Must be between `1115` and `65535`. | |
| 2826 | |
| 2827 :type availability_zone: string | |
| 2828 :param availability_zone: The Amazon EC2 Availability Zone in which to | |
| 2829 restore the cluster. | |
| 2830 Default: A random, system-chosen Availability Zone. | |
| 2831 | |
| 2832 Example: `us-east-1a` | |
| 2833 | |
| 2834 :type allow_version_upgrade: boolean | |
| 2835 :param allow_version_upgrade: If `True`, upgrades can be applied during | |
| 2836 the maintenance window to the Amazon Redshift engine that is | |
| 2837 running on the cluster. | |
| 2838 Default: `True` | |
| 2839 | |
| 2840 :type cluster_subnet_group_name: string | |
| 2841 :param cluster_subnet_group_name: The name of the subnet group where | |
| 2842 you want to cluster restored. | |
| 2843 A snapshot of cluster in VPC can be restored only in VPC. Therefore, | |
| 2844 you must provide subnet group name where you want the cluster | |
| 2845 restored. | |
| 2846 | |
| 2847 :type publicly_accessible: boolean | |
| 2848 :param publicly_accessible: If `True`, the cluster can be accessed from | |
| 2849 a public network. | |
| 2850 | |
| 2851 :type owner_account: string | |
| 2852 :param owner_account: The AWS customer account used to create or copy | |
| 2853 the snapshot. Required if you are restoring a snapshot you do not | |
| 2854 own, optional if you own the snapshot. | |
| 2855 | |
| 2856 :type hsm_client_certificate_identifier: string | |
| 2857 :param hsm_client_certificate_identifier: Specifies the name of the HSM | |
| 2858 client certificate the Amazon Redshift cluster uses to retrieve the | |
| 2859 data encryption keys stored in an HSM. | |
| 2860 | |
| 2861 :type hsm_configuration_identifier: string | |
| 2862 :param hsm_configuration_identifier: Specifies the name of the HSM | |
| 2863 configuration that contains the information the Amazon Redshift | |
| 2864 cluster can use to retrieve and store keys in an HSM. | |
| 2865 | |
| 2866 :type elastic_ip: string | |
| 2867 :param elastic_ip: The elastic IP (EIP) address for the cluster. | |
| 2868 | |
| 2869 :type cluster_parameter_group_name: string | |
| 2870 :param cluster_parameter_group_name: | |
| 2871 The name of the parameter group to be associated with this cluster. | |
| 2872 | |
| 2873 Default: The default Amazon Redshift cluster parameter group. For | |
| 2874 information about the default parameter group, go to `Working with | |
| 2875 Amazon Redshift Parameter Groups`_. | |
| 2876 | |
| 2877 Constraints: | |
| 2878 | |
| 2879 | |
| 2880 + Must be 1 to 255 alphanumeric characters or hyphens. | |
| 2881 + First character must be a letter. | |
| 2882 + Cannot end with a hyphen or contain two consecutive hyphens. | |
| 2883 | |
| 2884 :type cluster_security_groups: list | |
| 2885 :param cluster_security_groups: A list of security groups to be | |
| 2886 associated with this cluster. | |
| 2887 Default: The default cluster security group for Amazon Redshift. | |
| 2888 | |
| 2889 Cluster security groups only apply to clusters outside of VPCs. | |
| 2890 | |
| 2891 :type vpc_security_group_ids: list | |
| 2892 :param vpc_security_group_ids: A list of Virtual Private Cloud (VPC) | |
| 2893 security groups to be associated with the cluster. | |
| 2894 Default: The default VPC security group is associated with the cluster. | |
| 2895 | |
| 2896 VPC security groups only apply to clusters in VPCs. | |
| 2897 | |
| 2898 :type preferred_maintenance_window: string | |
| 2899 :param preferred_maintenance_window: The weekly time range (in UTC) | |
| 2900 during which automated cluster maintenance can occur. | |
| 2901 Format: `ddd:hh24:mi-ddd:hh24:mi` | |
| 2902 | |
| 2903 Default: The value selected for the cluster from which the snapshot was | |
| 2904 taken. The following list shows the time blocks for each region | |
| 2905 from which the default maintenance windows are assigned. | |
| 2906 | |
| 2907 | |
| 2908 + **US-East (Northern Virginia) Region:** 03:00-11:00 UTC | |
| 2909 + **US-West (Oregon) Region** 06:00-14:00 UTC | |
| 2910 + **EU (Ireland) Region** 22:00-06:00 UTC | |
| 2911 + **Asia Pacific (Singapore) Region** 14:00-22:00 UTC | |
| 2912 + **Asia Pacific (Sydney) Region** 12:00-20:00 UTC | |
| 2913 + **Asia Pacific (Tokyo) Region** 17:00-03:00 UTC | |
| 2914 | |
| 2915 | |
| 2916 Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun | |
| 2917 | |
| 2918 Constraints: Minimum 30-minute window. | |
| 2919 | |
| 2920 :type automated_snapshot_retention_period: integer | |
| 2921 :param automated_snapshot_retention_period: The number of days that | |
| 2922 automated snapshots are retained. If the value is 0, automated | |
| 2923 snapshots are disabled. Even if automated snapshots are disabled, | |
| 2924 you can still create manual snapshots when you want with | |
| 2925 CreateClusterSnapshot. | |
| 2926 Default: The value selected for the cluster from which the snapshot was | |
| 2927 taken. | |
| 2928 | |
| 2929 Constraints: Must be a value from 0 to 35. | |
| 2930 | |
| 2931 """ | |
| 2932 params = { | |
| 2933 'ClusterIdentifier': cluster_identifier, | |
| 2934 'SnapshotIdentifier': snapshot_identifier, | |
| 2935 } | |
| 2936 if snapshot_cluster_identifier is not None: | |
| 2937 params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier | |
| 2938 if port is not None: | |
| 2939 params['Port'] = port | |
| 2940 if availability_zone is not None: | |
| 2941 params['AvailabilityZone'] = availability_zone | |
| 2942 if allow_version_upgrade is not None: | |
| 2943 params['AllowVersionUpgrade'] = str( | |
| 2944 allow_version_upgrade).lower() | |
| 2945 if cluster_subnet_group_name is not None: | |
| 2946 params['ClusterSubnetGroupName'] = cluster_subnet_group_name | |
| 2947 if publicly_accessible is not None: | |
| 2948 params['PubliclyAccessible'] = str( | |
| 2949 publicly_accessible).lower() | |
| 2950 if owner_account is not None: | |
| 2951 params['OwnerAccount'] = owner_account | |
| 2952 if hsm_client_certificate_identifier is not None: | |
| 2953 params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier | |
| 2954 if hsm_configuration_identifier is not None: | |
| 2955 params['HsmConfigurationIdentifier'] = hsm_configuration_identifier | |
| 2956 if elastic_ip is not None: | |
| 2957 params['ElasticIp'] = elastic_ip | |
| 2958 if cluster_parameter_group_name is not None: | |
| 2959 params['ClusterParameterGroupName'] = cluster_parameter_group_name | |
| 2960 if cluster_security_groups is not None: | |
| 2961 self.build_list_params(params, | |
| 2962 cluster_security_groups, | |
| 2963 'ClusterSecurityGroups.member') | |
| 2964 if vpc_security_group_ids is not None: | |
| 2965 self.build_list_params(params, | |
| 2966 vpc_security_group_ids, | |
| 2967 'VpcSecurityGroupIds.member') | |
| 2968 if preferred_maintenance_window is not None: | |
| 2969 params['PreferredMaintenanceWindow'] = preferred_maintenance_window | |
| 2970 if automated_snapshot_retention_period is not None: | |
| 2971 params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period | |
| 2972 return self._make_request( | |
| 2973 action='RestoreFromClusterSnapshot', | |
| 2974 verb='POST', | |
| 2975 path='/', params=params) | |
| 2976 | |
| 2977 def revoke_cluster_security_group_ingress(self, | |
| 2978 cluster_security_group_name, | |
| 2979 cidrip=None, | |
| 2980 ec2_security_group_name=None, | |
| 2981 ec2_security_group_owner_id=None): | |
| 2982 """ | |
| 2983 Revokes an ingress rule in an Amazon Redshift security group | |
| 2984 for a previously authorized IP range or Amazon EC2 security | |
| 2985 group. To add an ingress rule, see | |
| 2986 AuthorizeClusterSecurityGroupIngress. For information about | |
| 2987 managing security groups, go to `Amazon Redshift Cluster | |
| 2988 Security Groups`_ in the Amazon Redshift Management Guide . | |
| 2989 | |
| 2990 :type cluster_security_group_name: string | |
| 2991 :param cluster_security_group_name: The name of the security Group from | |
| 2992 which to revoke the ingress rule. | |
| 2993 | |
| 2994 :type cidrip: string | |
| 2995 :param cidrip: The IP range for which to revoke access. This range must | |
| 2996 be a valid Classless Inter-Domain Routing (CIDR) block of IP | |
| 2997 addresses. If `CIDRIP` is specified, `EC2SecurityGroupName` and | |
| 2998 `EC2SecurityGroupOwnerId` cannot be provided. | |
| 2999 | |
| 3000 :type ec2_security_group_name: string | |
| 3001 :param ec2_security_group_name: The name of the EC2 Security Group | |
| 3002 whose access is to be revoked. If `EC2SecurityGroupName` is | |
| 3003 specified, `EC2SecurityGroupOwnerId` must also be provided and | |
| 3004 `CIDRIP` cannot be provided. | |
| 3005 | |
| 3006 :type ec2_security_group_owner_id: string | |
| 3007 :param ec2_security_group_owner_id: The AWS account number of the owner | |
| 3008 of the security group specified in the `EC2SecurityGroupName` | |
| 3009 parameter. The AWS access key ID is not an acceptable value. If | |
| 3010 `EC2SecurityGroupOwnerId` is specified, `EC2SecurityGroupName` must | |
| 3011 also be provided. and `CIDRIP` cannot be provided. | |
| 3012 Example: `111122223333` | |
| 3013 | |
| 3014 """ | |
| 3015 params = { | |
| 3016 'ClusterSecurityGroupName': cluster_security_group_name, | |
| 3017 } | |
| 3018 if cidrip is not None: | |
| 3019 params['CIDRIP'] = cidrip | |
| 3020 if ec2_security_group_name is not None: | |
| 3021 params['EC2SecurityGroupName'] = ec2_security_group_name | |
| 3022 if ec2_security_group_owner_id is not None: | |
| 3023 params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id | |
| 3024 return self._make_request( | |
| 3025 action='RevokeClusterSecurityGroupIngress', | |
| 3026 verb='POST', | |
| 3027 path='/', params=params) | |
| 3028 | |
| 3029 def revoke_snapshot_access(self, snapshot_identifier, | |
| 3030 account_with_restore_access, | |
| 3031 snapshot_cluster_identifier=None): | |
| 3032 """ | |
| 3033 Removes the ability of the specified AWS customer account to | |
| 3034 restore the specified snapshot. If the account is currently | |
| 3035 restoring the snapshot, the restore will run to completion. | |
| 3036 | |
| 3037 For more information about working with snapshots, go to | |
| 3038 `Amazon Redshift Snapshots`_ in the Amazon Redshift Management | |
| 3039 Guide . | |
| 3040 | |
| 3041 :type snapshot_identifier: string | |
| 3042 :param snapshot_identifier: The identifier of the snapshot that the | |
| 3043 account can no longer access. | |
| 3044 | |
| 3045 :type snapshot_cluster_identifier: string | |
| 3046 :param snapshot_cluster_identifier: The identifier of the cluster the | |
| 3047 snapshot was created from. This parameter is required if your IAM | |
| 3048 user has a policy containing a snapshot resource element that | |
| 3049 specifies anything other than * for the cluster name. | |
| 3050 | |
| 3051 :type account_with_restore_access: string | |
| 3052 :param account_with_restore_access: The identifier of the AWS customer | |
| 3053 account that can no longer restore the specified snapshot. | |
| 3054 | |
| 3055 """ | |
| 3056 params = { | |
| 3057 'SnapshotIdentifier': snapshot_identifier, | |
| 3058 'AccountWithRestoreAccess': account_with_restore_access, | |
| 3059 } | |
| 3060 if snapshot_cluster_identifier is not None: | |
| 3061 params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier | |
| 3062 return self._make_request( | |
| 3063 action='RevokeSnapshotAccess', | |
| 3064 verb='POST', | |
| 3065 path='/', params=params) | |
| 3066 | |
| 3067 def rotate_encryption_key(self, cluster_identifier): | |
| 3068 """ | |
| 3069 Rotates the encryption keys for a cluster. | |
| 3070 | |
| 3071 :type cluster_identifier: string | |
| 3072 :param cluster_identifier: The unique identifier of the cluster that | |
| 3073 you want to rotate the encryption keys for. | |
| 3074 Constraints: Must be the name of valid cluster that has encryption | |
| 3075 enabled. | |
| 3076 | |
| 3077 """ | |
| 3078 params = {'ClusterIdentifier': cluster_identifier, } | |
| 3079 return self._make_request( | |
| 3080 action='RotateEncryptionKey', | |
| 3081 verb='POST', | |
| 3082 path='/', params=params) | |
| 3083 | |
| 3084 def _make_request(self, action, verb, path, params): | |
| 3085 params['ContentType'] = 'JSON' | |
| 3086 response = self.make_request(action=action, verb='POST', | |
| 3087 path='/', params=params) | |
| 3088 body = response.read().decode('utf-8') | |
| 3089 boto.log.debug(body) | |
| 3090 if response.status == 200: | |
| 3091 return json.loads(body) | |
| 3092 else: | |
| 3093 json_body = json.loads(body) | |
| 3094 fault_name = json_body.get('Error', {}).get('Code', None) | |
| 3095 exception_class = self._faults.get(fault_name, self.ResponseError) | |
| 3096 raise exception_class(response.status, response.reason, | |
| 3097 body=json_body) |
