Index: tools/telemetry/third_party/gsutil/third_party/boto/boto/redshift/layer1.py |
diff --git a/tools/telemetry/third_party/gsutil/third_party/boto/boto/redshift/layer1.py b/tools/telemetry/third_party/gsutil/third_party/boto/boto/redshift/layer1.py |
deleted file mode 100644 |
index be1529fdf851572f1a99f11d2c6d0ffb585771be..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/gsutil/third_party/boto/boto/redshift/layer1.py |
+++ /dev/null |
@@ -1,3097 +0,0 @@ |
-# Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved |
-# |
-# Permission is hereby granted, free of charge, to any person obtaining a |
-# copy of this software and associated documentation files (the |
-# "Software"), to deal in the Software without restriction, including |
-# without limitation the rights to use, copy, modify, merge, publish, dis- |
-# tribute, sublicense, and/or sell copies of the Software, and to permit |
-# persons to whom the Software is furnished to do so, subject to the fol- |
-# lowing conditions: |
-# |
-# The above copyright notice and this permission notice shall be included |
-# in all copies or substantial portions of the Software. |
-# |
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- |
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT |
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
-# IN THE SOFTWARE. |
-# |
- |
-import boto |
-from boto.compat import json |
-from boto.connection import AWSQueryConnection |
-from boto.regioninfo import RegionInfo |
-from boto.exception import JSONResponseError |
-from boto.redshift import exceptions |
- |
- |
-class RedshiftConnection(AWSQueryConnection): |
- """ |
- Amazon Redshift **Overview** |
- This is an interface reference for Amazon Redshift. It contains |
- documentation for one of the programming or command line |
- interfaces you can use to manage Amazon Redshift clusters. Note |
- that Amazon Redshift is asynchronous, which means that some |
- interfaces may require techniques, such as polling or asynchronous |
- callback handlers, to determine when a command has been applied. |
- In this reference, the parameter descriptions indicate whether a |
- change is applied immediately, on the next instance reboot, or |
- during the next maintenance window. For a summary of the Amazon |
- Redshift cluster management interfaces, go to `Using the Amazon |
- Redshift Management Interfaces `_. |
- |
- Amazon Redshift manages all the work of setting up, operating, and |
- scaling a data warehouse: provisioning capacity, monitoring and |
- backing up the cluster, and applying patches and upgrades to the |
- Amazon Redshift engine. You can focus on using your data to |
- acquire new insights for your business and customers. |
- |
- If you are a first-time user of Amazon Redshift, we recommend that |
- you begin by reading the The `Amazon Redshift Getting Started |
- Guide`_ |
- |
- If you are a database developer, the `Amazon Redshift Database |
- Developer Guide`_ explains how to design, build, query, and |
- maintain the databases that make up your data warehouse. |
- """ |
- APIVersion = "2012-12-01" |
- DefaultRegionName = "us-east-1" |
- DefaultRegionEndpoint = "redshift.us-east-1.amazonaws.com" |
- ResponseError = JSONResponseError |
- |
- _faults = { |
- "SnapshotCopyAlreadyDisabled": exceptions.SnapshotCopyAlreadyDisabled, |
- "ClusterNotFound": exceptions.ClusterNotFound, |
- "UnknownSnapshotCopyRegion": exceptions.UnknownSnapshotCopyRegion, |
- "InvalidClusterSubnetState": exceptions.InvalidClusterSubnetState, |
- "InvalidSubnet": exceptions.InvalidSubnet, |
- "ReservedNodeQuotaExceeded": exceptions.ReservedNodeQuotaExceeded, |
- "InvalidClusterState": exceptions.InvalidClusterState, |
- "HsmClientCertificateQuotaExceeded": exceptions.HsmClientCertificateQuotaExceeded, |
- "SubscriptionCategoryNotFound": exceptions.SubscriptionCategoryNotFound, |
- "HsmClientCertificateNotFound": exceptions.HsmClientCertificateNotFound, |
- "SubscriptionEventIdNotFound": exceptions.SubscriptionEventIdNotFound, |
- "ClusterSecurityGroupAlreadyExists": exceptions.ClusterSecurityGroupAlreadyExists, |
- "HsmConfigurationAlreadyExists": exceptions.HsmConfigurationAlreadyExists, |
- "NumberOfNodesQuotaExceeded": exceptions.NumberOfNodesQuotaExceeded, |
- "ReservedNodeOfferingNotFound": exceptions.ReservedNodeOfferingNotFound, |
- "BucketNotFound": exceptions.BucketNotFound, |
- "InsufficientClusterCapacity": exceptions.InsufficientClusterCapacity, |
- "InvalidRestore": exceptions.InvalidRestore, |
- "UnauthorizedOperation": exceptions.UnauthorizedOperation, |
- "ClusterQuotaExceeded": exceptions.ClusterQuotaExceeded, |
- "InvalidVPCNetworkState": exceptions.InvalidVPCNetworkState, |
- "ClusterSnapshotNotFound": exceptions.ClusterSnapshotNotFound, |
- "AuthorizationQuotaExceeded": exceptions.AuthorizationQuotaExceeded, |
- "InvalidHsmClientCertificateState": exceptions.InvalidHsmClientCertificateState, |
- "SNSTopicArnNotFound": exceptions.SNSTopicArnNotFound, |
- "ResizeNotFound": exceptions.ResizeNotFound, |
- "ClusterSubnetGroupNotFound": exceptions.ClusterSubnetGroupNotFound, |
- "SNSNoAuthorization": exceptions.SNSNoAuthorization, |
- "ClusterSnapshotQuotaExceeded": exceptions.ClusterSnapshotQuotaExceeded, |
- "AccessToSnapshotDenied": exceptions.AccessToSnapshotDenied, |
- "InvalidClusterSecurityGroupState": exceptions.InvalidClusterSecurityGroupState, |
- "NumberOfNodesPerClusterLimitExceeded": exceptions.NumberOfNodesPerClusterLimitExceeded, |
- "ClusterSubnetQuotaExceeded": exceptions.ClusterSubnetQuotaExceeded, |
- "SNSInvalidTopic": exceptions.SNSInvalidTopic, |
- "ClusterSecurityGroupNotFound": exceptions.ClusterSecurityGroupNotFound, |
- "InvalidElasticIp": exceptions.InvalidElasticIp, |
- "InvalidClusterParameterGroupState": exceptions.InvalidClusterParameterGroupState, |
- "InvalidHsmConfigurationState": exceptions.InvalidHsmConfigurationState, |
- "ClusterAlreadyExists": exceptions.ClusterAlreadyExists, |
- "HsmConfigurationQuotaExceeded": exceptions.HsmConfigurationQuotaExceeded, |
- "ClusterSnapshotAlreadyExists": exceptions.ClusterSnapshotAlreadyExists, |
- "SubscriptionSeverityNotFound": exceptions.SubscriptionSeverityNotFound, |
- "SourceNotFound": exceptions.SourceNotFound, |
- "ReservedNodeAlreadyExists": exceptions.ReservedNodeAlreadyExists, |
- "ClusterSubnetGroupQuotaExceeded": exceptions.ClusterSubnetGroupQuotaExceeded, |
- "ClusterParameterGroupNotFound": exceptions.ClusterParameterGroupNotFound, |
- "InvalidS3BucketName": exceptions.InvalidS3BucketName, |
- "InvalidS3KeyPrefix": exceptions.InvalidS3KeyPrefix, |
- "SubscriptionAlreadyExist": exceptions.SubscriptionAlreadyExist, |
- "HsmConfigurationNotFound": exceptions.HsmConfigurationNotFound, |
- "InvalidSubscriptionState": exceptions.InvalidSubscriptionState, |
- "AuthorizationNotFound": exceptions.AuthorizationNotFound, |
- "ClusterSecurityGroupQuotaExceeded": exceptions.ClusterSecurityGroupQuotaExceeded, |
- "SubnetAlreadyInUse": exceptions.SubnetAlreadyInUse, |
- "EventSubscriptionQuotaExceeded": exceptions.EventSubscriptionQuotaExceeded, |
- "AuthorizationAlreadyExists": exceptions.AuthorizationAlreadyExists, |
- "InvalidClusterSnapshotState": exceptions.InvalidClusterSnapshotState, |
- "ClusterParameterGroupQuotaExceeded": exceptions.ClusterParameterGroupQuotaExceeded, |
- "SnapshotCopyDisabled": exceptions.SnapshotCopyDisabled, |
- "ClusterSubnetGroupAlreadyExists": exceptions.ClusterSubnetGroupAlreadyExists, |
- "ReservedNodeNotFound": exceptions.ReservedNodeNotFound, |
- "HsmClientCertificateAlreadyExists": exceptions.HsmClientCertificateAlreadyExists, |
- "InvalidClusterSubnetGroupState": exceptions.InvalidClusterSubnetGroupState, |
- "SubscriptionNotFound": exceptions.SubscriptionNotFound, |
- "InsufficientS3BucketPolicy": exceptions.InsufficientS3BucketPolicy, |
- "ClusterParameterGroupAlreadyExists": exceptions.ClusterParameterGroupAlreadyExists, |
- "UnsupportedOption": exceptions.UnsupportedOption, |
- "CopyToRegionDisabled": exceptions.CopyToRegionDisabled, |
- "SnapshotCopyAlreadyEnabled": exceptions.SnapshotCopyAlreadyEnabled, |
- "IncompatibleOrderableOptions": exceptions.IncompatibleOrderableOptions, |
- } |
- |
- |
- def __init__(self, **kwargs): |
- region = kwargs.pop('region', None) |
- if not region: |
- region = RegionInfo(self, self.DefaultRegionName, |
- self.DefaultRegionEndpoint) |
- |
- if 'host' not in kwargs or kwargs['host'] is None: |
- kwargs['host'] = region.endpoint |
- |
- super(RedshiftConnection, self).__init__(**kwargs) |
- self.region = region |
- |
- def _required_auth_capability(self): |
- return ['hmac-v4'] |
- |
- def authorize_cluster_security_group_ingress(self, |
- cluster_security_group_name, |
- cidrip=None, |
- ec2_security_group_name=None, |
- ec2_security_group_owner_id=None): |
- """ |
- Adds an inbound (ingress) rule to an Amazon Redshift security |
- group. Depending on whether the application accessing your |
- cluster is running on the Internet or an EC2 instance, you can |
- authorize inbound access to either a Classless Interdomain |
- Routing (CIDR) IP address range or an EC2 security group. You |
- can add as many as 20 ingress rules to an Amazon Redshift |
- security group. |
- |
- For an overview of CIDR blocks, see the Wikipedia article on |
- `Classless Inter-Domain Routing`_. |
- |
- You must also associate the security group with a cluster so |
- that clients running on these IP addresses or the EC2 instance |
- are authorized to connect to the cluster. For information |
- about managing security groups, go to `Working with Security |
- Groups`_ in the Amazon Redshift Management Guide . |
- |
- :type cluster_security_group_name: string |
- :param cluster_security_group_name: The name of the security group to |
- which the ingress rule is added. |
- |
- :type cidrip: string |
- :param cidrip: The IP range to be added the Amazon Redshift security |
- group. |
- |
- :type ec2_security_group_name: string |
- :param ec2_security_group_name: The EC2 security group to be added the |
- Amazon Redshift security group. |
- |
- :type ec2_security_group_owner_id: string |
- :param ec2_security_group_owner_id: The AWS account number of the owner |
- of the security group specified by the EC2SecurityGroupName |
- parameter. The AWS Access Key ID is not an acceptable value. |
- Example: `111122223333` |
- |
- """ |
- params = { |
- 'ClusterSecurityGroupName': cluster_security_group_name, |
- } |
- if cidrip is not None: |
- params['CIDRIP'] = cidrip |
- if ec2_security_group_name is not None: |
- params['EC2SecurityGroupName'] = ec2_security_group_name |
- if ec2_security_group_owner_id is not None: |
- params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id |
- return self._make_request( |
- action='AuthorizeClusterSecurityGroupIngress', |
- verb='POST', |
- path='/', params=params) |
- |
- def authorize_snapshot_access(self, snapshot_identifier, |
- account_with_restore_access, |
- snapshot_cluster_identifier=None): |
- """ |
- Authorizes the specified AWS customer account to restore the |
- specified snapshot. |
- |
- For more information about working with snapshots, go to |
- `Amazon Redshift Snapshots`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: The identifier of the snapshot the account |
- is authorized to restore. |
- |
- :type snapshot_cluster_identifier: string |
- :param snapshot_cluster_identifier: The identifier of the cluster the |
- snapshot was created from. This parameter is required if your IAM |
- user has a policy containing a snapshot resource element that |
- specifies anything other than * for the cluster name. |
- |
- :type account_with_restore_access: string |
- :param account_with_restore_access: The identifier of the AWS customer |
- account authorized to restore the specified snapshot. |
- |
- """ |
- params = { |
- 'SnapshotIdentifier': snapshot_identifier, |
- 'AccountWithRestoreAccess': account_with_restore_access, |
- } |
- if snapshot_cluster_identifier is not None: |
- params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier |
- return self._make_request( |
- action='AuthorizeSnapshotAccess', |
- verb='POST', |
- path='/', params=params) |
- |
- def copy_cluster_snapshot(self, source_snapshot_identifier, |
- target_snapshot_identifier, |
- source_snapshot_cluster_identifier=None): |
- """ |
- Copies the specified automated cluster snapshot to a new |
- manual cluster snapshot. The source must be an automated |
- snapshot and it must be in the available state. |
- |
- When you delete a cluster, Amazon Redshift deletes any |
- automated snapshots of the cluster. Also, when the retention |
- period of the snapshot expires, Amazon Redshift automatically |
- deletes it. If you want to keep an automated snapshot for a |
- longer period, you can make a manual copy of the snapshot. |
- Manual snapshots are retained until you delete them. |
- |
- For more information about working with snapshots, go to |
- `Amazon Redshift Snapshots`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type source_snapshot_identifier: string |
- :param source_snapshot_identifier: |
- The identifier for the source snapshot. |
- |
- Constraints: |
- |
- |
- + Must be the identifier for a valid automated snapshot whose state is |
- `available`. |
- |
- :type source_snapshot_cluster_identifier: string |
- :param source_snapshot_cluster_identifier: |
- The identifier of the cluster the source snapshot was created from. |
- This parameter is required if your IAM user has a policy containing |
- a snapshot resource element that specifies anything other than * |
- for the cluster name. |
- |
- Constraints: |
- |
- |
- + Must be the identifier for a valid cluster. |
- |
- :type target_snapshot_identifier: string |
- :param target_snapshot_identifier: |
- The identifier given to the new manual snapshot. |
- |
- Constraints: |
- |
- |
- + Cannot be null, empty, or blank. |
- + Must contain from 1 to 255 alphanumeric characters or hyphens. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- + Must be unique for the AWS account that is making the request. |
- |
- """ |
- params = { |
- 'SourceSnapshotIdentifier': source_snapshot_identifier, |
- 'TargetSnapshotIdentifier': target_snapshot_identifier, |
- } |
- if source_snapshot_cluster_identifier is not None: |
- params['SourceSnapshotClusterIdentifier'] = source_snapshot_cluster_identifier |
- return self._make_request( |
- action='CopyClusterSnapshot', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_cluster(self, cluster_identifier, node_type, master_username, |
- master_user_password, db_name=None, cluster_type=None, |
- cluster_security_groups=None, |
- vpc_security_group_ids=None, |
- cluster_subnet_group_name=None, |
- availability_zone=None, |
- preferred_maintenance_window=None, |
- cluster_parameter_group_name=None, |
- automated_snapshot_retention_period=None, port=None, |
- cluster_version=None, allow_version_upgrade=None, |
- number_of_nodes=None, publicly_accessible=None, |
- encrypted=None, |
- hsm_client_certificate_identifier=None, |
- hsm_configuration_identifier=None, elastic_ip=None): |
- """ |
- Creates a new cluster. To create the cluster in virtual |
- private cloud (VPC), you must provide cluster subnet group |
- name. If you don't provide a cluster subnet group name or the |
- cluster security group parameter, Amazon Redshift creates a |
- non-VPC cluster, it associates the default cluster security |
- group with the cluster. For more information about managing |
- clusters, go to `Amazon Redshift Clusters`_ in the Amazon |
- Redshift Management Guide . |
- |
- :type db_name: string |
- :param db_name: |
- The name of the first database to be created when the cluster is |
- created. |
- |
- To create additional databases after the cluster is created, connect to |
- the cluster with a SQL client and use SQL commands to create a |
- database. For more information, go to `Create a Database`_ in the |
- Amazon Redshift Database Developer Guide. |
- |
- Default: `dev` |
- |
- Constraints: |
- |
- |
- + Must contain 1 to 64 alphanumeric characters. |
- + Must contain only lowercase letters. |
- + Cannot be a word that is reserved by the service. A list of reserved |
- words can be found in `Reserved Words`_ in the Amazon Redshift |
- Database Developer Guide. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: A unique identifier for the cluster. You use |
- this identifier to refer to the cluster for any subsequent cluster |
- operations such as deleting or modifying. The identifier also |
- appears in the Amazon Redshift console. |
- Constraints: |
- |
- |
- + Must contain from 1 to 63 alphanumeric characters or hyphens. |
- + Alphabetic characters must be lowercase. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- + Must be unique for all clusters within an AWS account. |
- |
- |
- Example: `myexamplecluster` |
- |
- :type cluster_type: string |
- :param cluster_type: The type of the cluster. When cluster type is |
- specified as |
- |
- + `single-node`, the **NumberOfNodes** parameter is not required. |
- + `multi-node`, the **NumberOfNodes** parameter is required. |
- |
- |
- Valid Values: `multi-node` | `single-node` |
- |
- Default: `multi-node` |
- |
- :type node_type: string |
- :param node_type: The node type to be provisioned for the cluster. For |
- information about node types, go to ` Working with Clusters`_ in |
- the Amazon Redshift Management Guide . |
- Valid Values: `dw1.xlarge` | `dw1.8xlarge` | `dw2.large` | |
- `dw2.8xlarge`. |
- |
- :type master_username: string |
- :param master_username: |
- The user name associated with the master user account for the cluster |
- that is being created. |
- |
- Constraints: |
- |
- |
- + Must be 1 - 128 alphanumeric characters. |
- + First character must be a letter. |
- + Cannot be a reserved word. A list of reserved words can be found in |
- `Reserved Words`_ in the Amazon Redshift Database Developer Guide. |
- |
- :type master_user_password: string |
- :param master_user_password: |
- The password associated with the master user account for the cluster |
- that is being created. |
- |
- Constraints: |
- |
- |
- + Must be between 8 and 64 characters in length. |
- + Must contain at least one uppercase letter. |
- + Must contain at least one lowercase letter. |
- + Must contain one number. |
- + Can be any printable ASCII character (ASCII code 33 to 126) except ' |
- (single quote), " (double quote), \, /, @, or space. |
- |
- :type cluster_security_groups: list |
- :param cluster_security_groups: A list of security groups to be |
- associated with this cluster. |
- Default: The default cluster security group for Amazon Redshift. |
- |
- :type vpc_security_group_ids: list |
- :param vpc_security_group_ids: A list of Virtual Private Cloud (VPC) |
- security groups to be associated with the cluster. |
- Default: The default VPC security group is associated with the cluster. |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name of a cluster subnet group to |
- be associated with this cluster. |
- If this parameter is not provided the resulting cluster will be |
- deployed outside virtual private cloud (VPC). |
- |
- :type availability_zone: string |
- :param availability_zone: The EC2 Availability Zone (AZ) in which you |
- want Amazon Redshift to provision the cluster. For example, if you |
- have several EC2 instances running in a specific Availability Zone, |
- then you might want the cluster to be provisioned in the same zone |
- in order to decrease network latency. |
- Default: A random, system-chosen Availability Zone in the region that |
- is specified by the endpoint. |
- |
- Example: `us-east-1d` |
- |
- Constraint: The specified Availability Zone must be in the same region |
- as the current endpoint. |
- |
- :type preferred_maintenance_window: string |
- :param preferred_maintenance_window: The weekly time range (in UTC) |
- during which automated cluster maintenance can occur. |
- Format: `ddd:hh24:mi-ddd:hh24:mi` |
- |
- Default: A 30-minute window selected at random from an 8-hour block of |
- time per region, occurring on a random day of the week. The |
- following list shows the time blocks for each region from which the |
- default maintenance windows are assigned. |
- |
- |
- + **US-East (Northern Virginia) Region:** 03:00-11:00 UTC |
- + **US-West (Oregon) Region** 06:00-14:00 UTC |
- + **EU (Ireland) Region** 22:00-06:00 UTC |
- + **Asia Pacific (Singapore) Region** 14:00-22:00 UTC |
- + **Asia Pacific (Sydney) Region** 12:00-20:00 UTC |
- + **Asia Pacific (Tokyo) Region** 17:00-03:00 UTC |
- |
- |
- Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun |
- |
- Constraints: Minimum 30-minute window. |
- |
- :type cluster_parameter_group_name: string |
- :param cluster_parameter_group_name: |
- The name of the parameter group to be associated with this cluster. |
- |
- Default: The default Amazon Redshift cluster parameter group. For |
- information about the default parameter group, go to `Working with |
- Amazon Redshift Parameter Groups`_ |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters or hyphens. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- |
- :type automated_snapshot_retention_period: integer |
- :param automated_snapshot_retention_period: The number of days that |
- automated snapshots are retained. If the value is 0, automated |
- snapshots are disabled. Even if automated snapshots are disabled, |
- you can still create manual snapshots when you want with |
- CreateClusterSnapshot. |
- Default: `1` |
- |
- Constraints: Must be a value from 0 to 35. |
- |
- :type port: integer |
- :param port: The port number on which the cluster accepts incoming |
- connections. |
- The cluster is accessible only via the JDBC and ODBC connection |
- strings. Part of the connection string requires the port on which |
- the cluster will listen for incoming connections. |
- |
- Default: `5439` |
- |
- Valid Values: `1150-65535` |
- |
- :type cluster_version: string |
- :param cluster_version: The version of the Amazon Redshift engine |
- software that you want to deploy on the cluster. |
- The version selected runs on all the nodes in the cluster. |
- |
- Constraints: Only version 1.0 is currently available. |
- |
- Example: `1.0` |
- |
- :type allow_version_upgrade: boolean |
- :param allow_version_upgrade: If `True`, upgrades can be applied during |
- the maintenance window to the Amazon Redshift engine that is |
- running on the cluster. |
- When a new version of the Amazon Redshift engine is released, you can |
- request that the service automatically apply upgrades during the |
- maintenance window to the Amazon Redshift engine that is running on |
- your cluster. |
- |
- Default: `True` |
- |
- :type number_of_nodes: integer |
- :param number_of_nodes: The number of compute nodes in the cluster. |
- This parameter is required when the **ClusterType** parameter is |
- specified as `multi-node`. |
- For information about determining how many nodes you need, go to ` |
- Working with Clusters`_ in the Amazon Redshift Management Guide . |
- |
- If you don't specify this parameter, you get a single-node cluster. |
- When requesting a multi-node cluster, you must specify the number |
- of nodes that you want in the cluster. |
- |
- Default: `1` |
- |
- Constraints: Value must be at least 1 and no more than 100. |
- |
- :type publicly_accessible: boolean |
- :param publicly_accessible: If `True`, the cluster can be accessed from |
- a public network. |
- |
- :type encrypted: boolean |
- :param encrypted: If `True`, the data in the cluster is encrypted at |
- rest. |
- Default: false |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: Specifies the name of the HSM |
- client certificate the Amazon Redshift cluster uses to retrieve the |
- data encryption keys stored in an HSM. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: Specifies the name of the HSM |
- configuration that contains the information the Amazon Redshift |
- cluster can use to retrieve and store keys in an HSM. |
- |
- :type elastic_ip: string |
- :param elastic_ip: The Elastic IP (EIP) address for the cluster. |
- Constraints: The cluster must be provisioned in EC2-VPC and publicly- |
- accessible through an Internet gateway. For more information about |
- provisioning clusters in EC2-VPC, go to `Supported Platforms to |
- Launch Your Cluster`_ in the Amazon Redshift Management Guide. |
- |
- """ |
- params = { |
- 'ClusterIdentifier': cluster_identifier, |
- 'NodeType': node_type, |
- 'MasterUsername': master_username, |
- 'MasterUserPassword': master_user_password, |
- } |
- if db_name is not None: |
- params['DBName'] = db_name |
- if cluster_type is not None: |
- params['ClusterType'] = cluster_type |
- if cluster_security_groups is not None: |
- self.build_list_params(params, |
- cluster_security_groups, |
- 'ClusterSecurityGroups.member') |
- if vpc_security_group_ids is not None: |
- self.build_list_params(params, |
- vpc_security_group_ids, |
- 'VpcSecurityGroupIds.member') |
- if cluster_subnet_group_name is not None: |
- params['ClusterSubnetGroupName'] = cluster_subnet_group_name |
- if availability_zone is not None: |
- params['AvailabilityZone'] = availability_zone |
- if preferred_maintenance_window is not None: |
- params['PreferredMaintenanceWindow'] = preferred_maintenance_window |
- if cluster_parameter_group_name is not None: |
- params['ClusterParameterGroupName'] = cluster_parameter_group_name |
- if automated_snapshot_retention_period is not None: |
- params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period |
- if port is not None: |
- params['Port'] = port |
- if cluster_version is not None: |
- params['ClusterVersion'] = cluster_version |
- if allow_version_upgrade is not None: |
- params['AllowVersionUpgrade'] = str( |
- allow_version_upgrade).lower() |
- if number_of_nodes is not None: |
- params['NumberOfNodes'] = number_of_nodes |
- if publicly_accessible is not None: |
- params['PubliclyAccessible'] = str( |
- publicly_accessible).lower() |
- if encrypted is not None: |
- params['Encrypted'] = str( |
- encrypted).lower() |
- if hsm_client_certificate_identifier is not None: |
- params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier |
- if hsm_configuration_identifier is not None: |
- params['HsmConfigurationIdentifier'] = hsm_configuration_identifier |
- if elastic_ip is not None: |
- params['ElasticIp'] = elastic_ip |
- return self._make_request( |
- action='CreateCluster', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_cluster_parameter_group(self, parameter_group_name, |
- parameter_group_family, description): |
- """ |
- Creates an Amazon Redshift parameter group. |
- |
- Creating parameter groups is independent of creating clusters. |
- You can associate a cluster with a parameter group when you |
- create the cluster. You can also associate an existing cluster |
- with a parameter group after the cluster is created by using |
- ModifyCluster. |
- |
- Parameters in the parameter group define specific behavior |
- that applies to the databases you create on the cluster. For |
- more information about managing parameter groups, go to |
- `Amazon Redshift Parameter Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: |
- The name of the cluster parameter group. |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters or hyphens |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- + Must be unique within your AWS account. |
- |
- This value is stored as a lower-case string. |
- |
- :type parameter_group_family: string |
- :param parameter_group_family: The Amazon Redshift engine version to |
- which the cluster parameter group applies. The cluster engine |
- version determines the set of parameters. |
- To get a list of valid parameter group family names, you can call |
- DescribeClusterParameterGroups. By default, Amazon Redshift returns |
- a list of all the parameter groups that are owned by your AWS |
- account, including the default parameter groups for each Amazon |
- Redshift engine version. The parameter group family names |
- associated with the default parameter groups provide you the valid |
- values. For example, a valid family name is "redshift-1.0". |
- |
- :type description: string |
- :param description: A description of the parameter group. |
- |
- """ |
- params = { |
- 'ParameterGroupName': parameter_group_name, |
- 'ParameterGroupFamily': parameter_group_family, |
- 'Description': description, |
- } |
- return self._make_request( |
- action='CreateClusterParameterGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_cluster_security_group(self, cluster_security_group_name, |
- description): |
- """ |
- Creates a new Amazon Redshift security group. You use security |
- groups to control access to non-VPC clusters. |
- |
- For information about managing security groups, go to `Amazon |
- Redshift Cluster Security Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type cluster_security_group_name: string |
- :param cluster_security_group_name: The name for the security group. |
- Amazon Redshift stores the value as a lowercase string. |
- Constraints: |
- |
- |
- + Must contain no more than 255 alphanumeric characters or hyphens. |
- + Must not be "Default". |
- + Must be unique for all security groups that are created by your AWS |
- account. |
- |
- |
- Example: `examplesecuritygroup` |
- |
- :type description: string |
- :param description: A description for the security group. |
- |
- """ |
- params = { |
- 'ClusterSecurityGroupName': cluster_security_group_name, |
- 'Description': description, |
- } |
- return self._make_request( |
- action='CreateClusterSecurityGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_cluster_snapshot(self, snapshot_identifier, |
- cluster_identifier): |
- """ |
- Creates a manual snapshot of the specified cluster. The |
- cluster must be in the `available` state. |
- |
- For more information about working with snapshots, go to |
- `Amazon Redshift Snapshots`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: A unique identifier for the snapshot that |
- you are requesting. This identifier must be unique for all |
- snapshots within the AWS account. |
- Constraints: |
- |
- |
- + Cannot be null, empty, or blank |
- + Must contain from 1 to 255 alphanumeric characters or hyphens |
- + First character must be a letter |
- + Cannot end with a hyphen or contain two consecutive hyphens |
- |
- |
- Example: `my-snapshot-id` |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The cluster identifier for which you want a |
- snapshot. |
- |
- """ |
- params = { |
- 'SnapshotIdentifier': snapshot_identifier, |
- 'ClusterIdentifier': cluster_identifier, |
- } |
- return self._make_request( |
- action='CreateClusterSnapshot', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_cluster_subnet_group(self, cluster_subnet_group_name, |
- description, subnet_ids): |
- """ |
- Creates a new Amazon Redshift subnet group. You must provide a |
- list of one or more subnets in your existing Amazon Virtual |
- Private Cloud (Amazon VPC) when creating Amazon Redshift |
- subnet group. |
- |
- For information about subnet groups, go to `Amazon Redshift |
- Cluster Subnet Groups`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name for the subnet group. Amazon |
- Redshift stores the value as a lowercase string. |
- Constraints: |
- |
- |
- + Must contain no more than 255 alphanumeric characters or hyphens. |
- + Must not be "Default". |
- + Must be unique for all subnet groups that are created by your AWS |
- account. |
- |
- |
- Example: `examplesubnetgroup` |
- |
- :type description: string |
- :param description: A description for the subnet group. |
- |
- :type subnet_ids: list |
- :param subnet_ids: An array of VPC subnet IDs. A maximum of 20 subnets |
- can be modified in a single request. |
- |
- """ |
- params = { |
- 'ClusterSubnetGroupName': cluster_subnet_group_name, |
- 'Description': description, |
- } |
- self.build_list_params(params, |
- subnet_ids, |
- 'SubnetIds.member') |
- return self._make_request( |
- action='CreateClusterSubnetGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_event_subscription(self, subscription_name, sns_topic_arn, |
- source_type=None, source_ids=None, |
- event_categories=None, severity=None, |
- enabled=None): |
- """ |
- Creates an Amazon Redshift event notification subscription. |
- This action requires an ARN (Amazon Resource Name) of an |
- Amazon SNS topic created by either the Amazon Redshift |
- console, the Amazon SNS console, or the Amazon SNS API. To |
- obtain an ARN with Amazon SNS, you must create a topic in |
- Amazon SNS and subscribe to the topic. The ARN is displayed in |
- the SNS console. |
- |
- You can specify the source type, and lists of Amazon Redshift |
- source IDs, event categories, and event severities. |
- Notifications will be sent for all events you want that match |
- those criteria. For example, you can specify source type = |
- cluster, source ID = my-cluster-1 and mycluster2, event |
- categories = Availability, Backup, and severity = ERROR. The |
- subscription will only send notifications for those ERROR |
- events in the Availability and Backup categories for the |
- specified clusters. |
- |
- If you specify both the source type and source IDs, such as |
- source type = cluster and source identifier = my-cluster-1, |
- notifications will be sent for all the cluster events for my- |
- cluster-1. If you specify a source type but do not specify a |
- source identifier, you will receive notice of the events for |
- the objects of that type in your AWS account. If you do not |
- specify either the SourceType nor the SourceIdentifier, you |
- will be notified of events generated from all Amazon Redshift |
- sources belonging to your AWS account. You must specify a |
- source type if you specify a source ID. |
- |
- :type subscription_name: string |
- :param subscription_name: |
- The name of the event subscription to be created. |
- |
- Constraints: |
- |
- |
- + Cannot be null, empty, or blank. |
- + Must contain from 1 to 255 alphanumeric characters or hyphens. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- |
- :type sns_topic_arn: string |
- :param sns_topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS |
- topic used to transmit the event notifications. The ARN is created |
- by Amazon SNS when you create a topic and subscribe to it. |
- |
- :type source_type: string |
- :param source_type: The type of source that will be generating the |
- events. For example, if you want to be notified of events generated |
- by a cluster, you would set this parameter to cluster. If this |
- value is not specified, events are returned for all Amazon Redshift |
- objects in your AWS account. You must specify a source type in |
- order to specify source IDs. |
- Valid values: cluster, cluster-parameter-group, cluster-security-group, |
- and cluster-snapshot. |
- |
- :type source_ids: list |
- :param source_ids: A list of one or more identifiers of Amazon Redshift |
- source objects. All of the objects must be of the same type as was |
- specified in the source type parameter. The event subscription will |
- return only events generated by the specified objects. If not |
- specified, then events are returned for all objects within the |
- source type specified. |
- Example: my-cluster-1, my-cluster-2 |
- |
- Example: my-snapshot-20131010 |
- |
- :type event_categories: list |
- :param event_categories: Specifies the Amazon Redshift event categories |
- to be published by the event notification subscription. |
- Values: Configuration, Management, Monitoring, Security |
- |
- :type severity: string |
- :param severity: Specifies the Amazon Redshift event severity to be |
- published by the event notification subscription. |
- Values: ERROR, INFO |
- |
- :type enabled: boolean |
- :param enabled: A Boolean value; set to `True` to activate the |
- subscription, set to `False` to create the subscription but not |
- active it. |
- |
- """ |
- params = { |
- 'SubscriptionName': subscription_name, |
- 'SnsTopicArn': sns_topic_arn, |
- } |
- if source_type is not None: |
- params['SourceType'] = source_type |
- if source_ids is not None: |
- self.build_list_params(params, |
- source_ids, |
- 'SourceIds.member') |
- if event_categories is not None: |
- self.build_list_params(params, |
- event_categories, |
- 'EventCategories.member') |
- if severity is not None: |
- params['Severity'] = severity |
- if enabled is not None: |
- params['Enabled'] = str( |
- enabled).lower() |
- return self._make_request( |
- action='CreateEventSubscription', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_hsm_client_certificate(self, |
- hsm_client_certificate_identifier): |
- """ |
- Creates an HSM client certificate that an Amazon Redshift |
- cluster will use to connect to the client's HSM in order to |
- store and retrieve the keys used to encrypt the cluster |
- databases. |
- |
- The command returns a public key, which you must store in the |
- HSM. In addition to creating the HSM certificate, you must |
- create an Amazon Redshift HSM configuration that provides a |
- cluster the information needed to store and use encryption |
- keys in the HSM. For more information, go to `Hardware |
- Security Modules`_ in the Amazon Redshift Management Guide. |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: The identifier to be assigned |
- to the new HSM client certificate that the cluster will use to |
- connect to the HSM to use the database encryption keys. |
- |
- """ |
- params = { |
- 'HsmClientCertificateIdentifier': hsm_client_certificate_identifier, |
- } |
- return self._make_request( |
- action='CreateHsmClientCertificate', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_hsm_configuration(self, hsm_configuration_identifier, |
- description, hsm_ip_address, |
- hsm_partition_name, hsm_partition_password, |
- hsm_server_public_certificate): |
- """ |
- Creates an HSM configuration that contains the information |
- required by an Amazon Redshift cluster to store and use |
- database encryption keys in a Hardware Security Module (HSM). |
- After creating the HSM configuration, you can specify it as a |
- parameter when creating a cluster. The cluster will then store |
- its encryption keys in the HSM. |
- |
- In addition to creating an HSM configuration, you must also |
- create an HSM client certificate. For more information, go to |
- `Hardware Security Modules`_ in the Amazon Redshift Management |
- Guide. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: The identifier to be assigned to |
- the new Amazon Redshift HSM configuration. |
- |
- :type description: string |
- :param description: A text description of the HSM configuration to be |
- created. |
- |
- :type hsm_ip_address: string |
- :param hsm_ip_address: The IP address that the Amazon Redshift cluster |
- must use to access the HSM. |
- |
- :type hsm_partition_name: string |
- :param hsm_partition_name: The name of the partition in the HSM where |
- the Amazon Redshift clusters will store their database encryption |
- keys. |
- |
- :type hsm_partition_password: string |
- :param hsm_partition_password: The password required to access the HSM |
- partition. |
- |
- :type hsm_server_public_certificate: string |
- :param hsm_server_public_certificate: The HSMs public certificate file. |
- When using Cloud HSM, the file name is server.pem. |
- |
- """ |
- params = { |
- 'HsmConfigurationIdentifier': hsm_configuration_identifier, |
- 'Description': description, |
- 'HsmIpAddress': hsm_ip_address, |
- 'HsmPartitionName': hsm_partition_name, |
- 'HsmPartitionPassword': hsm_partition_password, |
- 'HsmServerPublicCertificate': hsm_server_public_certificate, |
- } |
- return self._make_request( |
- action='CreateHsmConfiguration', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_cluster(self, cluster_identifier, |
- skip_final_cluster_snapshot=None, |
- final_cluster_snapshot_identifier=None): |
- """ |
- Deletes a previously provisioned cluster. A successful |
- response from the web service indicates that the request was |
- received correctly. If a final cluster snapshot is requested |
- the status of the cluster will be "final-snapshot" while the |
- snapshot is being taken, then it's "deleting" once Amazon |
- Redshift begins deleting the cluster. Use DescribeClusters to |
- monitor the status of the deletion. The delete operation |
- cannot be canceled or reverted once submitted. For more |
- information about managing clusters, go to `Amazon Redshift |
- Clusters`_ in the Amazon Redshift Management Guide . |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: |
- The identifier of the cluster to be deleted. |
- |
- Constraints: |
- |
- |
- + Must contain lowercase characters. |
- + Must contain from 1 to 63 alphanumeric characters or hyphens. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- |
- :type skip_final_cluster_snapshot: boolean |
- :param skip_final_cluster_snapshot: Determines whether a final snapshot |
- of the cluster is created before Amazon Redshift deletes the |
- cluster. If `True`, a final cluster snapshot is not created. If |
- `False`, a final cluster snapshot is created before the cluster is |
- deleted. |
- Default: `False` |
- |
- :type final_cluster_snapshot_identifier: string |
- :param final_cluster_snapshot_identifier: |
- The identifier of the final snapshot that is to be created immediately |
- before deleting the cluster. If this parameter is provided, |
- SkipFinalClusterSnapshot must be `False`. |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- if skip_final_cluster_snapshot is not None: |
- params['SkipFinalClusterSnapshot'] = str( |
- skip_final_cluster_snapshot).lower() |
- if final_cluster_snapshot_identifier is not None: |
- params['FinalClusterSnapshotIdentifier'] = final_cluster_snapshot_identifier |
- return self._make_request( |
- action='DeleteCluster', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_cluster_parameter_group(self, parameter_group_name): |
- """ |
- Deletes a specified Amazon Redshift parameter group. |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: |
- The name of the parameter group to be deleted. |
- |
- Constraints: |
- |
- |
- + Must be the name of an existing cluster parameter group. |
- + Cannot delete a default cluster parameter group. |
- |
- """ |
- params = {'ParameterGroupName': parameter_group_name, } |
- return self._make_request( |
- action='DeleteClusterParameterGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_cluster_security_group(self, cluster_security_group_name): |
- """ |
- Deletes an Amazon Redshift security group. |
- |
- For information about managing security groups, go to `Amazon |
- Redshift Cluster Security Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type cluster_security_group_name: string |
- :param cluster_security_group_name: The name of the cluster security |
- group to be deleted. |
- |
- """ |
- params = { |
- 'ClusterSecurityGroupName': cluster_security_group_name, |
- } |
- return self._make_request( |
- action='DeleteClusterSecurityGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_cluster_snapshot(self, snapshot_identifier, |
- snapshot_cluster_identifier=None): |
- """ |
- Deletes the specified manual snapshot. The snapshot must be in |
- the `available` state, with no other users authorized to |
- access the snapshot. |
- |
- Unlike automated snapshots, manual snapshots are retained even |
- after you delete your cluster. Amazon Redshift does not delete |
- your manual snapshots. You must delete manual snapshot |
- explicitly to avoid getting charged. If other accounts are |
- authorized to access the snapshot, you must revoke all of the |
- authorizations before you can delete the snapshot. |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: The unique identifier of the manual |
- snapshot to be deleted. |
- Constraints: Must be the name of an existing snapshot that is in the |
- `available` state. |
- |
- :type snapshot_cluster_identifier: string |
- :param snapshot_cluster_identifier: The unique identifier of the |
- cluster the snapshot was created from. This parameter is required |
- if your IAM user has a policy containing a snapshot resource |
- element that specifies anything other than * for the cluster name. |
- Constraints: Must be the name of valid cluster. |
- |
- """ |
- params = {'SnapshotIdentifier': snapshot_identifier, } |
- if snapshot_cluster_identifier is not None: |
- params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier |
- return self._make_request( |
- action='DeleteClusterSnapshot', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_cluster_subnet_group(self, cluster_subnet_group_name): |
- """ |
- Deletes the specified cluster subnet group. |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name of the cluster subnet group |
- name to be deleted. |
- |
- """ |
- params = { |
- 'ClusterSubnetGroupName': cluster_subnet_group_name, |
- } |
- return self._make_request( |
- action='DeleteClusterSubnetGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_event_subscription(self, subscription_name): |
- """ |
- Deletes an Amazon Redshift event notification subscription. |
- |
- :type subscription_name: string |
- :param subscription_name: The name of the Amazon Redshift event |
- notification subscription to be deleted. |
- |
- """ |
- params = {'SubscriptionName': subscription_name, } |
- return self._make_request( |
- action='DeleteEventSubscription', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_hsm_client_certificate(self, |
- hsm_client_certificate_identifier): |
- """ |
- Deletes the specified HSM client certificate. |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: The identifier of the HSM |
- client certificate to be deleted. |
- |
- """ |
- params = { |
- 'HsmClientCertificateIdentifier': hsm_client_certificate_identifier, |
- } |
- return self._make_request( |
- action='DeleteHsmClientCertificate', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_hsm_configuration(self, hsm_configuration_identifier): |
- """ |
- Deletes the specified Amazon Redshift HSM configuration. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: The identifier of the Amazon |
- Redshift HSM configuration to be deleted. |
- |
- """ |
- params = { |
- 'HsmConfigurationIdentifier': hsm_configuration_identifier, |
- } |
- return self._make_request( |
- action='DeleteHsmConfiguration', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_parameter_groups(self, parameter_group_name=None, |
- max_records=None, marker=None): |
- """ |
- Returns a list of Amazon Redshift parameter groups, including |
- parameter groups you created and the default parameter group. |
- For each parameter group, the response includes the parameter |
- group name, description, and parameter group family name. You |
- can optionally specify a name to retrieve the description of a |
- specific parameter group. |
- |
- For more information about managing parameter groups, go to |
- `Amazon Redshift Parameter Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: The name of a specific parameter group for |
- which to return details. By default, details about all parameter |
- groups and the default parameter group are returned. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterParameterGroups request exceed the value specified |
- in `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if parameter_group_name is not None: |
- params['ParameterGroupName'] = parameter_group_name |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusterParameterGroups', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_parameters(self, parameter_group_name, source=None, |
- max_records=None, marker=None): |
- """ |
- Returns a detailed list of parameters contained within the |
- specified Amazon Redshift parameter group. For each parameter |
- the response includes information such as parameter name, |
- description, data type, value, whether the parameter value is |
- modifiable, and so on. |
- |
- You can specify source filter to retrieve parameters of only |
- specific type. For example, to retrieve parameters that were |
- modified by a user action such as from |
- ModifyClusterParameterGroup, you can specify source equal to |
- user . |
- |
- For more information about managing parameter groups, go to |
- `Amazon Redshift Parameter Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: The name of a cluster parameter group for |
- which to return details. |
- |
- :type source: string |
- :param source: The parameter types to return. Specify `user` to show |
- parameters that are different form the default. Similarly, specify |
- `engine-default` to show parameters that are the same as the |
- default parameter group. |
- Default: All parameter types returned. |
- |
- Valid Values: `user` | `engine-default` |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterParameters request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {'ParameterGroupName': parameter_group_name, } |
- if source is not None: |
- params['Source'] = source |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusterParameters', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_security_groups(self, |
- cluster_security_group_name=None, |
- max_records=None, marker=None): |
- """ |
- Returns information about Amazon Redshift security groups. If |
- the name of a security group is specified, the response will |
- contain only information about only that security group. |
- |
- For information about managing security groups, go to `Amazon |
- Redshift Cluster Security Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type cluster_security_group_name: string |
- :param cluster_security_group_name: The name of a cluster security |
- group for which you are requesting details. You can specify either |
- the **Marker** parameter or a **ClusterSecurityGroupName** |
- parameter, but not both. |
- Example: `securitygroup1` |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterSecurityGroups request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- Constraints: You can specify either the **ClusterSecurityGroupName** |
- parameter or the **Marker** parameter, but not both. |
- |
- """ |
- params = {} |
- if cluster_security_group_name is not None: |
- params['ClusterSecurityGroupName'] = cluster_security_group_name |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusterSecurityGroups', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_snapshots(self, cluster_identifier=None, |
- snapshot_identifier=None, |
- snapshot_type=None, start_time=None, |
- end_time=None, max_records=None, |
- marker=None, owner_account=None): |
- """ |
- Returns one or more snapshot objects, which contain metadata |
- about your cluster snapshots. By default, this operation |
- returns information about all snapshots of all clusters that |
- are owned by you AWS customer account. No information is |
- returned for snapshots owned by inactive AWS customer |
- accounts. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The identifier of the cluster for which |
- information about snapshots is requested. |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: The snapshot identifier of the snapshot |
- about which to return information. |
- |
- :type snapshot_type: string |
- :param snapshot_type: The type of snapshots for which you are |
- requesting information. By default, snapshots of all types are |
- returned. |
- Valid Values: `automated` | `manual` |
- |
- :type start_time: timestamp |
- :param start_time: A value that requests only snapshots created at or |
- after the specified time. The time value is specified in ISO 8601 |
- format. For more information about ISO 8601, go to the `ISO8601 |
- Wikipedia page.`_ |
- Example: `2012-07-16T18:00:00Z` |
- |
- :type end_time: timestamp |
- :param end_time: A time value that requests only snapshots created at |
- or before the specified time. The time value is specified in ISO |
- 8601 format. For more information about ISO 8601, go to the |
- `ISO8601 Wikipedia page.`_ |
- Example: `2012-07-16T18:00:00Z` |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterSnapshots request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- :type owner_account: string |
- :param owner_account: The AWS customer account used to create or copy |
- the snapshot. Use this field to filter the results to snapshots |
- owned by a particular account. To describe snapshots you own, |
- either specify your AWS customer account, or do not specify the |
- parameter. |
- |
- """ |
- params = {} |
- if cluster_identifier is not None: |
- params['ClusterIdentifier'] = cluster_identifier |
- if snapshot_identifier is not None: |
- params['SnapshotIdentifier'] = snapshot_identifier |
- if snapshot_type is not None: |
- params['SnapshotType'] = snapshot_type |
- if start_time is not None: |
- params['StartTime'] = start_time |
- if end_time is not None: |
- params['EndTime'] = end_time |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- if owner_account is not None: |
- params['OwnerAccount'] = owner_account |
- return self._make_request( |
- action='DescribeClusterSnapshots', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_subnet_groups(self, cluster_subnet_group_name=None, |
- max_records=None, marker=None): |
- """ |
- Returns one or more cluster subnet group objects, which |
- contain metadata about your cluster subnet groups. By default, |
- this operation returns information about all cluster subnet |
- groups that are defined in you AWS account. |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name of the cluster subnet group |
- for which information is requested. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterSubnetGroups request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if cluster_subnet_group_name is not None: |
- params['ClusterSubnetGroupName'] = cluster_subnet_group_name |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusterSubnetGroups', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_cluster_versions(self, cluster_version=None, |
- cluster_parameter_group_family=None, |
- max_records=None, marker=None): |
- """ |
- Returns descriptions of the available Amazon Redshift cluster |
- versions. You can call this operation even before creating any |
- clusters to learn more about the Amazon Redshift versions. For |
- more information about managing clusters, go to `Amazon |
- Redshift Clusters`_ in the Amazon Redshift Management Guide |
- |
- :type cluster_version: string |
- :param cluster_version: The specific cluster version to return. |
- Example: `1.0` |
- |
- :type cluster_parameter_group_family: string |
- :param cluster_parameter_group_family: |
- The name of a specific cluster parameter group family to return details |
- for. |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters |
- + First character must be a letter |
- + Cannot end with a hyphen or contain two consecutive hyphens |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusterVersions request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if cluster_version is not None: |
- params['ClusterVersion'] = cluster_version |
- if cluster_parameter_group_family is not None: |
- params['ClusterParameterGroupFamily'] = cluster_parameter_group_family |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusterVersions', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_clusters(self, cluster_identifier=None, max_records=None, |
- marker=None): |
- """ |
- Returns properties of provisioned clusters including general |
- cluster properties, cluster database properties, maintenance |
- and backup properties, and security and access properties. |
- This operation supports pagination. For more information about |
- managing clusters, go to `Amazon Redshift Clusters`_ in the |
- Amazon Redshift Management Guide . |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of a cluster whose |
- properties you are requesting. This parameter is case sensitive. |
- The default is that all clusters defined for an account are returned. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeClusters request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- Constraints: You can specify either the **ClusterIdentifier** parameter |
- or the **Marker** parameter, but not both. |
- |
- """ |
- params = {} |
- if cluster_identifier is not None: |
- params['ClusterIdentifier'] = cluster_identifier |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeClusters', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_default_cluster_parameters(self, parameter_group_family, |
- max_records=None, marker=None): |
- """ |
- Returns a list of parameter settings for the specified |
- parameter group family. |
- |
- For more information about managing parameter groups, go to |
- `Amazon Redshift Parameter Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type parameter_group_family: string |
- :param parameter_group_family: The name of the cluster parameter group |
- family. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeDefaultClusterParameters request exceed the value specified |
- in `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {'ParameterGroupFamily': parameter_group_family, } |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeDefaultClusterParameters', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_event_categories(self, source_type=None): |
- """ |
- Displays a list of event categories for all event source |
- types, or for a specified source type. For a list of the event |
- categories and source types, go to `Amazon Redshift Event |
- Notifications`_. |
- |
- :type source_type: string |
- :param source_type: The source type, such as cluster or parameter |
- group, to which the described event categories apply. |
- Valid values: cluster, snapshot, parameter group, and security group. |
- |
- """ |
- params = {} |
- if source_type is not None: |
- params['SourceType'] = source_type |
- return self._make_request( |
- action='DescribeEventCategories', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_event_subscriptions(self, subscription_name=None, |
- max_records=None, marker=None): |
- """ |
- Lists descriptions of all the Amazon Redshift event |
- notifications subscription for a customer account. If you |
- specify a subscription name, lists the description for that |
- subscription. |
- |
- :type subscription_name: string |
- :param subscription_name: The name of the Amazon Redshift event |
- notification subscription to be described. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeEventSubscriptions request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if subscription_name is not None: |
- params['SubscriptionName'] = subscription_name |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeEventSubscriptions', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_events(self, source_identifier=None, source_type=None, |
- start_time=None, end_time=None, duration=None, |
- max_records=None, marker=None): |
- """ |
- Returns events related to clusters, security groups, |
- snapshots, and parameter groups for the past 14 days. Events |
- specific to a particular cluster, security group, snapshot or |
- parameter group can be obtained by providing the name as a |
- parameter. By default, the past hour of events are returned. |
- |
- :type source_identifier: string |
- :param source_identifier: |
- The identifier of the event source for which events will be returned. |
- If this parameter is not specified, then all sources are included |
- in the response. |
- |
- Constraints: |
- |
- If SourceIdentifier is supplied, SourceType must also be provided. |
- |
- |
- + Specify a cluster identifier when SourceType is `cluster`. |
- + Specify a cluster security group name when SourceType is `cluster- |
- security-group`. |
- + Specify a cluster parameter group name when SourceType is `cluster- |
- parameter-group`. |
- + Specify a cluster snapshot identifier when SourceType is `cluster- |
- snapshot`. |
- |
- :type source_type: string |
- :param source_type: |
- The event source to retrieve events for. If no value is specified, all |
- events are returned. |
- |
- Constraints: |
- |
- If SourceType is supplied, SourceIdentifier must also be provided. |
- |
- |
- + Specify `cluster` when SourceIdentifier is a cluster identifier. |
- + Specify `cluster-security-group` when SourceIdentifier is a cluster |
- security group name. |
- + Specify `cluster-parameter-group` when SourceIdentifier is a cluster |
- parameter group name. |
- + Specify `cluster-snapshot` when SourceIdentifier is a cluster |
- snapshot identifier. |
- |
- :type start_time: timestamp |
- :param start_time: The beginning of the time interval to retrieve |
- events for, specified in ISO 8601 format. For more information |
- about ISO 8601, go to the `ISO8601 Wikipedia page.`_ |
- Example: `2009-07-08T18:00Z` |
- |
- :type end_time: timestamp |
- :param end_time: The end of the time interval for which to retrieve |
- events, specified in ISO 8601 format. For more information about |
- ISO 8601, go to the `ISO8601 Wikipedia page.`_ |
- Example: `2009-07-08T18:00Z` |
- |
- :type duration: integer |
- :param duration: The number of minutes prior to the time of the request |
- for which to retrieve events. For example, if the request is sent |
- at 18:00 and you specify a duration of 60, then only events which |
- have occurred after 17:00 will be returned. |
- Default: `60` |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeEvents request exceed the value specified in `MaxRecords`, |
- AWS returns a value in the `Marker` field of the response. You can |
- retrieve the next set of response records by providing the returned |
- marker value in the `Marker` parameter and retrying the request. |
- |
- """ |
- params = {} |
- if source_identifier is not None: |
- params['SourceIdentifier'] = source_identifier |
- if source_type is not None: |
- params['SourceType'] = source_type |
- if start_time is not None: |
- params['StartTime'] = start_time |
- if end_time is not None: |
- params['EndTime'] = end_time |
- if duration is not None: |
- params['Duration'] = duration |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeEvents', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_hsm_client_certificates(self, |
- hsm_client_certificate_identifier=None, |
- max_records=None, marker=None): |
- """ |
- Returns information about the specified HSM client |
- certificate. If no certificate ID is specified, returns |
- information about all the HSM certificates owned by your AWS |
- customer account. |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: The identifier of a specific |
- HSM client certificate for which you want information. If no |
- identifier is specified, information is returned for all HSM client |
- certificates owned by your AWS customer account. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeHsmClientCertificates request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if hsm_client_certificate_identifier is not None: |
- params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeHsmClientCertificates', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_hsm_configurations(self, hsm_configuration_identifier=None, |
- max_records=None, marker=None): |
- """ |
- Returns information about the specified Amazon Redshift HSM |
- configuration. If no configuration ID is specified, returns |
- information about all the HSM configurations owned by your AWS |
- customer account. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: The identifier of a specific |
- Amazon Redshift HSM configuration to be described. If no identifier |
- is specified, information is returned for all HSM configurations |
- owned by your AWS customer account. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeHsmConfigurations request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if hsm_configuration_identifier is not None: |
- params['HsmConfigurationIdentifier'] = hsm_configuration_identifier |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeHsmConfigurations', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_logging_status(self, cluster_identifier): |
- """ |
- Describes whether information, such as queries and connection |
- attempts, is being logged for the specified Amazon Redshift |
- cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The identifier of the cluster to get the |
- logging status from. |
- Example: `examplecluster` |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='DescribeLoggingStatus', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_orderable_cluster_options(self, cluster_version=None, |
- node_type=None, max_records=None, |
- marker=None): |
- """ |
- Returns a list of orderable cluster options. Before you create |
- a new cluster you can use this operation to find what options |
- are available, such as the EC2 Availability Zones (AZ) in the |
- specific AWS region that you can specify, and the node types |
- you can request. The node types differ by available storage, |
- memory, CPU and price. With the cost involved you might want |
- to obtain a list of cluster options in the specific region and |
- specify values when creating a cluster. For more information |
- about managing clusters, go to `Amazon Redshift Clusters`_ in |
- the Amazon Redshift Management Guide |
- |
- :type cluster_version: string |
- :param cluster_version: The version filter value. Specify this |
- parameter to show only the available offerings matching the |
- specified version. |
- Default: All versions. |
- |
- Constraints: Must be one of the version returned from |
- DescribeClusterVersions. |
- |
- :type node_type: string |
- :param node_type: The node type filter value. Specify this parameter to |
- show only the available offerings matching the specified node type. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeOrderableClusterOptions request exceed the value specified |
- in `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if cluster_version is not None: |
- params['ClusterVersion'] = cluster_version |
- if node_type is not None: |
- params['NodeType'] = node_type |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeOrderableClusterOptions', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_reserved_node_offerings(self, |
- reserved_node_offering_id=None, |
- max_records=None, marker=None): |
- """ |
- Returns a list of the available reserved node offerings by |
- Amazon Redshift with their descriptions including the node |
- type, the fixed and recurring costs of reserving the node and |
- duration the node will be reserved for you. These descriptions |
- help you determine which reserve node offering you want to |
- purchase. You then use the unique offering ID in you call to |
- PurchaseReservedNodeOffering to reserve one or more nodes for |
- your Amazon Redshift cluster. |
- |
- For more information about managing parameter groups, go to |
- `Purchasing Reserved Nodes`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type reserved_node_offering_id: string |
- :param reserved_node_offering_id: The unique identifier for the |
- offering. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeReservedNodeOfferings request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if reserved_node_offering_id is not None: |
- params['ReservedNodeOfferingId'] = reserved_node_offering_id |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeReservedNodeOfferings', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_reserved_nodes(self, reserved_node_id=None, |
- max_records=None, marker=None): |
- """ |
- Returns the descriptions of the reserved nodes. |
- |
- :type reserved_node_id: string |
- :param reserved_node_id: Identifier for the node reservation. |
- |
- :type max_records: integer |
- :param max_records: The maximum number of response records to return in |
- each call. If the number of remaining response records exceeds the |
- specified `MaxRecords` value, a value is returned in a `marker` |
- field of the response. You can retrieve the next set of records by |
- retrying the command with the returned marker value. |
- Default: `100` |
- |
- Constraints: minimum 20, maximum 100. |
- |
- :type marker: string |
- :param marker: An optional parameter that specifies the starting point |
- to return a set of response records. When the results of a |
- DescribeReservedNodes request exceed the value specified in |
- `MaxRecords`, AWS returns a value in the `Marker` field of the |
- response. You can retrieve the next set of response records by |
- providing the returned marker value in the `Marker` parameter and |
- retrying the request. |
- |
- """ |
- params = {} |
- if reserved_node_id is not None: |
- params['ReservedNodeId'] = reserved_node_id |
- if max_records is not None: |
- params['MaxRecords'] = max_records |
- if marker is not None: |
- params['Marker'] = marker |
- return self._make_request( |
- action='DescribeReservedNodes', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_resize(self, cluster_identifier): |
- """ |
- Returns information about the last resize operation for the |
- specified cluster. If no resize operation has ever been |
- initiated for the specified cluster, a `HTTP 404` error is |
- returned. If a resize operation was initiated and completed, |
- the status of the resize remains as `SUCCEEDED` until the next |
- resize. |
- |
- A resize operation can be requested using ModifyCluster and |
- specifying a different number or type of nodes for the |
- cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of a cluster whose |
- resize progress you are requesting. This parameter isn't case- |
- sensitive. |
- By default, resize operations for all clusters defined for an AWS |
- account are returned. |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='DescribeResize', |
- verb='POST', |
- path='/', params=params) |
- |
- def disable_logging(self, cluster_identifier): |
- """ |
- Stops logging information, such as queries and connection |
- attempts, for the specified Amazon Redshift cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The identifier of the cluster on which |
- logging is to be stopped. |
- Example: `examplecluster` |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='DisableLogging', |
- verb='POST', |
- path='/', params=params) |
- |
- def disable_snapshot_copy(self, cluster_identifier): |
- """ |
- Disables the automatic copying of snapshots from one region to |
- another region for a specified cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of the source cluster |
- that you want to disable copying of snapshots to a destination |
- region. |
- Constraints: Must be the valid name of an existing cluster that has |
- cross-region snapshot copy enabled. |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='DisableSnapshotCopy', |
- verb='POST', |
- path='/', params=params) |
- |
- def enable_logging(self, cluster_identifier, bucket_name, |
- s3_key_prefix=None): |
- """ |
- Starts logging information, such as queries and connection |
- attempts, for the specified Amazon Redshift cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The identifier of the cluster on which |
- logging is to be started. |
- Example: `examplecluster` |
- |
- :type bucket_name: string |
- :param bucket_name: |
- The name of an existing S3 bucket where the log files are to be stored. |
- |
- Constraints: |
- |
- |
- + Must be in the same region as the cluster |
- + The cluster must have read bucket and put object permissions |
- |
- :type s3_key_prefix: string |
- :param s3_key_prefix: |
- The prefix applied to the log file names. |
- |
- Constraints: |
- |
- |
- + Cannot exceed 512 characters |
- + Cannot contain spaces( ), double quotes ("), single quotes ('), a |
- backslash (\), or control characters. The hexadecimal codes for |
- invalid characters are: |
- |
- + x00 to x20 |
- + x22 |
- + x27 |
- + x5c |
- + x7f or larger |
- |
- """ |
- params = { |
- 'ClusterIdentifier': cluster_identifier, |
- 'BucketName': bucket_name, |
- } |
- if s3_key_prefix is not None: |
- params['S3KeyPrefix'] = s3_key_prefix |
- return self._make_request( |
- action='EnableLogging', |
- verb='POST', |
- path='/', params=params) |
- |
- def enable_snapshot_copy(self, cluster_identifier, destination_region, |
- retention_period=None): |
- """ |
- Enables the automatic copy of snapshots from one region to |
- another region for a specified cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of the source cluster |
- to copy snapshots from. |
- Constraints: Must be the valid name of an existing cluster that does |
- not already have cross-region snapshot copy enabled. |
- |
- :type destination_region: string |
- :param destination_region: The destination region that you want to copy |
- snapshots to. |
- Constraints: Must be the name of a valid region. For more information, |
- see `Regions and Endpoints`_ in the Amazon Web Services General |
- Reference. |
- |
- :type retention_period: integer |
- :param retention_period: The number of days to retain automated |
- snapshots in the destination region after they are copied from the |
- source region. |
- Default: 7. |
- |
- Constraints: Must be at least 1 and no more than 35. |
- |
- """ |
- params = { |
- 'ClusterIdentifier': cluster_identifier, |
- 'DestinationRegion': destination_region, |
- } |
- if retention_period is not None: |
- params['RetentionPeriod'] = retention_period |
- return self._make_request( |
- action='EnableSnapshotCopy', |
- verb='POST', |
- path='/', params=params) |
- |
- def modify_cluster(self, cluster_identifier, cluster_type=None, |
- node_type=None, number_of_nodes=None, |
- cluster_security_groups=None, |
- vpc_security_group_ids=None, |
- master_user_password=None, |
- cluster_parameter_group_name=None, |
- automated_snapshot_retention_period=None, |
- preferred_maintenance_window=None, |
- cluster_version=None, allow_version_upgrade=None, |
- hsm_client_certificate_identifier=None, |
- hsm_configuration_identifier=None, |
- new_cluster_identifier=None): |
- """ |
- Modifies the settings for a cluster. For example, you can add |
- another security or parameter group, update the preferred |
- maintenance window, or change the master user password. |
- Resetting a cluster password or modifying the security groups |
- associated with a cluster do not need a reboot. However, |
- modifying a parameter group requires a reboot for parameters |
- to take effect. For more information about managing clusters, |
- go to `Amazon Redshift Clusters`_ in the Amazon Redshift |
- Management Guide |
- |
- You can also change node type and the number of nodes to scale |
- up or down the cluster. When resizing a cluster, you must |
- specify both the number of nodes and the node type even if one |
- of the parameters does not change. If you specify the same |
- number of nodes and node type that are already configured for |
- the cluster, an error is returned. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of the cluster to be |
- modified. |
- Example: `examplecluster` |
- |
- :type cluster_type: string |
- :param cluster_type: The new cluster type. |
- When you submit your cluster resize request, your existing cluster goes |
- into a read-only mode. After Amazon Redshift provisions a new |
- cluster based on your resize requirements, there will be outage for |
- a period while the old cluster is deleted and your connection is |
- switched to the new cluster. You can use DescribeResize to track |
- the progress of the resize request. |
- |
- Valid Values: ` multi-node | single-node ` |
- |
- :type node_type: string |
- :param node_type: The new node type of the cluster. If you specify a |
- new node type, you must also specify the number of nodes parameter |
- also. |
- When you submit your request to resize a cluster, Amazon Redshift sets |
- access permissions for the cluster to read-only. After Amazon |
- Redshift provisions a new cluster according to your resize |
- requirements, there will be a temporary outage while the old |
- cluster is deleted and your connection is switched to the new |
- cluster. When the new connection is complete, the original access |
- permissions for the cluster are restored. You can use the |
- DescribeResize to track the progress of the resize request. |
- |
- Valid Values: ` dw1.xlarge` | `dw1.8xlarge` | `dw2.large` | |
- `dw2.8xlarge`. |
- |
- :type number_of_nodes: integer |
- :param number_of_nodes: The new number of nodes of the cluster. If you |
- specify a new number of nodes, you must also specify the node type |
- parameter also. |
- When you submit your request to resize a cluster, Amazon Redshift sets |
- access permissions for the cluster to read-only. After Amazon |
- Redshift provisions a new cluster according to your resize |
- requirements, there will be a temporary outage while the old |
- cluster is deleted and your connection is switched to the new |
- cluster. When the new connection is complete, the original access |
- permissions for the cluster are restored. You can use |
- DescribeResize to track the progress of the resize request. |
- |
- Valid Values: Integer greater than `0`. |
- |
- :type cluster_security_groups: list |
- :param cluster_security_groups: |
- A list of cluster security groups to be authorized on this cluster. |
- This change is asynchronously applied as soon as possible. |
- |
- Security groups currently associated with the cluster, and not in the |
- list of groups to apply, will be revoked from the cluster. |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters or hyphens |
- + First character must be a letter |
- + Cannot end with a hyphen or contain two consecutive hyphens |
- |
- :type vpc_security_group_ids: list |
- :param vpc_security_group_ids: A list of virtual private cloud (VPC) |
- security groups to be associated with the cluster. |
- |
- :type master_user_password: string |
- :param master_user_password: |
- The new password for the cluster master user. This change is |
- asynchronously applied as soon as possible. Between the time of the |
- request and the completion of the request, the `MasterUserPassword` |
- element exists in the `PendingModifiedValues` element of the |
- operation response. |
- |
- Default: Uses existing setting. |
- |
- Constraints: |
- |
- |
- + Must be between 8 and 64 characters in length. |
- + Must contain at least one uppercase letter. |
- + Must contain at least one lowercase letter. |
- + Must contain one number. |
- + Can be any printable ASCII character (ASCII code 33 to 126) except ' |
- (single quote), " (double quote), \, /, @, or space. |
- |
- :type cluster_parameter_group_name: string |
- :param cluster_parameter_group_name: The name of the cluster parameter |
- group to apply to this cluster. This change is applied only after |
- the cluster is rebooted. To reboot a cluster use RebootCluster. |
- Default: Uses existing setting. |
- |
- Constraints: The cluster parameter group must be in the same parameter |
- group family that matches the cluster version. |
- |
- :type automated_snapshot_retention_period: integer |
- :param automated_snapshot_retention_period: The number of days that |
- automated snapshots are retained. If the value is 0, automated |
- snapshots are disabled. Even if automated snapshots are disabled, |
- you can still create manual snapshots when you want with |
- CreateClusterSnapshot. |
- If you decrease the automated snapshot retention period from its |
- current value, existing automated snapshots that fall outside of |
- the new retention period will be immediately deleted. |
- |
- Default: Uses existing setting. |
- |
- Constraints: Must be a value from 0 to 35. |
- |
- :type preferred_maintenance_window: string |
- :param preferred_maintenance_window: The weekly time range (in UTC) |
- during which system maintenance can occur, if necessary. If system |
- maintenance is necessary during the window, it may result in an |
- outage. |
- This maintenance window change is made immediately. If the new |
- maintenance window indicates the current time, there must be at |
- least 120 minutes between the current time and end of the window in |
- order to ensure that pending changes are applied. |
- |
- Default: Uses existing setting. |
- |
- Format: ddd:hh24:mi-ddd:hh24:mi, for example `wed:07:30-wed:08:00`. |
- |
- Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun |
- |
- Constraints: Must be at least 30 minutes. |
- |
- :type cluster_version: string |
- :param cluster_version: The new version number of the Amazon Redshift |
- engine to upgrade to. |
- For major version upgrades, if a non-default cluster parameter group is |
- currently in use, a new cluster parameter group in the cluster |
- parameter group family for the new version must be specified. The |
- new cluster parameter group can be the default for that cluster |
- parameter group family. For more information about managing |
- parameter groups, go to `Amazon Redshift Parameter Groups`_ in the |
- Amazon Redshift Management Guide . |
- |
- Example: `1.0` |
- |
- :type allow_version_upgrade: boolean |
- :param allow_version_upgrade: If `True`, upgrades will be applied |
- automatically to the cluster during the maintenance window. |
- Default: `False` |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: Specifies the name of the HSM |
- client certificate the Amazon Redshift cluster uses to retrieve the |
- data encryption keys stored in an HSM. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: Specifies the name of the HSM |
- configuration that contains the information the Amazon Redshift |
- cluster can use to retrieve and store keys in an HSM. |
- |
- :type new_cluster_identifier: string |
- :param new_cluster_identifier: The new identifier for the cluster. |
- Constraints: |
- |
- |
- + Must contain from 1 to 63 alphanumeric characters or hyphens. |
- + Alphabetic characters must be lowercase. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- + Must be unique for all clusters within an AWS account. |
- |
- |
- Example: `examplecluster` |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- if cluster_type is not None: |
- params['ClusterType'] = cluster_type |
- if node_type is not None: |
- params['NodeType'] = node_type |
- if number_of_nodes is not None: |
- params['NumberOfNodes'] = number_of_nodes |
- if cluster_security_groups is not None: |
- self.build_list_params(params, |
- cluster_security_groups, |
- 'ClusterSecurityGroups.member') |
- if vpc_security_group_ids is not None: |
- self.build_list_params(params, |
- vpc_security_group_ids, |
- 'VpcSecurityGroupIds.member') |
- if master_user_password is not None: |
- params['MasterUserPassword'] = master_user_password |
- if cluster_parameter_group_name is not None: |
- params['ClusterParameterGroupName'] = cluster_parameter_group_name |
- if automated_snapshot_retention_period is not None: |
- params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period |
- if preferred_maintenance_window is not None: |
- params['PreferredMaintenanceWindow'] = preferred_maintenance_window |
- if cluster_version is not None: |
- params['ClusterVersion'] = cluster_version |
- if allow_version_upgrade is not None: |
- params['AllowVersionUpgrade'] = str( |
- allow_version_upgrade).lower() |
- if hsm_client_certificate_identifier is not None: |
- params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier |
- if hsm_configuration_identifier is not None: |
- params['HsmConfigurationIdentifier'] = hsm_configuration_identifier |
- if new_cluster_identifier is not None: |
- params['NewClusterIdentifier'] = new_cluster_identifier |
- return self._make_request( |
- action='ModifyCluster', |
- verb='POST', |
- path='/', params=params) |
- |
- def modify_cluster_parameter_group(self, parameter_group_name, |
- parameters): |
- """ |
- Modifies the parameters of a parameter group. |
- |
- For more information about managing parameter groups, go to |
- `Amazon Redshift Parameter Groups`_ in the Amazon Redshift |
- Management Guide . |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: The name of the parameter group to be |
- modified. |
- |
- :type parameters: list |
- :param parameters: An array of parameters to be modified. A maximum of |
- 20 parameters can be modified in a single request. |
- For each parameter to be modified, you must supply at least the |
- parameter name and parameter value; other name-value pairs of the |
- parameter are optional. |
- |
- For the workload management (WLM) configuration, you must supply all |
- the name-value pairs in the wlm_json_configuration parameter. |
- |
- """ |
- params = {'ParameterGroupName': parameter_group_name, } |
- self.build_complex_list_params( |
- params, parameters, |
- 'Parameters.member', |
- ('ParameterName', 'ParameterValue', 'Description', 'Source', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion')) |
- return self._make_request( |
- action='ModifyClusterParameterGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def modify_cluster_subnet_group(self, cluster_subnet_group_name, |
- subnet_ids, description=None): |
- """ |
- Modifies a cluster subnet group to include the specified list |
- of VPC subnets. The operation replaces the existing list of |
- subnets with the new list of subnets. |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name of the subnet group to be |
- modified. |
- |
- :type description: string |
- :param description: A text description of the subnet group to be |
- modified. |
- |
- :type subnet_ids: list |
- :param subnet_ids: An array of VPC subnet IDs. A maximum of 20 subnets |
- can be modified in a single request. |
- |
- """ |
- params = { |
- 'ClusterSubnetGroupName': cluster_subnet_group_name, |
- } |
- self.build_list_params(params, |
- subnet_ids, |
- 'SubnetIds.member') |
- if description is not None: |
- params['Description'] = description |
- return self._make_request( |
- action='ModifyClusterSubnetGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def modify_event_subscription(self, subscription_name, |
- sns_topic_arn=None, source_type=None, |
- source_ids=None, event_categories=None, |
- severity=None, enabled=None): |
- """ |
- Modifies an existing Amazon Redshift event notification |
- subscription. |
- |
- :type subscription_name: string |
- :param subscription_name: The name of the modified Amazon Redshift |
- event notification subscription. |
- |
- :type sns_topic_arn: string |
- :param sns_topic_arn: The Amazon Resource Name (ARN) of the SNS topic |
- to be used by the event notification subscription. |
- |
- :type source_type: string |
- :param source_type: The type of source that will be generating the |
- events. For example, if you want to be notified of events generated |
- by a cluster, you would set this parameter to cluster. If this |
- value is not specified, events are returned for all Amazon Redshift |
- objects in your AWS account. You must specify a source type in |
- order to specify source IDs. |
- Valid values: cluster, cluster-parameter-group, cluster-security-group, |
- and cluster-snapshot. |
- |
- :type source_ids: list |
- :param source_ids: A list of one or more identifiers of Amazon Redshift |
- source objects. All of the objects must be of the same type as was |
- specified in the source type parameter. The event subscription will |
- return only events generated by the specified objects. If not |
- specified, then events are returned for all objects within the |
- source type specified. |
- Example: my-cluster-1, my-cluster-2 |
- |
- Example: my-snapshot-20131010 |
- |
- :type event_categories: list |
- :param event_categories: Specifies the Amazon Redshift event categories |
- to be published by the event notification subscription. |
- Values: Configuration, Management, Monitoring, Security |
- |
- :type severity: string |
- :param severity: Specifies the Amazon Redshift event severity to be |
- published by the event notification subscription. |
- Values: ERROR, INFO |
- |
- :type enabled: boolean |
- :param enabled: A Boolean value indicating if the subscription is |
- enabled. `True` indicates the subscription is enabled |
- |
- """ |
- params = {'SubscriptionName': subscription_name, } |
- if sns_topic_arn is not None: |
- params['SnsTopicArn'] = sns_topic_arn |
- if source_type is not None: |
- params['SourceType'] = source_type |
- if source_ids is not None: |
- self.build_list_params(params, |
- source_ids, |
- 'SourceIds.member') |
- if event_categories is not None: |
- self.build_list_params(params, |
- event_categories, |
- 'EventCategories.member') |
- if severity is not None: |
- params['Severity'] = severity |
- if enabled is not None: |
- params['Enabled'] = str( |
- enabled).lower() |
- return self._make_request( |
- action='ModifyEventSubscription', |
- verb='POST', |
- path='/', params=params) |
- |
- def modify_snapshot_copy_retention_period(self, cluster_identifier, |
- retention_period): |
- """ |
- Modifies the number of days to retain automated snapshots in |
- the destination region after they are copied from the source |
- region. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of the cluster for |
- which you want to change the retention period for automated |
- snapshots that are copied to a destination region. |
- Constraints: Must be the valid name of an existing cluster that has |
- cross-region snapshot copy enabled. |
- |
- :type retention_period: integer |
- :param retention_period: The number of days to retain automated |
- snapshots in the destination region after they are copied from the |
- source region. |
- If you decrease the retention period for automated snapshots that are |
- copied to a destination region, Amazon Redshift will delete any |
- existing automated snapshots that were copied to the destination |
- region and that fall outside of the new retention period. |
- |
- Constraints: Must be at least 1 and no more than 35. |
- |
- """ |
- params = { |
- 'ClusterIdentifier': cluster_identifier, |
- 'RetentionPeriod': retention_period, |
- } |
- return self._make_request( |
- action='ModifySnapshotCopyRetentionPeriod', |
- verb='POST', |
- path='/', params=params) |
- |
- def purchase_reserved_node_offering(self, reserved_node_offering_id, |
- node_count=None): |
- """ |
- Allows you to purchase reserved nodes. Amazon Redshift offers |
- a predefined set of reserved node offerings. You can purchase |
- one of the offerings. You can call the |
- DescribeReservedNodeOfferings API to obtain the available |
- reserved node offerings. You can call this API by providing a |
- specific reserved node offering and the number of nodes you |
- want to reserve. |
- |
- For more information about managing parameter groups, go to |
- `Purchasing Reserved Nodes`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type reserved_node_offering_id: string |
- :param reserved_node_offering_id: The unique identifier of the reserved |
- node offering you want to purchase. |
- |
- :type node_count: integer |
- :param node_count: The number of reserved nodes you want to purchase. |
- Default: `1` |
- |
- """ |
- params = { |
- 'ReservedNodeOfferingId': reserved_node_offering_id, |
- } |
- if node_count is not None: |
- params['NodeCount'] = node_count |
- return self._make_request( |
- action='PurchaseReservedNodeOffering', |
- verb='POST', |
- path='/', params=params) |
- |
- def reboot_cluster(self, cluster_identifier): |
- """ |
- Reboots a cluster. This action is taken as soon as possible. |
- It results in a momentary outage to the cluster, during which |
- the cluster status is set to `rebooting`. A cluster event is |
- created when the reboot is completed. Any pending cluster |
- modifications (see ModifyCluster) are applied at this reboot. |
- For more information about managing clusters, go to `Amazon |
- Redshift Clusters`_ in the Amazon Redshift Management Guide |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The cluster identifier. |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='RebootCluster', |
- verb='POST', |
- path='/', params=params) |
- |
- def reset_cluster_parameter_group(self, parameter_group_name, |
- reset_all_parameters=None, |
- parameters=None): |
- """ |
- Sets one or more parameters of the specified parameter group |
- to their default values and sets the source values of the |
- parameters to "engine-default". To reset the entire parameter |
- group specify the ResetAllParameters parameter. For parameter |
- changes to take effect you must reboot any associated |
- clusters. |
- |
- :type parameter_group_name: string |
- :param parameter_group_name: The name of the cluster parameter group to |
- be reset. |
- |
- :type reset_all_parameters: boolean |
- :param reset_all_parameters: If `True`, all parameters in the specified |
- parameter group will be reset to their default values. |
- Default: `True` |
- |
- :type parameters: list |
- :param parameters: An array of names of parameters to be reset. If |
- ResetAllParameters option is not used, then at least one parameter |
- name must be supplied. |
- Constraints: A maximum of 20 parameters can be reset in a single |
- request. |
- |
- """ |
- params = {'ParameterGroupName': parameter_group_name, } |
- if reset_all_parameters is not None: |
- params['ResetAllParameters'] = str( |
- reset_all_parameters).lower() |
- if parameters is not None: |
- self.build_complex_list_params( |
- params, parameters, |
- 'Parameters.member', |
- ('ParameterName', 'ParameterValue', 'Description', 'Source', 'DataType', 'AllowedValues', 'IsModifiable', 'MinimumEngineVersion')) |
- return self._make_request( |
- action='ResetClusterParameterGroup', |
- verb='POST', |
- path='/', params=params) |
- |
- def restore_from_cluster_snapshot(self, cluster_identifier, |
- snapshot_identifier, |
- snapshot_cluster_identifier=None, |
- port=None, availability_zone=None, |
- allow_version_upgrade=None, |
- cluster_subnet_group_name=None, |
- publicly_accessible=None, |
- owner_account=None, |
- hsm_client_certificate_identifier=None, |
- hsm_configuration_identifier=None, |
- elastic_ip=None, |
- cluster_parameter_group_name=None, |
- cluster_security_groups=None, |
- vpc_security_group_ids=None, |
- preferred_maintenance_window=None, |
- automated_snapshot_retention_period=None): |
- """ |
- Creates a new cluster from a snapshot. Amazon Redshift creates |
- the resulting cluster with the same configuration as the |
- original cluster from which the snapshot was created, except |
- that the new cluster is created with the default cluster |
- security and parameter group. After Amazon Redshift creates |
- the cluster you can use the ModifyCluster API to associate a |
- different security group and different parameter group with |
- the restored cluster. |
- |
- If you restore a cluster into a VPC, you must provide a |
- cluster subnet group where you want the cluster restored. |
- |
- For more information about working with snapshots, go to |
- `Amazon Redshift Snapshots`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The identifier of the cluster that will be |
- created from restoring the snapshot. |
- |
- Constraints: |
- |
- |
- + Must contain from 1 to 63 alphanumeric characters or hyphens. |
- + Alphabetic characters must be lowercase. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- + Must be unique for all clusters within an AWS account. |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: The name of the snapshot from which to |
- create the new cluster. This parameter isn't case sensitive. |
- Example: `my-snapshot-id` |
- |
- :type snapshot_cluster_identifier: string |
- :param snapshot_cluster_identifier: The name of the cluster the source |
- snapshot was created from. This parameter is required if your IAM |
- user has a policy containing a snapshot resource element that |
- specifies anything other than * for the cluster name. |
- |
- :type port: integer |
- :param port: The port number on which the cluster accepts connections. |
- Default: The same port as the original cluster. |
- |
- Constraints: Must be between `1115` and `65535`. |
- |
- :type availability_zone: string |
- :param availability_zone: The Amazon EC2 Availability Zone in which to |
- restore the cluster. |
- Default: A random, system-chosen Availability Zone. |
- |
- Example: `us-east-1a` |
- |
- :type allow_version_upgrade: boolean |
- :param allow_version_upgrade: If `True`, upgrades can be applied during |
- the maintenance window to the Amazon Redshift engine that is |
- running on the cluster. |
- Default: `True` |
- |
- :type cluster_subnet_group_name: string |
- :param cluster_subnet_group_name: The name of the subnet group where |
- you want to cluster restored. |
- A snapshot of cluster in VPC can be restored only in VPC. Therefore, |
- you must provide subnet group name where you want the cluster |
- restored. |
- |
- :type publicly_accessible: boolean |
- :param publicly_accessible: If `True`, the cluster can be accessed from |
- a public network. |
- |
- :type owner_account: string |
- :param owner_account: The AWS customer account used to create or copy |
- the snapshot. Required if you are restoring a snapshot you do not |
- own, optional if you own the snapshot. |
- |
- :type hsm_client_certificate_identifier: string |
- :param hsm_client_certificate_identifier: Specifies the name of the HSM |
- client certificate the Amazon Redshift cluster uses to retrieve the |
- data encryption keys stored in an HSM. |
- |
- :type hsm_configuration_identifier: string |
- :param hsm_configuration_identifier: Specifies the name of the HSM |
- configuration that contains the information the Amazon Redshift |
- cluster can use to retrieve and store keys in an HSM. |
- |
- :type elastic_ip: string |
- :param elastic_ip: The elastic IP (EIP) address for the cluster. |
- |
- :type cluster_parameter_group_name: string |
- :param cluster_parameter_group_name: |
- The name of the parameter group to be associated with this cluster. |
- |
- Default: The default Amazon Redshift cluster parameter group. For |
- information about the default parameter group, go to `Working with |
- Amazon Redshift Parameter Groups`_. |
- |
- Constraints: |
- |
- |
- + Must be 1 to 255 alphanumeric characters or hyphens. |
- + First character must be a letter. |
- + Cannot end with a hyphen or contain two consecutive hyphens. |
- |
- :type cluster_security_groups: list |
- :param cluster_security_groups: A list of security groups to be |
- associated with this cluster. |
- Default: The default cluster security group for Amazon Redshift. |
- |
- Cluster security groups only apply to clusters outside of VPCs. |
- |
- :type vpc_security_group_ids: list |
- :param vpc_security_group_ids: A list of Virtual Private Cloud (VPC) |
- security groups to be associated with the cluster. |
- Default: The default VPC security group is associated with the cluster. |
- |
- VPC security groups only apply to clusters in VPCs. |
- |
- :type preferred_maintenance_window: string |
- :param preferred_maintenance_window: The weekly time range (in UTC) |
- during which automated cluster maintenance can occur. |
- Format: `ddd:hh24:mi-ddd:hh24:mi` |
- |
- Default: The value selected for the cluster from which the snapshot was |
- taken. The following list shows the time blocks for each region |
- from which the default maintenance windows are assigned. |
- |
- |
- + **US-East (Northern Virginia) Region:** 03:00-11:00 UTC |
- + **US-West (Oregon) Region** 06:00-14:00 UTC |
- + **EU (Ireland) Region** 22:00-06:00 UTC |
- + **Asia Pacific (Singapore) Region** 14:00-22:00 UTC |
- + **Asia Pacific (Sydney) Region** 12:00-20:00 UTC |
- + **Asia Pacific (Tokyo) Region** 17:00-03:00 UTC |
- |
- |
- Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun |
- |
- Constraints: Minimum 30-minute window. |
- |
- :type automated_snapshot_retention_period: integer |
- :param automated_snapshot_retention_period: The number of days that |
- automated snapshots are retained. If the value is 0, automated |
- snapshots are disabled. Even if automated snapshots are disabled, |
- you can still create manual snapshots when you want with |
- CreateClusterSnapshot. |
- Default: The value selected for the cluster from which the snapshot was |
- taken. |
- |
- Constraints: Must be a value from 0 to 35. |
- |
- """ |
- params = { |
- 'ClusterIdentifier': cluster_identifier, |
- 'SnapshotIdentifier': snapshot_identifier, |
- } |
- if snapshot_cluster_identifier is not None: |
- params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier |
- if port is not None: |
- params['Port'] = port |
- if availability_zone is not None: |
- params['AvailabilityZone'] = availability_zone |
- if allow_version_upgrade is not None: |
- params['AllowVersionUpgrade'] = str( |
- allow_version_upgrade).lower() |
- if cluster_subnet_group_name is not None: |
- params['ClusterSubnetGroupName'] = cluster_subnet_group_name |
- if publicly_accessible is not None: |
- params['PubliclyAccessible'] = str( |
- publicly_accessible).lower() |
- if owner_account is not None: |
- params['OwnerAccount'] = owner_account |
- if hsm_client_certificate_identifier is not None: |
- params['HsmClientCertificateIdentifier'] = hsm_client_certificate_identifier |
- if hsm_configuration_identifier is not None: |
- params['HsmConfigurationIdentifier'] = hsm_configuration_identifier |
- if elastic_ip is not None: |
- params['ElasticIp'] = elastic_ip |
- if cluster_parameter_group_name is not None: |
- params['ClusterParameterGroupName'] = cluster_parameter_group_name |
- if cluster_security_groups is not None: |
- self.build_list_params(params, |
- cluster_security_groups, |
- 'ClusterSecurityGroups.member') |
- if vpc_security_group_ids is not None: |
- self.build_list_params(params, |
- vpc_security_group_ids, |
- 'VpcSecurityGroupIds.member') |
- if preferred_maintenance_window is not None: |
- params['PreferredMaintenanceWindow'] = preferred_maintenance_window |
- if automated_snapshot_retention_period is not None: |
- params['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period |
- return self._make_request( |
- action='RestoreFromClusterSnapshot', |
- verb='POST', |
- path='/', params=params) |
- |
- def revoke_cluster_security_group_ingress(self, |
- cluster_security_group_name, |
- cidrip=None, |
- ec2_security_group_name=None, |
- ec2_security_group_owner_id=None): |
- """ |
- Revokes an ingress rule in an Amazon Redshift security group |
- for a previously authorized IP range or Amazon EC2 security |
- group. To add an ingress rule, see |
- AuthorizeClusterSecurityGroupIngress. For information about |
- managing security groups, go to `Amazon Redshift Cluster |
- Security Groups`_ in the Amazon Redshift Management Guide . |
- |
- :type cluster_security_group_name: string |
- :param cluster_security_group_name: The name of the security Group from |
- which to revoke the ingress rule. |
- |
- :type cidrip: string |
- :param cidrip: The IP range for which to revoke access. This range must |
- be a valid Classless Inter-Domain Routing (CIDR) block of IP |
- addresses. If `CIDRIP` is specified, `EC2SecurityGroupName` and |
- `EC2SecurityGroupOwnerId` cannot be provided. |
- |
- :type ec2_security_group_name: string |
- :param ec2_security_group_name: The name of the EC2 Security Group |
- whose access is to be revoked. If `EC2SecurityGroupName` is |
- specified, `EC2SecurityGroupOwnerId` must also be provided and |
- `CIDRIP` cannot be provided. |
- |
- :type ec2_security_group_owner_id: string |
- :param ec2_security_group_owner_id: The AWS account number of the owner |
- of the security group specified in the `EC2SecurityGroupName` |
- parameter. The AWS access key ID is not an acceptable value. If |
- `EC2SecurityGroupOwnerId` is specified, `EC2SecurityGroupName` must |
- also be provided. and `CIDRIP` cannot be provided. |
- Example: `111122223333` |
- |
- """ |
- params = { |
- 'ClusterSecurityGroupName': cluster_security_group_name, |
- } |
- if cidrip is not None: |
- params['CIDRIP'] = cidrip |
- if ec2_security_group_name is not None: |
- params['EC2SecurityGroupName'] = ec2_security_group_name |
- if ec2_security_group_owner_id is not None: |
- params['EC2SecurityGroupOwnerId'] = ec2_security_group_owner_id |
- return self._make_request( |
- action='RevokeClusterSecurityGroupIngress', |
- verb='POST', |
- path='/', params=params) |
- |
- def revoke_snapshot_access(self, snapshot_identifier, |
- account_with_restore_access, |
- snapshot_cluster_identifier=None): |
- """ |
- Removes the ability of the specified AWS customer account to |
- restore the specified snapshot. If the account is currently |
- restoring the snapshot, the restore will run to completion. |
- |
- For more information about working with snapshots, go to |
- `Amazon Redshift Snapshots`_ in the Amazon Redshift Management |
- Guide . |
- |
- :type snapshot_identifier: string |
- :param snapshot_identifier: The identifier of the snapshot that the |
- account can no longer access. |
- |
- :type snapshot_cluster_identifier: string |
- :param snapshot_cluster_identifier: The identifier of the cluster the |
- snapshot was created from. This parameter is required if your IAM |
- user has a policy containing a snapshot resource element that |
- specifies anything other than * for the cluster name. |
- |
- :type account_with_restore_access: string |
- :param account_with_restore_access: The identifier of the AWS customer |
- account that can no longer restore the specified snapshot. |
- |
- """ |
- params = { |
- 'SnapshotIdentifier': snapshot_identifier, |
- 'AccountWithRestoreAccess': account_with_restore_access, |
- } |
- if snapshot_cluster_identifier is not None: |
- params['SnapshotClusterIdentifier'] = snapshot_cluster_identifier |
- return self._make_request( |
- action='RevokeSnapshotAccess', |
- verb='POST', |
- path='/', params=params) |
- |
- def rotate_encryption_key(self, cluster_identifier): |
- """ |
- Rotates the encryption keys for a cluster. |
- |
- :type cluster_identifier: string |
- :param cluster_identifier: The unique identifier of the cluster that |
- you want to rotate the encryption keys for. |
- Constraints: Must be the name of valid cluster that has encryption |
- enabled. |
- |
- """ |
- params = {'ClusterIdentifier': cluster_identifier, } |
- return self._make_request( |
- action='RotateEncryptionKey', |
- verb='POST', |
- path='/', params=params) |
- |
- def _make_request(self, action, verb, path, params): |
- params['ContentType'] = 'JSON' |
- response = self.make_request(action=action, verb='POST', |
- path='/', params=params) |
- body = response.read().decode('utf-8') |
- boto.log.debug(body) |
- if response.status == 200: |
- return json.loads(body) |
- else: |
- json_body = json.loads(body) |
- fault_name = json_body.get('Error', {}).get('Code', None) |
- exception_class = self._faults.get(fault_name, self.ResponseError) |
- raise exception_class(response.status, response.reason, |
- body=json_body) |