packages feed

amazonka-redshift 1.4.5 → 1.5.0

raw patch · 75 files changed

+5918/−5261 lines, 75 filesdep ~amazonka-coredep ~amazonka-redshiftdep ~amazonka-testPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core, amazonka-redshift, amazonka-test

API changes (from Hackage documentation)

+ Network.AWS.Redshift: _DependentServiceUnavailableFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.Redshift: awraAccountAlias :: Lens' AccountWithRestoreAccess (Maybe Text)
+ Network.AWS.Redshift.DescribeEventSubscriptions: dessTagKeys :: Lens' DescribeEventSubscriptions [Text]
+ Network.AWS.Redshift.DescribeEventSubscriptions: dessTagValues :: Lens' DescribeEventSubscriptions [Text]
+ Network.AWS.Redshift.GetClusterCredentials: data GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: data GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: gccAutoCreate :: Lens' GetClusterCredentials (Maybe Bool)
+ Network.AWS.Redshift.GetClusterCredentials: gccClusterIdentifier :: Lens' GetClusterCredentials Text
+ Network.AWS.Redshift.GetClusterCredentials: gccDBGroups :: Lens' GetClusterCredentials [Text]
+ Network.AWS.Redshift.GetClusterCredentials: gccDBName :: Lens' GetClusterCredentials (Maybe Text)
+ Network.AWS.Redshift.GetClusterCredentials: gccDBUser :: Lens' GetClusterCredentials Text
+ Network.AWS.Redshift.GetClusterCredentials: gccDurationSeconds :: Lens' GetClusterCredentials (Maybe Int)
+ Network.AWS.Redshift.GetClusterCredentials: gccrsDBPassword :: Lens' GetClusterCredentialsResponse (Maybe Text)
+ Network.AWS.Redshift.GetClusterCredentials: gccrsDBUser :: Lens' GetClusterCredentialsResponse (Maybe Text)
+ Network.AWS.Redshift.GetClusterCredentials: gccrsExpiration :: Lens' GetClusterCredentialsResponse (Maybe UTCTime)
+ Network.AWS.Redshift.GetClusterCredentials: gccrsResponseStatus :: Lens' GetClusterCredentialsResponse Int
+ Network.AWS.Redshift.GetClusterCredentials: getClusterCredentials :: Text -> Text -> GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: getClusterCredentialsResponse :: Int -> GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance Control.DeepSeq.NFData Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance Control.DeepSeq.NFData Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance Data.Data.Data Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance Data.Data.Data Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance Data.Hashable.Class.Hashable Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Classes.Eq Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Classes.Eq Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Generics.Generic Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Generics.Generic Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Read.Read Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Show.Show Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance GHC.Show.Show Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentialsResponse
+ Network.AWS.Redshift.GetClusterCredentials: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance Network.AWS.Data.Path.ToPath Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance Network.AWS.Data.Query.ToQuery Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.GetClusterCredentials: instance Network.AWS.Types.AWSRequest Network.AWS.Redshift.GetClusterCredentials.GetClusterCredentials
+ Network.AWS.Redshift.Types: _DependentServiceUnavailableFault :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.Redshift.Types: awraAccountAlias :: Lens' AccountWithRestoreAccess (Maybe Text)

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`1.4.5`+`1.5.0`   ## Description
amazonka-redshift.cabal view
@@ -1,13 +1,13 @@ name:                  amazonka-redshift-version:               1.4.5+version:               1.5.0 synopsis:              Amazon Redshift SDK. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues-license:               OtherLicense+license:               MPL-2.0 license-file:          LICENSE author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2016 Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright:             Copyright (c) 2013-2017 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple cabal-version:         >= 1.10@@ -29,14 +29,19 @@     to get started.  source-repository head-    type:     git-    location: git://github.com/brendanhay/amazonka.git+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-redshift  library     default-language:  Haskell2010     hs-source-dirs:    src gen -    ghc-options:       -Wall+    ghc-options:+        -Wall+        -fwarn-incomplete-uni-patterns+        -fwarn-incomplete-record-updates+        -funbox-strict-fields      exposed-modules:           Network.AWS.Redshift@@ -88,6 +93,7 @@         , Network.AWS.Redshift.DisableSnapshotCopy         , Network.AWS.Redshift.EnableLogging         , Network.AWS.Redshift.EnableSnapshotCopy+        , Network.AWS.Redshift.GetClusterCredentials         , Network.AWS.Redshift.ModifyCluster         , Network.AWS.Redshift.ModifyClusterIAMRoles         , Network.AWS.Redshift.ModifyClusterParameterGroup@@ -111,7 +117,7 @@         , Network.AWS.Redshift.Types.Sum      build-depends:-          amazonka-core == 1.4.5.*+          amazonka-core == 1.5.0.*         , base          >= 4.7     && < 5  test-suite amazonka-redshift-test@@ -131,9 +137,9 @@         , Test.AWS.Redshift.Internal      build-depends:-          amazonka-core == 1.4.5.*-        , amazonka-test == 1.4.5.*-        , amazonka-redshift == 1.4.5.*+          amazonka-core == 1.5.0.*+        , amazonka-test == 1.5.0.*+        , amazonka-redshift         , base         , bytestring         , tasty
+ fixture/GetClusterCredentials.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/redshift/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  redshift.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetClusterCredentialsResponse.proto view
gen/Network/AWS/Redshift.hs view
@@ -5,9 +5,9 @@  -- | -- Module      : Network.AWS.Redshift--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -160,6 +160,9 @@     -- ** SNSInvalidTopicFault     , _SNSInvalidTopicFault +    -- ** DependentServiceUnavailableFault+    , _DependentServiceUnavailableFault+     -- ** UnsupportedOptionFault     , _UnsupportedOptionFault @@ -406,6 +409,9 @@     -- ** ModifyClusterParameterGroup     , module Network.AWS.Redshift.ModifyClusterParameterGroup +    -- ** GetClusterCredentials+    , module Network.AWS.Redshift.GetClusterCredentials+     -- ** CreateClusterSecurityGroup     , module Network.AWS.Redshift.CreateClusterSecurityGroup @@ -498,6 +504,7 @@     -- ** AccountWithRestoreAccess     , AccountWithRestoreAccess     , accountWithRestoreAccess+    , awraAccountAlias     , awraAccountId      -- ** AvailabilityZone@@ -892,71 +899,72 @@     , vsgmVPCSecurityGroupId     ) where -import           Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress-import           Network.AWS.Redshift.AuthorizeSnapshotAccess-import           Network.AWS.Redshift.CopyClusterSnapshot-import           Network.AWS.Redshift.CreateCluster-import           Network.AWS.Redshift.CreateClusterParameterGroup-import           Network.AWS.Redshift.CreateClusterSecurityGroup-import           Network.AWS.Redshift.CreateClusterSnapshot-import           Network.AWS.Redshift.CreateClusterSubnetGroup-import           Network.AWS.Redshift.CreateEventSubscription-import           Network.AWS.Redshift.CreateHSMClientCertificate-import           Network.AWS.Redshift.CreateHSMConfiguration-import           Network.AWS.Redshift.CreateSnapshotCopyGrant-import           Network.AWS.Redshift.CreateTags-import           Network.AWS.Redshift.DeleteCluster-import           Network.AWS.Redshift.DeleteClusterParameterGroup-import           Network.AWS.Redshift.DeleteClusterSecurityGroup-import           Network.AWS.Redshift.DeleteClusterSnapshot-import           Network.AWS.Redshift.DeleteClusterSubnetGroup-import           Network.AWS.Redshift.DeleteEventSubscription-import           Network.AWS.Redshift.DeleteHSMClientCertificate-import           Network.AWS.Redshift.DeleteHSMConfiguration-import           Network.AWS.Redshift.DeleteSnapshotCopyGrant-import           Network.AWS.Redshift.DeleteTags-import           Network.AWS.Redshift.DescribeClusterParameterGroups-import           Network.AWS.Redshift.DescribeClusterParameters-import           Network.AWS.Redshift.DescribeClusters-import           Network.AWS.Redshift.DescribeClusterSecurityGroups-import           Network.AWS.Redshift.DescribeClusterSnapshots-import           Network.AWS.Redshift.DescribeClusterSubnetGroups-import           Network.AWS.Redshift.DescribeClusterVersions-import           Network.AWS.Redshift.DescribeDefaultClusterParameters-import           Network.AWS.Redshift.DescribeEventCategories-import           Network.AWS.Redshift.DescribeEvents-import           Network.AWS.Redshift.DescribeEventSubscriptions-import           Network.AWS.Redshift.DescribeHSMClientCertificates-import           Network.AWS.Redshift.DescribeHSMConfigurations-import           Network.AWS.Redshift.DescribeLoggingStatus-import           Network.AWS.Redshift.DescribeOrderableClusterOptions-import           Network.AWS.Redshift.DescribeReservedNodeOfferings-import           Network.AWS.Redshift.DescribeReservedNodes-import           Network.AWS.Redshift.DescribeResize-import           Network.AWS.Redshift.DescribeSnapshotCopyGrants-import           Network.AWS.Redshift.DescribeTableRestoreStatus-import           Network.AWS.Redshift.DescribeTags-import           Network.AWS.Redshift.DisableLogging-import           Network.AWS.Redshift.DisableSnapshotCopy-import           Network.AWS.Redshift.EnableLogging-import           Network.AWS.Redshift.EnableSnapshotCopy-import           Network.AWS.Redshift.Internal-import           Network.AWS.Redshift.ModifyCluster-import           Network.AWS.Redshift.ModifyClusterIAMRoles-import           Network.AWS.Redshift.ModifyClusterParameterGroup-import           Network.AWS.Redshift.ModifyClusterSubnetGroup-import           Network.AWS.Redshift.ModifyEventSubscription-import           Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod-import           Network.AWS.Redshift.PurchaseReservedNodeOffering-import           Network.AWS.Redshift.RebootCluster-import           Network.AWS.Redshift.ResetClusterParameterGroup-import           Network.AWS.Redshift.RestoreFromClusterSnapshot-import           Network.AWS.Redshift.RestoreTableFromClusterSnapshot-import           Network.AWS.Redshift.RevokeClusterSecurityGroupIngress-import           Network.AWS.Redshift.RevokeSnapshotAccess-import           Network.AWS.Redshift.RotateEncryptionKey-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Waiters+import Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+import Network.AWS.Redshift.AuthorizeSnapshotAccess+import Network.AWS.Redshift.CopyClusterSnapshot+import Network.AWS.Redshift.CreateCluster+import Network.AWS.Redshift.CreateClusterParameterGroup+import Network.AWS.Redshift.CreateClusterSecurityGroup+import Network.AWS.Redshift.CreateClusterSnapshot+import Network.AWS.Redshift.CreateClusterSubnetGroup+import Network.AWS.Redshift.CreateEventSubscription+import Network.AWS.Redshift.CreateHSMClientCertificate+import Network.AWS.Redshift.CreateHSMConfiguration+import Network.AWS.Redshift.CreateSnapshotCopyGrant+import Network.AWS.Redshift.CreateTags+import Network.AWS.Redshift.DeleteCluster+import Network.AWS.Redshift.DeleteClusterParameterGroup+import Network.AWS.Redshift.DeleteClusterSecurityGroup+import Network.AWS.Redshift.DeleteClusterSnapshot+import Network.AWS.Redshift.DeleteClusterSubnetGroup+import Network.AWS.Redshift.DeleteEventSubscription+import Network.AWS.Redshift.DeleteHSMClientCertificate+import Network.AWS.Redshift.DeleteHSMConfiguration+import Network.AWS.Redshift.DeleteSnapshotCopyGrant+import Network.AWS.Redshift.DeleteTags+import Network.AWS.Redshift.DescribeClusterParameterGroups+import Network.AWS.Redshift.DescribeClusterParameters+import Network.AWS.Redshift.DescribeClusters+import Network.AWS.Redshift.DescribeClusterSecurityGroups+import Network.AWS.Redshift.DescribeClusterSnapshots+import Network.AWS.Redshift.DescribeClusterSubnetGroups+import Network.AWS.Redshift.DescribeClusterVersions+import Network.AWS.Redshift.DescribeDefaultClusterParameters+import Network.AWS.Redshift.DescribeEventCategories+import Network.AWS.Redshift.DescribeEvents+import Network.AWS.Redshift.DescribeEventSubscriptions+import Network.AWS.Redshift.DescribeHSMClientCertificates+import Network.AWS.Redshift.DescribeHSMConfigurations+import Network.AWS.Redshift.DescribeLoggingStatus+import Network.AWS.Redshift.DescribeOrderableClusterOptions+import Network.AWS.Redshift.DescribeReservedNodeOfferings+import Network.AWS.Redshift.DescribeReservedNodes+import Network.AWS.Redshift.DescribeResize+import Network.AWS.Redshift.DescribeSnapshotCopyGrants+import Network.AWS.Redshift.DescribeTableRestoreStatus+import Network.AWS.Redshift.DescribeTags+import Network.AWS.Redshift.DisableLogging+import Network.AWS.Redshift.DisableSnapshotCopy+import Network.AWS.Redshift.EnableLogging+import Network.AWS.Redshift.EnableSnapshotCopy+import Network.AWS.Redshift.GetClusterCredentials+import Network.AWS.Redshift.Internal+import Network.AWS.Redshift.ModifyCluster+import Network.AWS.Redshift.ModifyClusterIAMRoles+import Network.AWS.Redshift.ModifyClusterParameterGroup+import Network.AWS.Redshift.ModifyClusterSubnetGroup+import Network.AWS.Redshift.ModifyEventSubscription+import Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+import Network.AWS.Redshift.PurchaseReservedNodeOffering+import Network.AWS.Redshift.RebootCluster+import Network.AWS.Redshift.ResetClusterParameterGroup+import Network.AWS.Redshift.RestoreFromClusterSnapshot+import Network.AWS.Redshift.RestoreTableFromClusterSnapshot+import Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+import Network.AWS.Redshift.RevokeSnapshotAccess+import Network.AWS.Redshift.RotateEncryptionKey+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Waiters  {- $errors Error matchers are designed for use with the functions provided by
gen/Network/AWS/Redshift/AuthorizeClusterSecurityGroupIngress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,12 +46,12 @@     , acsgirsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -59,12 +59,13 @@ -- -- /See:/ 'authorizeClusterSecurityGroupIngress' smart constructor. data AuthorizeClusterSecurityGroupIngress = AuthorizeClusterSecurityGroupIngress'-    { _acsgiEC2SecurityGroupOwnerId  :: !(Maybe Text)-    , _acsgiEC2SecurityGroupName     :: !(Maybe Text)-    , _acsgiCIdRIP                   :: !(Maybe Text)-    , _acsgiClusterSecurityGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _acsgiEC2SecurityGroupOwnerId  :: !(Maybe Text)+  , _acsgiEC2SecurityGroupName     :: !(Maybe Text)+  , _acsgiCIdRIP                   :: !(Maybe Text)+  , _acsgiClusterSecurityGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeClusterSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,13 +81,14 @@     :: Text -- ^ 'acsgiClusterSecurityGroupName'     -> AuthorizeClusterSecurityGroupIngress authorizeClusterSecurityGroupIngress pClusterSecurityGroupName_ =-    AuthorizeClusterSecurityGroupIngress'-    { _acsgiEC2SecurityGroupOwnerId = Nothing-    , _acsgiEC2SecurityGroupName = Nothing-    , _acsgiCIdRIP = Nothing-    , _acsgiClusterSecurityGroupName = pClusterSecurityGroupName_-    }+  AuthorizeClusterSecurityGroupIngress'+  { _acsgiEC2SecurityGroupOwnerId = Nothing+  , _acsgiEC2SecurityGroupName = Nothing+  , _acsgiCIdRIP = Nothing+  , _acsgiClusterSecurityGroupName = pClusterSecurityGroupName_+  } + -- | 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@ acsgiEC2SecurityGroupOwnerId :: Lens' AuthorizeClusterSecurityGroupIngress (Maybe Text) acsgiEC2SecurityGroupOwnerId = lens _acsgiEC2SecurityGroupOwnerId (\ s a -> s{_acsgiEC2SecurityGroupOwnerId = a});@@ -104,7 +106,8 @@ acsgiClusterSecurityGroupName = lens _acsgiClusterSecurityGroupName (\ s a -> s{_acsgiClusterSecurityGroupName = a});  instance AWSRequest-         AuthorizeClusterSecurityGroupIngress where+           AuthorizeClusterSecurityGroupIngress+         where         type Rs AuthorizeClusterSecurityGroupIngress =              AuthorizeClusterSecurityGroupIngressResponse         request = postQuery redshift@@ -117,12 +120,15 @@                      (pure (fromEnum s)))  instance Hashable-         AuthorizeClusterSecurityGroupIngress+           AuthorizeClusterSecurityGroupIngress+         where  instance NFData AuthorizeClusterSecurityGroupIngress+         where  instance ToHeaders-         AuthorizeClusterSecurityGroupIngress where+           AuthorizeClusterSecurityGroupIngress+         where         toHeaders = const mempty  instance ToPath AuthorizeClusterSecurityGroupIngress@@ -146,10 +152,11 @@  -- | /See:/ 'authorizeClusterSecurityGroupIngressResponse' smart constructor. data AuthorizeClusterSecurityGroupIngressResponse = AuthorizeClusterSecurityGroupIngressResponse'-    { _acsgirsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)-    , _acsgirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _acsgirsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)+  , _acsgirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeClusterSecurityGroupIngressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -161,11 +168,12 @@     :: Int -- ^ 'acsgirsResponseStatus'     -> AuthorizeClusterSecurityGroupIngressResponse authorizeClusterSecurityGroupIngressResponse pResponseStatus_ =-    AuthorizeClusterSecurityGroupIngressResponse'-    { _acsgirsClusterSecurityGroup = Nothing-    , _acsgirsResponseStatus = pResponseStatus_-    }+  AuthorizeClusterSecurityGroupIngressResponse'+  { _acsgirsClusterSecurityGroup = Nothing+  , _acsgirsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. acsgirsClusterSecurityGroup :: Lens' AuthorizeClusterSecurityGroupIngressResponse (Maybe ClusterSecurityGroup) acsgirsClusterSecurityGroup = lens _acsgirsClusterSecurityGroup (\ s a -> s{_acsgirsClusterSecurityGroup = a});@@ -175,4 +183,5 @@ acsgirsResponseStatus = lens _acsgirsResponseStatus (\ s a -> s{_acsgirsResponseStatus = a});  instance NFData-         AuthorizeClusterSecurityGroupIngressResponse+           AuthorizeClusterSecurityGroupIngressResponse+         where
gen/Network/AWS/Redshift/AuthorizeSnapshotAccess.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.AuthorizeSnapshotAccess--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , asarsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,11 +54,12 @@ -- -- /See:/ 'authorizeSnapshotAccess' smart constructor. data AuthorizeSnapshotAccess = AuthorizeSnapshotAccess'-    { _asaSnapshotClusterIdentifier :: !(Maybe Text)-    , _asaSnapshotIdentifier        :: !Text-    , _asaAccountWithRestoreAccess  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _asaSnapshotClusterIdentifier :: !(Maybe Text)+  , _asaSnapshotIdentifier        :: !Text+  , _asaAccountWithRestoreAccess  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSnapshotAccess' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,18 +68,19 @@ -- -- * 'asaSnapshotIdentifier' - The identifier of the snapshot the account is authorized to restore. ----- * 'asaAccountWithRestoreAccess' - The identifier of the AWS customer account authorized to restore the specified snapshot.+-- * 'asaAccountWithRestoreAccess' - The identifier of the AWS customer account authorized to restore the specified snapshot. To share a snapshot with AWS support, specify amazon-redshift-support. authorizeSnapshotAccess     :: Text -- ^ 'asaSnapshotIdentifier'     -> Text -- ^ 'asaAccountWithRestoreAccess'     -> AuthorizeSnapshotAccess authorizeSnapshotAccess pSnapshotIdentifier_ pAccountWithRestoreAccess_ =-    AuthorizeSnapshotAccess'-    { _asaSnapshotClusterIdentifier = Nothing-    , _asaSnapshotIdentifier = pSnapshotIdentifier_-    , _asaAccountWithRestoreAccess = pAccountWithRestoreAccess_-    }+  AuthorizeSnapshotAccess'+  { _asaSnapshotClusterIdentifier = Nothing+  , _asaSnapshotIdentifier = pSnapshotIdentifier_+  , _asaAccountWithRestoreAccess = pAccountWithRestoreAccess_+  } + -- | 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. asaSnapshotClusterIdentifier :: Lens' AuthorizeSnapshotAccess (Maybe Text) asaSnapshotClusterIdentifier = lens _asaSnapshotClusterIdentifier (\ s a -> s{_asaSnapshotClusterIdentifier = a});@@ -87,7 +89,7 @@ asaSnapshotIdentifier :: Lens' AuthorizeSnapshotAccess Text asaSnapshotIdentifier = lens _asaSnapshotIdentifier (\ s a -> s{_asaSnapshotIdentifier = a}); --- | The identifier of the AWS customer account authorized to restore the specified snapshot.+-- | The identifier of the AWS customer account authorized to restore the specified snapshot. To share a snapshot with AWS support, specify amazon-redshift-support. asaAccountWithRestoreAccess :: Lens' AuthorizeSnapshotAccess Text asaAccountWithRestoreAccess = lens _asaAccountWithRestoreAccess (\ s a -> s{_asaAccountWithRestoreAccess = a}); @@ -101,9 +103,9 @@                  AuthorizeSnapshotAccessResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable AuthorizeSnapshotAccess+instance Hashable AuthorizeSnapshotAccess where -instance NFData AuthorizeSnapshotAccess+instance NFData AuthorizeSnapshotAccess where  instance ToHeaders AuthorizeSnapshotAccess where         toHeaders = const mempty@@ -125,10 +127,11 @@  -- | /See:/ 'authorizeSnapshotAccessResponse' smart constructor. data AuthorizeSnapshotAccessResponse = AuthorizeSnapshotAccessResponse'-    { _asarsSnapshot       :: !(Maybe Snapshot)-    , _asarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _asarsSnapshot       :: !(Maybe Snapshot)+  , _asarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSnapshotAccessResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +143,10 @@     :: Int -- ^ 'asarsResponseStatus'     -> AuthorizeSnapshotAccessResponse authorizeSnapshotAccessResponse pResponseStatus_ =-    AuthorizeSnapshotAccessResponse'-    { _asarsSnapshot = Nothing-    , _asarsResponseStatus = pResponseStatus_-    }+  AuthorizeSnapshotAccessResponse'+  {_asarsSnapshot = Nothing, _asarsResponseStatus = pResponseStatus_} + -- | Undocumented member. asarsSnapshot :: Lens' AuthorizeSnapshotAccessResponse (Maybe Snapshot) asarsSnapshot = lens _asarsSnapshot (\ s a -> s{_asarsSnapshot = a});@@ -153,4 +155,4 @@ asarsResponseStatus :: Lens' AuthorizeSnapshotAccessResponse Int asarsResponseStatus = lens _asarsResponseStatus (\ s a -> s{_asarsResponseStatus = a}); -instance NFData AuthorizeSnapshotAccessResponse+instance NFData AuthorizeSnapshotAccessResponse where
gen/Network/AWS/Redshift/CopyClusterSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CopyClusterSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , ccsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,11 +56,12 @@ -- -- /See:/ 'copyClusterSnapshot' smart constructor. data CopyClusterSnapshot = CopyClusterSnapshot'-    { _ccsSourceSnapshotClusterIdentifier :: !(Maybe Text)-    , _ccsSourceSnapshotIdentifier        :: !Text-    , _ccsTargetSnapshotIdentifier        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsSourceSnapshotClusterIdentifier :: !(Maybe Text)+  , _ccsSourceSnapshotIdentifier        :: !Text+  , _ccsTargetSnapshotIdentifier        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopyClusterSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,13 @@     -> Text -- ^ 'ccsTargetSnapshotIdentifier'     -> CopyClusterSnapshot copyClusterSnapshot pSourceSnapshotIdentifier_ pTargetSnapshotIdentifier_ =-    CopyClusterSnapshot'-    { _ccsSourceSnapshotClusterIdentifier = Nothing-    , _ccsSourceSnapshotIdentifier = pSourceSnapshotIdentifier_-    , _ccsTargetSnapshotIdentifier = pTargetSnapshotIdentifier_-    }+  CopyClusterSnapshot'+  { _ccsSourceSnapshotClusterIdentifier = Nothing+  , _ccsSourceSnapshotIdentifier = pSourceSnapshotIdentifier_+  , _ccsTargetSnapshotIdentifier = pTargetSnapshotIdentifier_+  } + -- | 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. ccsSourceSnapshotClusterIdentifier :: Lens' CopyClusterSnapshot (Maybe Text) ccsSourceSnapshotClusterIdentifier = lens _ccsSourceSnapshotClusterIdentifier (\ s a -> s{_ccsSourceSnapshotClusterIdentifier = a});@@ -103,9 +105,9 @@                  CopyClusterSnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable CopyClusterSnapshot+instance Hashable CopyClusterSnapshot where -instance NFData CopyClusterSnapshot+instance NFData CopyClusterSnapshot where  instance ToHeaders CopyClusterSnapshot where         toHeaders = const mempty@@ -127,10 +129,11 @@  -- | /See:/ 'copyClusterSnapshotResponse' smart constructor. data CopyClusterSnapshotResponse = CopyClusterSnapshotResponse'-    { _ccsrsSnapshot       :: !(Maybe Snapshot)-    , _ccsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsrsSnapshot       :: !(Maybe Snapshot)+  , _ccsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopyClusterSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +145,10 @@     :: Int -- ^ 'ccsrsResponseStatus'     -> CopyClusterSnapshotResponse copyClusterSnapshotResponse pResponseStatus_ =-    CopyClusterSnapshotResponse'-    { _ccsrsSnapshot = Nothing-    , _ccsrsResponseStatus = pResponseStatus_-    }+  CopyClusterSnapshotResponse'+  {_ccsrsSnapshot = Nothing, _ccsrsResponseStatus = pResponseStatus_} + -- | Undocumented member. ccsrsSnapshot :: Lens' CopyClusterSnapshotResponse (Maybe Snapshot) ccsrsSnapshot = lens _ccsrsSnapshot (\ s a -> s{_ccsrsSnapshot = a});@@ -155,4 +157,4 @@ ccsrsResponseStatus :: Lens' CopyClusterSnapshotResponse Int ccsrsResponseStatus = lens _ccsrsResponseStatus (\ s a -> s{_ccsrsResponseStatus = a}); -instance NFData CopyClusterSnapshotResponse+instance NFData CopyClusterSnapshotResponse where
gen/Network/AWS/Redshift/CreateCluster.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -65,12 +65,12 @@     , ccrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -78,35 +78,36 @@ -- -- /See:/ 'createCluster' smart constructor. data CreateCluster = CreateCluster'-    { _ccEnhancedVPCRouting               :: !(Maybe Bool)-    , _ccAdditionalInfo                   :: !(Maybe Text)-    , _ccPubliclyAccessible               :: !(Maybe Bool)-    , _ccHSMConfigurationIdentifier       :: !(Maybe Text)-    , _ccClusterSecurityGroups            :: !(Maybe [Text])-    , _ccAutomatedSnapshotRetentionPeriod :: !(Maybe Int)-    , _ccEncrypted                        :: !(Maybe Bool)-    , _ccClusterSubnetGroupName           :: !(Maybe Text)-    , _ccHSMClientCertificateIdentifier   :: !(Maybe Text)-    , _ccNumberOfNodes                    :: !(Maybe Int)-    , _ccElasticIP                        :: !(Maybe Text)-    , _ccPreferredMaintenanceWindow       :: !(Maybe Text)-    , _ccKMSKeyId                         :: !(Maybe Text)-    , _ccAvailabilityZone                 :: !(Maybe Text)-    , _ccVPCSecurityGroupIds              :: !(Maybe [Text])-    , _ccIAMRoles                         :: !(Maybe [Text])-    , _ccClusterType                      :: !(Maybe Text)-    , _ccClusterVersion                   :: !(Maybe Text)-    , _ccAllowVersionUpgrade              :: !(Maybe Bool)-    , _ccClusterParameterGroupName        :: !(Maybe Text)-    , _ccTags                             :: !(Maybe [Tag])-    , _ccPort                             :: !(Maybe Int)-    , _ccDBName                           :: !(Maybe Text)-    , _ccClusterIdentifier                :: !Text-    , _ccNodeType                         :: !Text-    , _ccMasterUsername                   :: !Text-    , _ccMasterUserPassword               :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccEnhancedVPCRouting               :: !(Maybe Bool)+  , _ccAdditionalInfo                   :: !(Maybe Text)+  , _ccPubliclyAccessible               :: !(Maybe Bool)+  , _ccHSMConfigurationIdentifier       :: !(Maybe Text)+  , _ccClusterSecurityGroups            :: !(Maybe [Text])+  , _ccAutomatedSnapshotRetentionPeriod :: !(Maybe Int)+  , _ccEncrypted                        :: !(Maybe Bool)+  , _ccClusterSubnetGroupName           :: !(Maybe Text)+  , _ccHSMClientCertificateIdentifier   :: !(Maybe Text)+  , _ccNumberOfNodes                    :: !(Maybe Int)+  , _ccElasticIP                        :: !(Maybe Text)+  , _ccPreferredMaintenanceWindow       :: !(Maybe Text)+  , _ccKMSKeyId                         :: !(Maybe Text)+  , _ccAvailabilityZone                 :: !(Maybe Text)+  , _ccVPCSecurityGroupIds              :: !(Maybe [Text])+  , _ccIAMRoles                         :: !(Maybe [Text])+  , _ccClusterType                      :: !(Maybe Text)+  , _ccClusterVersion                   :: !(Maybe Text)+  , _ccAllowVersionUpgrade              :: !(Maybe Bool)+  , _ccClusterParameterGroupName        :: !(Maybe Text)+  , _ccTags                             :: !(Maybe [Tag])+  , _ccPort                             :: !(Maybe Int)+  , _ccDBName                           :: !(Maybe Text)+  , _ccClusterIdentifier                :: !Text+  , _ccNodeType                         :: !Text+  , _ccMasterUsername                   :: !Text+  , _ccMasterUserPassword               :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -171,36 +172,37 @@     -> Text -- ^ 'ccMasterUserPassword'     -> CreateCluster createCluster pClusterIdentifier_ pNodeType_ pMasterUsername_ pMasterUserPassword_ =-    CreateCluster'-    { _ccEnhancedVPCRouting = Nothing-    , _ccAdditionalInfo = Nothing-    , _ccPubliclyAccessible = Nothing-    , _ccHSMConfigurationIdentifier = Nothing-    , _ccClusterSecurityGroups = Nothing-    , _ccAutomatedSnapshotRetentionPeriod = Nothing-    , _ccEncrypted = Nothing-    , _ccClusterSubnetGroupName = Nothing-    , _ccHSMClientCertificateIdentifier = Nothing-    , _ccNumberOfNodes = Nothing-    , _ccElasticIP = Nothing-    , _ccPreferredMaintenanceWindow = Nothing-    , _ccKMSKeyId = Nothing-    , _ccAvailabilityZone = Nothing-    , _ccVPCSecurityGroupIds = Nothing-    , _ccIAMRoles = Nothing-    , _ccClusterType = Nothing-    , _ccClusterVersion = Nothing-    , _ccAllowVersionUpgrade = Nothing-    , _ccClusterParameterGroupName = Nothing-    , _ccTags = Nothing-    , _ccPort = Nothing-    , _ccDBName = Nothing-    , _ccClusterIdentifier = pClusterIdentifier_-    , _ccNodeType = pNodeType_-    , _ccMasterUsername = pMasterUsername_-    , _ccMasterUserPassword = pMasterUserPassword_-    }+  CreateCluster'+  { _ccEnhancedVPCRouting = Nothing+  , _ccAdditionalInfo = Nothing+  , _ccPubliclyAccessible = Nothing+  , _ccHSMConfigurationIdentifier = Nothing+  , _ccClusterSecurityGroups = Nothing+  , _ccAutomatedSnapshotRetentionPeriod = Nothing+  , _ccEncrypted = Nothing+  , _ccClusterSubnetGroupName = Nothing+  , _ccHSMClientCertificateIdentifier = Nothing+  , _ccNumberOfNodes = Nothing+  , _ccElasticIP = Nothing+  , _ccPreferredMaintenanceWindow = Nothing+  , _ccKMSKeyId = Nothing+  , _ccAvailabilityZone = Nothing+  , _ccVPCSecurityGroupIds = Nothing+  , _ccIAMRoles = Nothing+  , _ccClusterType = Nothing+  , _ccClusterVersion = Nothing+  , _ccAllowVersionUpgrade = Nothing+  , _ccClusterParameterGroupName = Nothing+  , _ccTags = Nothing+  , _ccPort = Nothing+  , _ccDBName = Nothing+  , _ccClusterIdentifier = pClusterIdentifier_+  , _ccNodeType = pNodeType_+  , _ccMasterUsername = pMasterUsername_+  , _ccMasterUserPassword = pMasterUserPassword_+  } + -- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false ccEnhancedVPCRouting :: Lens' CreateCluster (Maybe Bool) ccEnhancedVPCRouting = lens _ccEnhancedVPCRouting (\ s a -> s{_ccEnhancedVPCRouting = a});@@ -318,9 +320,9 @@                  CreateClusterResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable CreateCluster+instance Hashable CreateCluster where -instance NFData CreateCluster+instance NFData CreateCluster where  instance ToHeaders CreateCluster where         toHeaders = const mempty@@ -375,10 +377,11 @@  -- | /See:/ 'createClusterResponse' smart constructor. data CreateClusterResponse = CreateClusterResponse'-    { _ccrsCluster        :: !(Maybe Cluster)-    , _ccrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccrsCluster        :: !(Maybe Cluster)+  , _ccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -390,11 +393,10 @@     :: Int -- ^ 'ccrsResponseStatus'     -> CreateClusterResponse createClusterResponse pResponseStatus_ =-    CreateClusterResponse'-    { _ccrsCluster = Nothing-    , _ccrsResponseStatus = pResponseStatus_-    }+  CreateClusterResponse'+  {_ccrsCluster = Nothing, _ccrsResponseStatus = pResponseStatus_} + -- | Undocumented member. ccrsCluster :: Lens' CreateClusterResponse (Maybe Cluster) ccrsCluster = lens _ccrsCluster (\ s a -> s{_ccrsCluster = a});@@ -403,4 +405,4 @@ ccrsResponseStatus :: Lens' CreateClusterResponse Int ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a}); -instance NFData CreateClusterResponse+instance NFData CreateClusterResponse where
gen/Network/AWS/Redshift/CreateClusterParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateClusterParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,12 +44,12 @@     , ccpgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -57,12 +57,13 @@ -- -- /See:/ 'createClusterParameterGroup' smart constructor. data CreateClusterParameterGroup = CreateClusterParameterGroup'-    { _ccpgTags                 :: !(Maybe [Tag])-    , _ccpgParameterGroupName   :: !Text-    , _ccpgParameterGroupFamily :: !Text-    , _ccpgDescription          :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccpgTags                 :: !(Maybe [Tag])+  , _ccpgParameterGroupName   :: !Text+  , _ccpgParameterGroupFamily :: !Text+  , _ccpgDescription          :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,13 +81,14 @@     -> Text -- ^ 'ccpgDescription'     -> CreateClusterParameterGroup createClusterParameterGroup pParameterGroupName_ pParameterGroupFamily_ pDescription_ =-    CreateClusterParameterGroup'-    { _ccpgTags = Nothing-    , _ccpgParameterGroupName = pParameterGroupName_-    , _ccpgParameterGroupFamily = pParameterGroupFamily_-    , _ccpgDescription = pDescription_-    }+  CreateClusterParameterGroup'+  { _ccpgTags = Nothing+  , _ccpgParameterGroupName = pParameterGroupName_+  , _ccpgParameterGroupFamily = pParameterGroupFamily_+  , _ccpgDescription = pDescription_+  } + -- | A list of tag instances. ccpgTags :: Lens' CreateClusterParameterGroup [Tag] ccpgTags = lens _ccpgTags (\ s a -> s{_ccpgTags = a}) . _Default . _Coerce;@@ -115,9 +117,9 @@                    (x .@? "ClusterParameterGroup") <*>                      (pure (fromEnum s))) -instance Hashable CreateClusterParameterGroup+instance Hashable CreateClusterParameterGroup where -instance NFData CreateClusterParameterGroup+instance NFData CreateClusterParameterGroup where  instance ToHeaders CreateClusterParameterGroup where         toHeaders = const mempty@@ -138,10 +140,11 @@  -- | /See:/ 'createClusterParameterGroupResponse' smart constructor. data CreateClusterParameterGroupResponse = CreateClusterParameterGroupResponse'-    { _ccpgrsClusterParameterGroup :: !(Maybe ClusterParameterGroup)-    , _ccpgrsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccpgrsClusterParameterGroup :: !(Maybe ClusterParameterGroup)+  , _ccpgrsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterParameterGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,11 +156,12 @@     :: Int -- ^ 'ccpgrsResponseStatus'     -> CreateClusterParameterGroupResponse createClusterParameterGroupResponse pResponseStatus_ =-    CreateClusterParameterGroupResponse'-    { _ccpgrsClusterParameterGroup = Nothing-    , _ccpgrsResponseStatus = pResponseStatus_-    }+  CreateClusterParameterGroupResponse'+  { _ccpgrsClusterParameterGroup = Nothing+  , _ccpgrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. ccpgrsClusterParameterGroup :: Lens' CreateClusterParameterGroupResponse (Maybe ClusterParameterGroup) ccpgrsClusterParameterGroup = lens _ccpgrsClusterParameterGroup (\ s a -> s{_ccpgrsClusterParameterGroup = a});@@ -167,3 +171,4 @@ ccpgrsResponseStatus = lens _ccpgrsResponseStatus (\ s a -> s{_ccpgrsResponseStatus = a});  instance NFData CreateClusterParameterGroupResponse+         where
gen/Network/AWS/Redshift/CreateClusterSecurityGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateClusterSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , crsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,11 +54,12 @@ -- -- /See:/ 'createClusterSecurityGroup' smart constructor. data CreateClusterSecurityGroup = CreateClusterSecurityGroup'-    { _creTags                     :: !(Maybe [Tag])-    , _creClusterSecurityGroupName :: !Text-    , _creDescription              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _creTags                     :: !(Maybe [Tag])+  , _creClusterSecurityGroupName :: !Text+  , _creDescription              :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     -> Text -- ^ 'creDescription'     -> CreateClusterSecurityGroup createClusterSecurityGroup pClusterSecurityGroupName_ pDescription_ =-    CreateClusterSecurityGroup'-    { _creTags = Nothing-    , _creClusterSecurityGroupName = pClusterSecurityGroupName_-    , _creDescription = pDescription_-    }+  CreateClusterSecurityGroup'+  { _creTags = Nothing+  , _creClusterSecurityGroupName = pClusterSecurityGroupName_+  , _creDescription = pDescription_+  } + -- | A list of tag instances. creTags :: Lens' CreateClusterSecurityGroup [Tag] creTags = lens _creTags (\ s a -> s{_creTags = a}) . _Default . _Coerce;@@ -103,9 +105,9 @@                    (x .@? "ClusterSecurityGroup") <*>                      (pure (fromEnum s))) -instance Hashable CreateClusterSecurityGroup+instance Hashable CreateClusterSecurityGroup where -instance NFData CreateClusterSecurityGroup+instance NFData CreateClusterSecurityGroup where  instance ToHeaders CreateClusterSecurityGroup where         toHeaders = const mempty@@ -126,10 +128,11 @@  -- | /See:/ 'createClusterSecurityGroupResponse' smart constructor. data CreateClusterSecurityGroupResponse = CreateClusterSecurityGroupResponse'-    { _crsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)-    , _crsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)+  , _crsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSecurityGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +144,10 @@     :: Int -- ^ 'crsResponseStatus'     -> CreateClusterSecurityGroupResponse createClusterSecurityGroupResponse pResponseStatus_ =-    CreateClusterSecurityGroupResponse'-    { _crsClusterSecurityGroup = Nothing-    , _crsResponseStatus = pResponseStatus_-    }+  CreateClusterSecurityGroupResponse'+  {_crsClusterSecurityGroup = Nothing, _crsResponseStatus = pResponseStatus_} + -- | Undocumented member. crsClusterSecurityGroup :: Lens' CreateClusterSecurityGroupResponse (Maybe ClusterSecurityGroup) crsClusterSecurityGroup = lens _crsClusterSecurityGroup (\ s a -> s{_crsClusterSecurityGroup = a});@@ -155,3 +157,4 @@ crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});  instance NFData CreateClusterSecurityGroupResponse+         where
gen/Network/AWS/Redshift/CreateClusterSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateClusterSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , crersResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,11 +54,12 @@ -- -- /See:/ 'createClusterSnapshot' smart constructor. data CreateClusterSnapshot = CreateClusterSnapshot'-    { _ccsTags               :: !(Maybe [Tag])-    , _ccsSnapshotIdentifier :: !Text-    , _ccsClusterIdentifier  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsTags               :: !(Maybe [Tag])+  , _ccsSnapshotIdentifier :: !Text+  , _ccsClusterIdentifier  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     -> Text -- ^ 'ccsClusterIdentifier'     -> CreateClusterSnapshot createClusterSnapshot pSnapshotIdentifier_ pClusterIdentifier_ =-    CreateClusterSnapshot'-    { _ccsTags = Nothing-    , _ccsSnapshotIdentifier = pSnapshotIdentifier_-    , _ccsClusterIdentifier = pClusterIdentifier_-    }+  CreateClusterSnapshot'+  { _ccsTags = Nothing+  , _ccsSnapshotIdentifier = pSnapshotIdentifier_+  , _ccsClusterIdentifier = pClusterIdentifier_+  } + -- | A list of tag instances. ccsTags :: Lens' CreateClusterSnapshot [Tag] ccsTags = lens _ccsTags (\ s a -> s{_ccsTags = a}) . _Default . _Coerce;@@ -101,9 +103,9 @@                  CreateClusterSnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable CreateClusterSnapshot+instance Hashable CreateClusterSnapshot where -instance NFData CreateClusterSnapshot+instance NFData CreateClusterSnapshot where  instance ToHeaders CreateClusterSnapshot where         toHeaders = const mempty@@ -122,10 +124,11 @@  -- | /See:/ 'createClusterSnapshotResponse' smart constructor. data CreateClusterSnapshotResponse = CreateClusterSnapshotResponse'-    { _crersSnapshot       :: !(Maybe Snapshot)-    , _crersResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crersSnapshot       :: !(Maybe Snapshot)+  , _crersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -137,11 +140,10 @@     :: Int -- ^ 'crersResponseStatus'     -> CreateClusterSnapshotResponse createClusterSnapshotResponse pResponseStatus_ =-    CreateClusterSnapshotResponse'-    { _crersSnapshot = Nothing-    , _crersResponseStatus = pResponseStatus_-    }+  CreateClusterSnapshotResponse'+  {_crersSnapshot = Nothing, _crersResponseStatus = pResponseStatus_} + -- | Undocumented member. crersSnapshot :: Lens' CreateClusterSnapshotResponse (Maybe Snapshot) crersSnapshot = lens _crersSnapshot (\ s a -> s{_crersSnapshot = a});@@ -150,4 +152,4 @@ crersResponseStatus :: Lens' CreateClusterSnapshotResponse Int crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a}); -instance NFData CreateClusterSnapshotResponse+instance NFData CreateClusterSnapshotResponse where
gen/Network/AWS/Redshift/CreateClusterSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateClusterSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , ccsgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -55,12 +55,13 @@ -- -- /See:/ 'createClusterSubnetGroup' smart constructor. data CreateClusterSubnetGroup = CreateClusterSubnetGroup'-    { _ccsgTags                   :: !(Maybe [Tag])-    , _ccsgClusterSubnetGroupName :: !Text-    , _ccsgDescription            :: !Text-    , _ccsgSubnetIds              :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsgTags                   :: !(Maybe [Tag])+  , _ccsgClusterSubnetGroupName :: !Text+  , _ccsgDescription            :: !Text+  , _ccsgSubnetIds              :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,13 +78,14 @@     -> Text -- ^ 'ccsgDescription'     -> CreateClusterSubnetGroup createClusterSubnetGroup pClusterSubnetGroupName_ pDescription_ =-    CreateClusterSubnetGroup'-    { _ccsgTags = Nothing-    , _ccsgClusterSubnetGroupName = pClusterSubnetGroupName_-    , _ccsgDescription = pDescription_-    , _ccsgSubnetIds = mempty-    }+  CreateClusterSubnetGroup'+  { _ccsgTags = Nothing+  , _ccsgClusterSubnetGroupName = pClusterSubnetGroupName_+  , _ccsgDescription = pDescription_+  , _ccsgSubnetIds = mempty+  } + -- | A list of tag instances. ccsgTags :: Lens' CreateClusterSubnetGroup [Tag] ccsgTags = lens _ccsgTags (\ s a -> s{_ccsgTags = a}) . _Default . _Coerce;@@ -110,9 +112,9 @@                  CreateClusterSubnetGroupResponse' <$>                    (x .@? "ClusterSubnetGroup") <*> (pure (fromEnum s))) -instance Hashable CreateClusterSubnetGroup+instance Hashable CreateClusterSubnetGroup where -instance NFData CreateClusterSubnetGroup+instance NFData CreateClusterSubnetGroup where  instance ToHeaders CreateClusterSubnetGroup where         toHeaders = const mempty@@ -135,10 +137,11 @@  -- | /See:/ 'createClusterSubnetGroupResponse' smart constructor. data CreateClusterSubnetGroupResponse = CreateClusterSubnetGroupResponse'-    { _ccsgrsClusterSubnetGroup :: !(Maybe ClusterSubnetGroup)-    , _ccsgrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccsgrsClusterSubnetGroup :: !(Maybe ClusterSubnetGroup)+  , _ccsgrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterSubnetGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -150,11 +153,12 @@     :: Int -- ^ 'ccsgrsResponseStatus'     -> CreateClusterSubnetGroupResponse createClusterSubnetGroupResponse pResponseStatus_ =-    CreateClusterSubnetGroupResponse'-    { _ccsgrsClusterSubnetGroup = Nothing-    , _ccsgrsResponseStatus = pResponseStatus_-    }+  CreateClusterSubnetGroupResponse'+  { _ccsgrsClusterSubnetGroup = Nothing+  , _ccsgrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. ccsgrsClusterSubnetGroup :: Lens' CreateClusterSubnetGroupResponse (Maybe ClusterSubnetGroup) ccsgrsClusterSubnetGroup = lens _ccsgrsClusterSubnetGroup (\ s a -> s{_ccsgrsClusterSubnetGroup = a});@@ -164,3 +168,4 @@ ccsgrsResponseStatus = lens _ccsgrsResponseStatus (\ s a -> s{_ccsgrsResponseStatus = a});  instance NFData CreateClusterSubnetGroupResponse+         where
gen/Network/AWS/Redshift/CreateEventSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateEventSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,12 +48,12 @@     , cesrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -61,16 +61,17 @@ -- -- /See:/ 'createEventSubscription' smart constructor. data CreateEventSubscription = CreateEventSubscription'-    { _cesEnabled          :: !(Maybe Bool)-    , _cesSourceType       :: !(Maybe Text)-    , _cesSeverity         :: !(Maybe Text)-    , _cesEventCategories  :: !(Maybe [Text])-    , _cesSourceIds        :: !(Maybe [Text])-    , _cesTags             :: !(Maybe [Tag])-    , _cesSubscriptionName :: !Text-    , _cesSNSTopicARN      :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cesEnabled          :: !(Maybe Bool)+  , _cesSourceType       :: !(Maybe Text)+  , _cesSeverity         :: !(Maybe Text)+  , _cesEventCategories  :: !(Maybe [Text])+  , _cesSourceIds        :: !(Maybe [Text])+  , _cesTags             :: !(Maybe [Tag])+  , _cesSubscriptionName :: !Text+  , _cesSNSTopicARN      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateEventSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,17 +96,18 @@     -> Text -- ^ 'cesSNSTopicARN'     -> CreateEventSubscription createEventSubscription pSubscriptionName_ pSNSTopicARN_ =-    CreateEventSubscription'-    { _cesEnabled = Nothing-    , _cesSourceType = Nothing-    , _cesSeverity = Nothing-    , _cesEventCategories = Nothing-    , _cesSourceIds = Nothing-    , _cesTags = Nothing-    , _cesSubscriptionName = pSubscriptionName_-    , _cesSNSTopicARN = pSNSTopicARN_-    }+  CreateEventSubscription'+  { _cesEnabled = Nothing+  , _cesSourceType = Nothing+  , _cesSeverity = Nothing+  , _cesEventCategories = Nothing+  , _cesSourceIds = Nothing+  , _cesTags = Nothing+  , _cesSubscriptionName = pSubscriptionName_+  , _cesSNSTopicARN = pSNSTopicARN_+  } + -- | A Boolean value; set to @true@ to activate the subscription, set to @false@ to create the subscription but not active it. cesEnabled :: Lens' CreateEventSubscription (Maybe Bool) cesEnabled = lens _cesEnabled (\ s a -> s{_cesEnabled = a});@@ -148,9 +150,9 @@                  CreateEventSubscriptionResponse' <$>                    (x .@? "EventSubscription") <*> (pure (fromEnum s))) -instance Hashable CreateEventSubscription+instance Hashable CreateEventSubscription where -instance NFData CreateEventSubscription+instance NFData CreateEventSubscription where  instance ToHeaders CreateEventSubscription where         toHeaders = const mempty@@ -179,10 +181,11 @@  -- | /See:/ 'createEventSubscriptionResponse' smart constructor. data CreateEventSubscriptionResponse = CreateEventSubscriptionResponse'-    { _cesrsEventSubscription :: !(Maybe EventSubscription)-    , _cesrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cesrsEventSubscription :: !(Maybe EventSubscription)+  , _cesrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateEventSubscriptionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -194,11 +197,10 @@     :: Int -- ^ 'cesrsResponseStatus'     -> CreateEventSubscriptionResponse createEventSubscriptionResponse pResponseStatus_ =-    CreateEventSubscriptionResponse'-    { _cesrsEventSubscription = Nothing-    , _cesrsResponseStatus = pResponseStatus_-    }+  CreateEventSubscriptionResponse'+  {_cesrsEventSubscription = Nothing, _cesrsResponseStatus = pResponseStatus_} + -- | Undocumented member. cesrsEventSubscription :: Lens' CreateEventSubscriptionResponse (Maybe EventSubscription) cesrsEventSubscription = lens _cesrsEventSubscription (\ s a -> s{_cesrsEventSubscription = a});@@ -207,4 +209,4 @@ cesrsResponseStatus :: Lens' CreateEventSubscriptionResponse Int cesrsResponseStatus = lens _cesrsResponseStatus (\ s a -> s{_cesrsResponseStatus = a}); -instance NFData CreateEventSubscriptionResponse+instance NFData CreateEventSubscriptionResponse where
gen/Network/AWS/Redshift/CreateHSMClientCertificate.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateHSMClientCertificate--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , chccrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,10 +53,11 @@ -- -- /See:/ 'createHSMClientCertificate' smart constructor. data CreateHSMClientCertificate = CreateHSMClientCertificate'-    { _chccTags                           :: !(Maybe [Tag])-    , _chccHSMClientCertificateIdentifier :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _chccTags                           :: !(Maybe [Tag])+  , _chccHSMClientCertificateIdentifier :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateHSMClientCertificate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,12 @@     :: Text -- ^ 'chccHSMClientCertificateIdentifier'     -> CreateHSMClientCertificate createHSMClientCertificate pHSMClientCertificateIdentifier_ =-    CreateHSMClientCertificate'-    { _chccTags = Nothing-    , _chccHSMClientCertificateIdentifier = pHSMClientCertificateIdentifier_-    }+  CreateHSMClientCertificate'+  { _chccTags = Nothing+  , _chccHSMClientCertificateIdentifier = pHSMClientCertificateIdentifier_+  } + -- | A list of tag instances. chccTags :: Lens' CreateHSMClientCertificate [Tag] chccTags = lens _chccTags (\ s a -> s{_chccTags = a}) . _Default . _Coerce;@@ -93,9 +95,9 @@                    (x .@? "HsmClientCertificate") <*>                      (pure (fromEnum s))) -instance Hashable CreateHSMClientCertificate+instance Hashable CreateHSMClientCertificate where -instance NFData CreateHSMClientCertificate+instance NFData CreateHSMClientCertificate where  instance ToHeaders CreateHSMClientCertificate where         toHeaders = const mempty@@ -115,10 +117,11 @@  -- | /See:/ 'createHSMClientCertificateResponse' smart constructor. data CreateHSMClientCertificateResponse = CreateHSMClientCertificateResponse'-    { _chccrsHSMClientCertificate :: !(Maybe HSMClientCertificate)-    , _chccrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _chccrsHSMClientCertificate :: !(Maybe HSMClientCertificate)+  , _chccrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateHSMClientCertificateResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +133,12 @@     :: Int -- ^ 'chccrsResponseStatus'     -> CreateHSMClientCertificateResponse createHSMClientCertificateResponse pResponseStatus_ =-    CreateHSMClientCertificateResponse'-    { _chccrsHSMClientCertificate = Nothing-    , _chccrsResponseStatus = pResponseStatus_-    }+  CreateHSMClientCertificateResponse'+  { _chccrsHSMClientCertificate = Nothing+  , _chccrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. chccrsHSMClientCertificate :: Lens' CreateHSMClientCertificateResponse (Maybe HSMClientCertificate) chccrsHSMClientCertificate = lens _chccrsHSMClientCertificate (\ s a -> s{_chccrsHSMClientCertificate = a});@@ -144,3 +148,4 @@ chccrsResponseStatus = lens _chccrsResponseStatus (\ s a -> s{_chccrsResponseStatus = a});  instance NFData CreateHSMClientCertificateResponse+         where
gen/Network/AWS/Redshift/CreateHSMConfiguration.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateHSMConfiguration--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,12 +45,12 @@     , chcrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -58,15 +58,16 @@ -- -- /See:/ 'createHSMConfiguration' smart constructor. data CreateHSMConfiguration = CreateHSMConfiguration'-    { _chcTags                       :: !(Maybe [Tag])-    , _chcHSMConfigurationIdentifier :: !Text-    , _chcDescription                :: !Text-    , _chcHSMIPAddress               :: !Text-    , _chcHSMPartitionName           :: !Text-    , _chcHSMPartitionPassword       :: !Text-    , _chcHSMServerPublicCertificate :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _chcTags                       :: !(Maybe [Tag])+  , _chcHSMConfigurationIdentifier :: !Text+  , _chcDescription                :: !Text+  , _chcHSMIPAddress               :: !Text+  , _chcHSMPartitionName           :: !Text+  , _chcHSMPartitionPassword       :: !Text+  , _chcHSMServerPublicCertificate :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateHSMConfiguration' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,16 +94,17 @@     -> Text -- ^ 'chcHSMServerPublicCertificate'     -> CreateHSMConfiguration createHSMConfiguration pHSMConfigurationIdentifier_ pDescription_ pHSMIPAddress_ pHSMPartitionName_ pHSMPartitionPassword_ pHSMServerPublicCertificate_ =-    CreateHSMConfiguration'-    { _chcTags = Nothing-    , _chcHSMConfigurationIdentifier = pHSMConfigurationIdentifier_-    , _chcDescription = pDescription_-    , _chcHSMIPAddress = pHSMIPAddress_-    , _chcHSMPartitionName = pHSMPartitionName_-    , _chcHSMPartitionPassword = pHSMPartitionPassword_-    , _chcHSMServerPublicCertificate = pHSMServerPublicCertificate_-    }+  CreateHSMConfiguration'+  { _chcTags = Nothing+  , _chcHSMConfigurationIdentifier = pHSMConfigurationIdentifier_+  , _chcDescription = pDescription_+  , _chcHSMIPAddress = pHSMIPAddress_+  , _chcHSMPartitionName = pHSMPartitionName_+  , _chcHSMPartitionPassword = pHSMPartitionPassword_+  , _chcHSMServerPublicCertificate = pHSMServerPublicCertificate_+  } + -- | A list of tag instances. chcTags :: Lens' CreateHSMConfiguration [Tag] chcTags = lens _chcTags (\ s a -> s{_chcTags = a}) . _Default . _Coerce;@@ -141,9 +143,9 @@                  CreateHSMConfigurationResponse' <$>                    (x .@? "HsmConfiguration") <*> (pure (fromEnum s))) -instance Hashable CreateHSMConfiguration+instance Hashable CreateHSMConfiguration where -instance NFData CreateHSMConfiguration+instance NFData CreateHSMConfiguration where  instance ToHeaders CreateHSMConfiguration where         toHeaders = const mempty@@ -169,10 +171,11 @@  -- | /See:/ 'createHSMConfigurationResponse' smart constructor. data CreateHSMConfigurationResponse = CreateHSMConfigurationResponse'-    { _chcrsHSMConfiguration :: !(Maybe HSMConfiguration)-    , _chcrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _chcrsHSMConfiguration :: !(Maybe HSMConfiguration)+  , _chcrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateHSMConfigurationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -184,11 +187,10 @@     :: Int -- ^ 'chcrsResponseStatus'     -> CreateHSMConfigurationResponse createHSMConfigurationResponse pResponseStatus_ =-    CreateHSMConfigurationResponse'-    { _chcrsHSMConfiguration = Nothing-    , _chcrsResponseStatus = pResponseStatus_-    }+  CreateHSMConfigurationResponse'+  {_chcrsHSMConfiguration = Nothing, _chcrsResponseStatus = pResponseStatus_} + -- | Undocumented member. chcrsHSMConfiguration :: Lens' CreateHSMConfigurationResponse (Maybe HSMConfiguration) chcrsHSMConfiguration = lens _chcrsHSMConfiguration (\ s a -> s{_chcrsHSMConfiguration = a});@@ -197,4 +199,4 @@ chcrsResponseStatus :: Lens' CreateHSMConfigurationResponse Int chcrsResponseStatus = lens _chcrsResponseStatus (\ s a -> s{_chcrsResponseStatus = a}); -instance NFData CreateHSMConfigurationResponse+instance NFData CreateHSMConfigurationResponse where
gen/Network/AWS/Redshift/CreateSnapshotCopyGrant.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateSnapshotCopyGrant--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , cscgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | The result of the @CreateSnapshotCopyGrant@ action. --@@ -54,11 +54,12 @@ -- -- /See:/ 'createSnapshotCopyGrant' smart constructor. data CreateSnapshotCopyGrant = CreateSnapshotCopyGrant'-    { _cscgKMSKeyId              :: !(Maybe Text)-    , _cscgTags                  :: !(Maybe [Tag])-    , _cscgSnapshotCopyGrantName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cscgKMSKeyId              :: !(Maybe Text)+  , _cscgTags                  :: !(Maybe [Tag])+  , _cscgSnapshotCopyGrantName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSnapshotCopyGrant' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     :: Text -- ^ 'cscgSnapshotCopyGrantName'     -> CreateSnapshotCopyGrant createSnapshotCopyGrant pSnapshotCopyGrantName_ =-    CreateSnapshotCopyGrant'-    { _cscgKMSKeyId = Nothing-    , _cscgTags = Nothing-    , _cscgSnapshotCopyGrantName = pSnapshotCopyGrantName_-    }+  CreateSnapshotCopyGrant'+  { _cscgKMSKeyId = Nothing+  , _cscgTags = Nothing+  , _cscgSnapshotCopyGrantName = pSnapshotCopyGrantName_+  } + -- | The unique identifier of the customer master key (CMK) to which to grant Amazon Redshift permission. If no key is specified, the default key is used. cscgKMSKeyId :: Lens' CreateSnapshotCopyGrant (Maybe Text) cscgKMSKeyId = lens _cscgKMSKeyId (\ s a -> s{_cscgKMSKeyId = a});@@ -100,9 +102,9 @@                  CreateSnapshotCopyGrantResponse' <$>                    (x .@? "SnapshotCopyGrant") <*> (pure (fromEnum s))) -instance Hashable CreateSnapshotCopyGrant+instance Hashable CreateSnapshotCopyGrant where -instance NFData CreateSnapshotCopyGrant+instance NFData CreateSnapshotCopyGrant where  instance ToHeaders CreateSnapshotCopyGrant where         toHeaders = const mempty@@ -123,10 +125,11 @@  -- | /See:/ 'createSnapshotCopyGrantResponse' smart constructor. data CreateSnapshotCopyGrantResponse = CreateSnapshotCopyGrantResponse'-    { _cscgrsSnapshotCopyGrant :: !(Maybe SnapshotCopyGrant)-    , _cscgrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cscgrsSnapshotCopyGrant :: !(Maybe SnapshotCopyGrant)+  , _cscgrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSnapshotCopyGrantResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +141,10 @@     :: Int -- ^ 'cscgrsResponseStatus'     -> CreateSnapshotCopyGrantResponse createSnapshotCopyGrantResponse pResponseStatus_ =-    CreateSnapshotCopyGrantResponse'-    { _cscgrsSnapshotCopyGrant = Nothing-    , _cscgrsResponseStatus = pResponseStatus_-    }+  CreateSnapshotCopyGrantResponse'+  {_cscgrsSnapshotCopyGrant = Nothing, _cscgrsResponseStatus = pResponseStatus_} + -- | Undocumented member. cscgrsSnapshotCopyGrant :: Lens' CreateSnapshotCopyGrantResponse (Maybe SnapshotCopyGrant) cscgrsSnapshotCopyGrant = lens _cscgrsSnapshotCopyGrant (\ s a -> s{_cscgrsSnapshotCopyGrant = a});@@ -151,4 +153,4 @@ cscgrsResponseStatus :: Lens' CreateSnapshotCopyGrantResponse Int cscgrsResponseStatus = lens _cscgrsResponseStatus (\ s a -> s{_cscgrsResponseStatus = a}); -instance NFData CreateSnapshotCopyGrantResponse+instance NFData CreateSnapshotCopyGrantResponse where
gen/Network/AWS/Redshift/CreateTags.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.CreateTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , CreateTagsResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the output from the @CreateTags@ action. --@@ -52,10 +52,11 @@ -- -- /See:/ 'createTags' smart constructor. data CreateTags = CreateTags'-    { _ctResourceName :: !Text-    , _ctTags         :: ![Tag]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ctResourceName :: !Text+  , _ctTags         :: ![Tag]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,9 @@     :: Text -- ^ 'ctResourceName'     -> CreateTags createTags pResourceName_ =-    CreateTags'-    { _ctResourceName = pResourceName_-    , _ctTags = mempty-    }+  CreateTags' {_ctResourceName = pResourceName_, _ctTags = mempty} + -- | The Amazon Resource Name (ARN) to which you want to add the tag or tags. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ . ctResourceName :: Lens' CreateTags Text ctResourceName = lens _ctResourceName (\ s a -> s{_ctResourceName = a});@@ -85,9 +84,9 @@         request = postQuery redshift         response = receiveNull CreateTagsResponse' -instance Hashable CreateTags+instance Hashable CreateTags where -instance NFData CreateTags+instance NFData CreateTags where  instance ToHeaders CreateTags where         toHeaders = const mempty@@ -105,13 +104,15 @@  -- | /See:/ 'createTagsResponse' smart constructor. data CreateTagsResponse =-    CreateTagsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CreateTagsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateTagsResponse' with the minimum fields required to make a request. -- createTagsResponse     :: CreateTagsResponse createTagsResponse = CreateTagsResponse' -instance NFData CreateTagsResponse++instance NFData CreateTagsResponse where
gen/Network/AWS/Redshift/DeleteCluster.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , drsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,11 +56,12 @@ -- -- /See:/ 'deleteCluster' smart constructor. data DeleteCluster = DeleteCluster'-    { _delSkipFinalClusterSnapshot       :: !(Maybe Bool)-    , _delFinalClusterSnapshotIdentifier :: !(Maybe Text)-    , _delClusterIdentifier              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _delSkipFinalClusterSnapshot       :: !(Maybe Bool)+  , _delFinalClusterSnapshotIdentifier :: !(Maybe Text)+  , _delClusterIdentifier              :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,12 +75,13 @@     :: Text -- ^ 'delClusterIdentifier'     -> DeleteCluster deleteCluster pClusterIdentifier_ =-    DeleteCluster'-    { _delSkipFinalClusterSnapshot = Nothing-    , _delFinalClusterSnapshotIdentifier = Nothing-    , _delClusterIdentifier = pClusterIdentifier_-    }+  DeleteCluster'+  { _delSkipFinalClusterSnapshot = Nothing+  , _delFinalClusterSnapshotIdentifier = Nothing+  , _delClusterIdentifier = pClusterIdentifier_+  } + -- | 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@ delSkipFinalClusterSnapshot :: Lens' DeleteCluster (Maybe Bool) delSkipFinalClusterSnapshot = lens _delSkipFinalClusterSnapshot (\ s a -> s{_delSkipFinalClusterSnapshot = a});@@ -101,9 +103,9 @@                  DeleteClusterResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable DeleteCluster+instance Hashable DeleteCluster where -instance NFData DeleteCluster+instance NFData DeleteCluster where  instance ToHeaders DeleteCluster where         toHeaders = const mempty@@ -124,10 +126,11 @@  -- | /See:/ 'deleteClusterResponse' smart constructor. data DeleteClusterResponse = DeleteClusterResponse'-    { _drsCluster        :: !(Maybe Cluster)-    , _drsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drsCluster        :: !(Maybe Cluster)+  , _drsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,11 +142,10 @@     :: Int -- ^ 'drsResponseStatus'     -> DeleteClusterResponse deleteClusterResponse pResponseStatus_ =-    DeleteClusterResponse'-    { _drsCluster = Nothing-    , _drsResponseStatus = pResponseStatus_-    }+  DeleteClusterResponse'+  {_drsCluster = Nothing, _drsResponseStatus = pResponseStatus_} + -- | Undocumented member. drsCluster :: Lens' DeleteClusterResponse (Maybe Cluster) drsCluster = lens _drsCluster (\ s a -> s{_drsCluster = a});@@ -152,4 +154,4 @@ drsResponseStatus :: Lens' DeleteClusterResponse Int drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a}); -instance NFData DeleteClusterResponse+instance NFData DeleteClusterResponse where
gen/Network/AWS/Redshift/DeleteClusterParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteClusterParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteClusterParameterGroupResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteClusterParameterGroup' smart constructor. newtype DeleteClusterParameterGroup = DeleteClusterParameterGroup'-    { _dParameterGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dParameterGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,9 @@     :: Text -- ^ 'dParameterGroupName'     -> DeleteClusterParameterGroup deleteClusterParameterGroup pParameterGroupName_ =-    DeleteClusterParameterGroup'-    { _dParameterGroupName = pParameterGroupName_-    }+  DeleteClusterParameterGroup' {_dParameterGroupName = pParameterGroupName_} + -- | 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. dParameterGroupName :: Lens' DeleteClusterParameterGroup Text dParameterGroupName = lens _dParameterGroupName (\ s a -> s{_dParameterGroupName = a});@@ -74,9 +74,9 @@         response           = receiveNull DeleteClusterParameterGroupResponse' -instance Hashable DeleteClusterParameterGroup+instance Hashable DeleteClusterParameterGroup where -instance NFData DeleteClusterParameterGroup+instance NFData DeleteClusterParameterGroup where  instance ToHeaders DeleteClusterParameterGroup where         toHeaders = const mempty@@ -94,13 +94,16 @@  -- | /See:/ 'deleteClusterParameterGroupResponse' smart constructor. data DeleteClusterParameterGroupResponse =-    DeleteClusterParameterGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteClusterParameterGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterParameterGroupResponse' with the minimum fields required to make a request. -- deleteClusterParameterGroupResponse     :: DeleteClusterParameterGroupResponse deleteClusterParameterGroupResponse = DeleteClusterParameterGroupResponse' + instance NFData DeleteClusterParameterGroupResponse+         where
gen/Network/AWS/Redshift/DeleteClusterSecurityGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteClusterSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , DeleteClusterSecurityGroupResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -49,9 +49,10 @@ -- -- /See:/ 'deleteClusterSecurityGroup' smart constructor. newtype DeleteClusterSecurityGroup = DeleteClusterSecurityGroup'-    { _dClusterSecurityGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dClusterSecurityGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -61,10 +62,10 @@     :: Text -- ^ 'dClusterSecurityGroupName'     -> DeleteClusterSecurityGroup deleteClusterSecurityGroup pClusterSecurityGroupName_ =-    DeleteClusterSecurityGroup'-    { _dClusterSecurityGroupName = pClusterSecurityGroupName_-    }+  DeleteClusterSecurityGroup'+  {_dClusterSecurityGroupName = pClusterSecurityGroupName_} + -- | The name of the cluster security group to be deleted. dClusterSecurityGroupName :: Lens' DeleteClusterSecurityGroup Text dClusterSecurityGroupName = lens _dClusterSecurityGroupName (\ s a -> s{_dClusterSecurityGroupName = a});@@ -76,9 +77,9 @@         response           = receiveNull DeleteClusterSecurityGroupResponse' -instance Hashable DeleteClusterSecurityGroup+instance Hashable DeleteClusterSecurityGroup where -instance NFData DeleteClusterSecurityGroup+instance NFData DeleteClusterSecurityGroup where  instance ToHeaders DeleteClusterSecurityGroup where         toHeaders = const mempty@@ -97,13 +98,16 @@  -- | /See:/ 'deleteClusterSecurityGroupResponse' smart constructor. data DeleteClusterSecurityGroupResponse =-    DeleteClusterSecurityGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteClusterSecurityGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSecurityGroupResponse' with the minimum fields required to make a request. -- deleteClusterSecurityGroupResponse     :: DeleteClusterSecurityGroupResponse deleteClusterSecurityGroupResponse = DeleteClusterSecurityGroupResponse' + instance NFData DeleteClusterSecurityGroupResponse+         where
gen/Network/AWS/Redshift/DeleteClusterSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteClusterSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , dcsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,10 +53,11 @@ -- -- /See:/ 'deleteClusterSnapshot' smart constructor. data DeleteClusterSnapshot = DeleteClusterSnapshot'-    { _dcsSnapshotClusterIdentifier :: !(Maybe Text)-    , _dcsSnapshotIdentifier        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsSnapshotClusterIdentifier :: !(Maybe Text)+  , _dcsSnapshotIdentifier        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,12 @@     :: Text -- ^ 'dcsSnapshotIdentifier'     -> DeleteClusterSnapshot deleteClusterSnapshot pSnapshotIdentifier_ =-    DeleteClusterSnapshot'-    { _dcsSnapshotClusterIdentifier = Nothing-    , _dcsSnapshotIdentifier = pSnapshotIdentifier_-    }+  DeleteClusterSnapshot'+  { _dcsSnapshotClusterIdentifier = Nothing+  , _dcsSnapshotIdentifier = pSnapshotIdentifier_+  } + -- | 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. dcsSnapshotClusterIdentifier :: Lens' DeleteClusterSnapshot (Maybe Text) dcsSnapshotClusterIdentifier = lens _dcsSnapshotClusterIdentifier (\ s a -> s{_dcsSnapshotClusterIdentifier = a});@@ -91,9 +93,9 @@                  DeleteClusterSnapshotResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable DeleteClusterSnapshot+instance Hashable DeleteClusterSnapshot where -instance NFData DeleteClusterSnapshot+instance NFData DeleteClusterSnapshot where  instance ToHeaders DeleteClusterSnapshot where         toHeaders = const mempty@@ -112,10 +114,11 @@  -- | /See:/ 'deleteClusterSnapshotResponse' smart constructor. data DeleteClusterSnapshotResponse = DeleteClusterSnapshotResponse'-    { _dcsrsSnapshot       :: !(Maybe Snapshot)-    , _dcsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsrsSnapshot       :: !(Maybe Snapshot)+  , _dcsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,11 +130,10 @@     :: Int -- ^ 'dcsrsResponseStatus'     -> DeleteClusterSnapshotResponse deleteClusterSnapshotResponse pResponseStatus_ =-    DeleteClusterSnapshotResponse'-    { _dcsrsSnapshot = Nothing-    , _dcsrsResponseStatus = pResponseStatus_-    }+  DeleteClusterSnapshotResponse'+  {_dcsrsSnapshot = Nothing, _dcsrsResponseStatus = pResponseStatus_} + -- | Undocumented member. dcsrsSnapshot :: Lens' DeleteClusterSnapshotResponse (Maybe Snapshot) dcsrsSnapshot = lens _dcsrsSnapshot (\ s a -> s{_dcsrsSnapshot = a});@@ -140,4 +142,4 @@ dcsrsResponseStatus :: Lens' DeleteClusterSnapshotResponse Int dcsrsResponseStatus = lens _dcsrsResponseStatus (\ s a -> s{_dcsrsResponseStatus = a}); -instance NFData DeleteClusterSnapshotResponse+instance NFData DeleteClusterSnapshotResponse where
gen/Network/AWS/Redshift/DeleteClusterSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteClusterSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteClusterSubnetGroupResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteClusterSubnetGroup' smart constructor. newtype DeleteClusterSubnetGroup = DeleteClusterSubnetGroup'-    { _dcsgClusterSubnetGroupName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgClusterSubnetGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dcsgClusterSubnetGroupName'     -> DeleteClusterSubnetGroup deleteClusterSubnetGroup pClusterSubnetGroupName_ =-    DeleteClusterSubnetGroup'-    { _dcsgClusterSubnetGroupName = pClusterSubnetGroupName_-    }+  DeleteClusterSubnetGroup'+  {_dcsgClusterSubnetGroupName = pClusterSubnetGroupName_} + -- | The name of the cluster subnet group name to be deleted. dcsgClusterSubnetGroupName :: Lens' DeleteClusterSubnetGroup Text dcsgClusterSubnetGroupName = lens _dcsgClusterSubnetGroupName (\ s a -> s{_dcsgClusterSubnetGroupName = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteClusterSubnetGroupResponse' -instance Hashable DeleteClusterSubnetGroup+instance Hashable DeleteClusterSubnetGroup where -instance NFData DeleteClusterSubnetGroup+instance NFData DeleteClusterSubnetGroup where  instance ToHeaders DeleteClusterSubnetGroup where         toHeaders = const mempty@@ -95,13 +96,16 @@  -- | /See:/ 'deleteClusterSubnetGroupResponse' smart constructor. data DeleteClusterSubnetGroupResponse =-    DeleteClusterSubnetGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteClusterSubnetGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterSubnetGroupResponse' with the minimum fields required to make a request. -- deleteClusterSubnetGroupResponse     :: DeleteClusterSubnetGroupResponse deleteClusterSubnetGroupResponse = DeleteClusterSubnetGroupResponse' + instance NFData DeleteClusterSubnetGroupResponse+         where
gen/Network/AWS/Redshift/DeleteEventSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteEventSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteEventSubscriptionResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteEventSubscription' smart constructor. newtype DeleteEventSubscription = DeleteEventSubscription'-    { _desSubscriptionName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _desSubscriptionName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteEventSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,9 @@     :: Text -- ^ 'desSubscriptionName'     -> DeleteEventSubscription deleteEventSubscription pSubscriptionName_ =-    DeleteEventSubscription'-    { _desSubscriptionName = pSubscriptionName_-    }+  DeleteEventSubscription' {_desSubscriptionName = pSubscriptionName_} + -- | The name of the Amazon Redshift event notification subscription to be deleted. desSubscriptionName :: Lens' DeleteEventSubscription Text desSubscriptionName = lens _desSubscriptionName (\ s a -> s{_desSubscriptionName = a});@@ -74,9 +74,9 @@         response           = receiveNull DeleteEventSubscriptionResponse' -instance Hashable DeleteEventSubscription+instance Hashable DeleteEventSubscription where -instance NFData DeleteEventSubscription+instance NFData DeleteEventSubscription where  instance ToHeaders DeleteEventSubscription where         toHeaders = const mempty@@ -94,13 +94,15 @@  -- | /See:/ 'deleteEventSubscriptionResponse' smart constructor. data DeleteEventSubscriptionResponse =-    DeleteEventSubscriptionResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteEventSubscriptionResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteEventSubscriptionResponse' with the minimum fields required to make a request. -- deleteEventSubscriptionResponse     :: DeleteEventSubscriptionResponse deleteEventSubscriptionResponse = DeleteEventSubscriptionResponse' -instance NFData DeleteEventSubscriptionResponse++instance NFData DeleteEventSubscriptionResponse where
gen/Network/AWS/Redshift/DeleteHSMClientCertificate.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteHSMClientCertificate--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteHSMClientCertificateResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteHSMClientCertificate' smart constructor. newtype DeleteHSMClientCertificate = DeleteHSMClientCertificate'-    { _dhsmccHSMClientCertificateIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhsmccHSMClientCertificateIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteHSMClientCertificate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dhsmccHSMClientCertificateIdentifier'     -> DeleteHSMClientCertificate deleteHSMClientCertificate pHSMClientCertificateIdentifier_ =-    DeleteHSMClientCertificate'-    { _dhsmccHSMClientCertificateIdentifier = pHSMClientCertificateIdentifier_-    }+  DeleteHSMClientCertificate'+  {_dhsmccHSMClientCertificateIdentifier = pHSMClientCertificateIdentifier_} + -- | The identifier of the HSM client certificate to be deleted. dhsmccHSMClientCertificateIdentifier :: Lens' DeleteHSMClientCertificate Text dhsmccHSMClientCertificateIdentifier = lens _dhsmccHSMClientCertificateIdentifier (\ s a -> s{_dhsmccHSMClientCertificateIdentifier = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteHSMClientCertificateResponse' -instance Hashable DeleteHSMClientCertificate+instance Hashable DeleteHSMClientCertificate where -instance NFData DeleteHSMClientCertificate+instance NFData DeleteHSMClientCertificate where  instance ToHeaders DeleteHSMClientCertificate where         toHeaders = const mempty@@ -95,13 +96,16 @@  -- | /See:/ 'deleteHSMClientCertificateResponse' smart constructor. data DeleteHSMClientCertificateResponse =-    DeleteHSMClientCertificateResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteHSMClientCertificateResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteHSMClientCertificateResponse' with the minimum fields required to make a request. -- deleteHSMClientCertificateResponse     :: DeleteHSMClientCertificateResponse deleteHSMClientCertificateResponse = DeleteHSMClientCertificateResponse' + instance NFData DeleteHSMClientCertificateResponse+         where
gen/Network/AWS/Redshift/DeleteHSMConfiguration.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteHSMConfiguration--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteHSMConfigurationResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteHSMConfiguration' smart constructor. newtype DeleteHSMConfiguration = DeleteHSMConfiguration'-    { _dhcHSMConfigurationIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhcHSMConfigurationIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteHSMConfiguration' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dhcHSMConfigurationIdentifier'     -> DeleteHSMConfiguration deleteHSMConfiguration pHSMConfigurationIdentifier_ =-    DeleteHSMConfiguration'-    { _dhcHSMConfigurationIdentifier = pHSMConfigurationIdentifier_-    }+  DeleteHSMConfiguration'+  {_dhcHSMConfigurationIdentifier = pHSMConfigurationIdentifier_} + -- | The identifier of the Amazon Redshift HSM configuration to be deleted. dhcHSMConfigurationIdentifier :: Lens' DeleteHSMConfiguration Text dhcHSMConfigurationIdentifier = lens _dhcHSMConfigurationIdentifier (\ s a -> s{_dhcHSMConfigurationIdentifier = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteHSMConfigurationResponse' -instance Hashable DeleteHSMConfiguration+instance Hashable DeleteHSMConfiguration where -instance NFData DeleteHSMConfiguration+instance NFData DeleteHSMConfiguration where  instance ToHeaders DeleteHSMConfiguration where         toHeaders = const mempty@@ -95,13 +96,15 @@  -- | /See:/ 'deleteHSMConfigurationResponse' smart constructor. data DeleteHSMConfigurationResponse =-    DeleteHSMConfigurationResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteHSMConfigurationResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteHSMConfigurationResponse' with the minimum fields required to make a request. -- deleteHSMConfigurationResponse     :: DeleteHSMConfigurationResponse deleteHSMConfigurationResponse = DeleteHSMConfigurationResponse' -instance NFData DeleteHSMConfigurationResponse++instance NFData DeleteHSMConfigurationResponse where
gen/Network/AWS/Redshift/DeleteSnapshotCopyGrant.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteSnapshotCopyGrant--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteSnapshotCopyGrantResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | The result of the @DeleteSnapshotCopyGrant@ action. --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteSnapshotCopyGrant' smart constructor. newtype DeleteSnapshotCopyGrant = DeleteSnapshotCopyGrant'-    { _dscgSnapshotCopyGrantName :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscgSnapshotCopyGrantName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshotCopyGrant' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,10 @@     :: Text -- ^ 'dscgSnapshotCopyGrantName'     -> DeleteSnapshotCopyGrant deleteSnapshotCopyGrant pSnapshotCopyGrantName_ =-    DeleteSnapshotCopyGrant'-    { _dscgSnapshotCopyGrantName = pSnapshotCopyGrantName_-    }+  DeleteSnapshotCopyGrant'+  {_dscgSnapshotCopyGrantName = pSnapshotCopyGrantName_} + -- | The name of the snapshot copy grant to delete. dscgSnapshotCopyGrantName :: Lens' DeleteSnapshotCopyGrant Text dscgSnapshotCopyGrantName = lens _dscgSnapshotCopyGrantName (\ s a -> s{_dscgSnapshotCopyGrantName = a});@@ -74,9 +75,9 @@         response           = receiveNull DeleteSnapshotCopyGrantResponse' -instance Hashable DeleteSnapshotCopyGrant+instance Hashable DeleteSnapshotCopyGrant where -instance NFData DeleteSnapshotCopyGrant+instance NFData DeleteSnapshotCopyGrant where  instance ToHeaders DeleteSnapshotCopyGrant where         toHeaders = const mempty@@ -95,13 +96,15 @@  -- | /See:/ 'deleteSnapshotCopyGrantResponse' smart constructor. data DeleteSnapshotCopyGrantResponse =-    DeleteSnapshotCopyGrantResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteSnapshotCopyGrantResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshotCopyGrantResponse' with the minimum fields required to make a request. -- deleteSnapshotCopyGrantResponse     :: DeleteSnapshotCopyGrantResponse deleteSnapshotCopyGrantResponse = DeleteSnapshotCopyGrantResponse' -instance NFData DeleteSnapshotCopyGrantResponse++instance NFData DeleteSnapshotCopyGrantResponse where
gen/Network/AWS/Redshift/DeleteTags.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DeleteTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteTagsResponse     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the output from the @DeleteTags@ action. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteTags' smart constructor. data DeleteTags = DeleteTags'-    { _dtsResourceName :: !Text-    , _dtsTagKeys      :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtsResourceName :: !Text+  , _dtsTagKeys      :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'dtsResourceName'     -> DeleteTags deleteTags pResourceName_ =-    DeleteTags'-    { _dtsResourceName = pResourceName_-    , _dtsTagKeys = mempty-    }+  DeleteTags' {_dtsResourceName = pResourceName_, _dtsTagKeys = mempty} + -- | The Amazon Resource Name (ARN) from which you want to remove the tag or tags. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ . dtsResourceName :: Lens' DeleteTags Text dtsResourceName = lens _dtsResourceName (\ s a -> s{_dtsResourceName = a});@@ -81,9 +80,9 @@         request = postQuery redshift         response = receiveNull DeleteTagsResponse' -instance Hashable DeleteTags+instance Hashable DeleteTags where -instance NFData DeleteTags+instance NFData DeleteTags where  instance ToHeaders DeleteTags where         toHeaders = const mempty@@ -101,13 +100,15 @@  -- | /See:/ 'deleteTagsResponse' smart constructor. data DeleteTagsResponse =-    DeleteTagsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteTagsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteTagsResponse' with the minimum fields required to make a request. -- deleteTagsResponse     :: DeleteTagsResponse deleteTagsResponse = DeleteTagsResponse' -instance NFData DeleteTagsResponse++instance NFData DeleteTagsResponse where
gen/Network/AWS/Redshift/DescribeClusterParameterGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterParameterGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,13 +50,13 @@     , dcpgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -64,13 +64,14 @@ -- -- /See:/ 'describeClusterParameterGroups' smart constructor. data DescribeClusterParameterGroups = DescribeClusterParameterGroups'-    { _dcpgTagValues          :: !(Maybe [Text])-    , _dcpgTagKeys            :: !(Maybe [Text])-    , _dcpgMarker             :: !(Maybe Text)-    , _dcpgMaxRecords         :: !(Maybe Int)-    , _dcpgParameterGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpgTagValues          :: !(Maybe [Text])+  , _dcpgTagKeys            :: !(Maybe [Text])+  , _dcpgMarker             :: !(Maybe Text)+  , _dcpgMaxRecords         :: !(Maybe Int)+  , _dcpgParameterGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterParameterGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,14 +88,15 @@ describeClusterParameterGroups     :: DescribeClusterParameterGroups describeClusterParameterGroups =-    DescribeClusterParameterGroups'-    { _dcpgTagValues = Nothing-    , _dcpgTagKeys = Nothing-    , _dcpgMarker = Nothing-    , _dcpgMaxRecords = Nothing-    , _dcpgParameterGroupName = Nothing-    }+  DescribeClusterParameterGroups'+  { _dcpgTagValues = Nothing+  , _dcpgTagKeys = Nothing+  , _dcpgMarker = Nothing+  , _dcpgMaxRecords = Nothing+  , _dcpgParameterGroupName = Nothing+  } + -- | A tag value or values for which you want to return all matching cluster parameter groups that are associated with the specified tag value or values. For example, suppose that you have parameter groups that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the parameter groups that have either or both of these tag values associated with them. dcpgTagValues :: Lens' DescribeClusterParameterGroups [Text] dcpgTagValues = lens _dcpgTagValues (\ s a -> s{_dcpgTagValues = a}) . _Default . _Coerce;@@ -139,8 +141,9 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeClusterParameterGroups+         where -instance NFData DescribeClusterParameterGroups+instance NFData DescribeClusterParameterGroups where  instance ToHeaders DescribeClusterParameterGroups          where@@ -169,11 +172,12 @@ -- -- /See:/ 'describeClusterParameterGroupsResponse' smart constructor. data DescribeClusterParameterGroupsResponse = DescribeClusterParameterGroupsResponse'-    { _dcpgrsMarker          :: !(Maybe Text)-    , _dcpgrsParameterGroups :: !(Maybe [ClusterParameterGroup])-    , _dcpgrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpgrsMarker          :: !(Maybe Text)+  , _dcpgrsParameterGroups :: !(Maybe [ClusterParameterGroup])+  , _dcpgrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterParameterGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -187,12 +191,13 @@     :: Int -- ^ 'dcpgrsResponseStatus'     -> DescribeClusterParameterGroupsResponse describeClusterParameterGroupsResponse pResponseStatus_ =-    DescribeClusterParameterGroupsResponse'-    { _dcpgrsMarker = Nothing-    , _dcpgrsParameterGroups = Nothing-    , _dcpgrsResponseStatus = pResponseStatus_-    }+  DescribeClusterParameterGroupsResponse'+  { _dcpgrsMarker = Nothing+  , _dcpgrsParameterGroups = Nothing+  , _dcpgrsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dcpgrsMarker :: Lens' DescribeClusterParameterGroupsResponse (Maybe Text) dcpgrsMarker = lens _dcpgrsMarker (\ s a -> s{_dcpgrsMarker = a});@@ -206,4 +211,5 @@ dcpgrsResponseStatus = lens _dcpgrsResponseStatus (\ s a -> s{_dcpgrsResponseStatus = a});  instance NFData-         DescribeClusterParameterGroupsResponse+           DescribeClusterParameterGroupsResponse+         where
gen/Network/AWS/Redshift/DescribeClusterParameters.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterParameters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -47,13 +47,13 @@     , dcprsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -61,12 +61,13 @@ -- -- /See:/ 'describeClusterParameters' smart constructor. data DescribeClusterParameters = DescribeClusterParameters'-    { _dcpsMarker             :: !(Maybe Text)-    , _dcpsMaxRecords         :: !(Maybe Int)-    , _dcpsSource             :: !(Maybe Text)-    , _dcpsParameterGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcpsMarker             :: !(Maybe Text)+  , _dcpsMaxRecords         :: !(Maybe Int)+  , _dcpsSource             :: !(Maybe Text)+  , _dcpsParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterParameters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,13 +83,14 @@     :: Text -- ^ 'dcpsParameterGroupName'     -> DescribeClusterParameters describeClusterParameters pParameterGroupName_ =-    DescribeClusterParameters'-    { _dcpsMarker = Nothing-    , _dcpsMaxRecords = Nothing-    , _dcpsSource = Nothing-    , _dcpsParameterGroupName = pParameterGroupName_-    }+  DescribeClusterParameters'+  { _dcpsMarker = Nothing+  , _dcpsMaxRecords = Nothing+  , _dcpsSource = Nothing+  , _dcpsParameterGroupName = pParameterGroupName_+  } + -- | 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. dcpsMarker :: Lens' DescribeClusterParameters (Maybe Text) dcpsMarker = lens _dcpsMarker (\ s a -> s{_dcpsMarker = a});@@ -125,9 +127,9 @@                         may (parseXMLList "Parameter"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusterParameters+instance Hashable DescribeClusterParameters where -instance NFData DescribeClusterParameters+instance NFData DescribeClusterParameters where  instance ToHeaders DescribeClusterParameters where         toHeaders = const mempty@@ -152,11 +154,12 @@ -- -- /See:/ 'describeClusterParametersResponse' smart constructor. data DescribeClusterParametersResponse = DescribeClusterParametersResponse'-    { _dcprsMarker         :: !(Maybe Text)-    , _dcprsParameters     :: !(Maybe [Parameter])-    , _dcprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcprsMarker         :: !(Maybe Text)+  , _dcprsParameters     :: !(Maybe [Parameter])+  , _dcprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterParametersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -170,12 +173,13 @@     :: Int -- ^ 'dcprsResponseStatus'     -> DescribeClusterParametersResponse describeClusterParametersResponse pResponseStatus_ =-    DescribeClusterParametersResponse'-    { _dcprsMarker = Nothing-    , _dcprsParameters = Nothing-    , _dcprsResponseStatus = pResponseStatus_-    }+  DescribeClusterParametersResponse'+  { _dcprsMarker = Nothing+  , _dcprsParameters = Nothing+  , _dcprsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dcprsMarker :: Lens' DescribeClusterParametersResponse (Maybe Text) dcprsMarker = lens _dcprsMarker (\ s a -> s{_dcprsMarker = a});@@ -189,3 +193,4 @@ dcprsResponseStatus = lens _dcprsResponseStatus (\ s a -> s{_dcprsResponseStatus = a});  instance NFData DescribeClusterParametersResponse+         where
gen/Network/AWS/Redshift/DescribeClusterSecurityGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterSecurityGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,13 +50,13 @@     , dcsgsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -64,13 +64,14 @@ -- -- /See:/ 'describeClusterSecurityGroups' smart constructor. data DescribeClusterSecurityGroups = DescribeClusterSecurityGroups'-    { _dcsgTagValues                :: !(Maybe [Text])-    , _dcsgTagKeys                  :: !(Maybe [Text])-    , _dcsgClusterSecurityGroupName :: !(Maybe Text)-    , _dcsgMarker                   :: !(Maybe Text)-    , _dcsgMaxRecords               :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgTagValues                :: !(Maybe [Text])+  , _dcsgTagKeys                  :: !(Maybe [Text])+  , _dcsgClusterSecurityGroupName :: !(Maybe Text)+  , _dcsgMarker                   :: !(Maybe Text)+  , _dcsgMaxRecords               :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSecurityGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,14 +88,15 @@ describeClusterSecurityGroups     :: DescribeClusterSecurityGroups describeClusterSecurityGroups =-    DescribeClusterSecurityGroups'-    { _dcsgTagValues = Nothing-    , _dcsgTagKeys = Nothing-    , _dcsgClusterSecurityGroupName = Nothing-    , _dcsgMarker = Nothing-    , _dcsgMaxRecords = Nothing-    }+  DescribeClusterSecurityGroups'+  { _dcsgTagValues = Nothing+  , _dcsgTagKeys = Nothing+  , _dcsgClusterSecurityGroupName = Nothing+  , _dcsgMarker = Nothing+  , _dcsgMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching cluster security groups that are associated with the specified tag value or values. For example, suppose that you have security groups that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the security groups that have either or both of these tag values associated with them. dcsgTagValues :: Lens' DescribeClusterSecurityGroups [Text] dcsgTagValues = lens _dcsgTagValues (\ s a -> s{_dcsgTagValues = a}) . _Default . _Coerce;@@ -137,9 +139,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusterSecurityGroups+instance Hashable DescribeClusterSecurityGroups where -instance NFData DescribeClusterSecurityGroups+instance NFData DescribeClusterSecurityGroups where  instance ToHeaders DescribeClusterSecurityGroups          where@@ -169,11 +171,12 @@ -- -- /See:/ 'describeClusterSecurityGroupsResponse' smart constructor. data DescribeClusterSecurityGroupsResponse = DescribeClusterSecurityGroupsResponse'-    { _dcsgsrsClusterSecurityGroups :: !(Maybe [ClusterSecurityGroup])-    , _dcsgsrsMarker                :: !(Maybe Text)-    , _dcsgsrsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgsrsClusterSecurityGroups :: !(Maybe [ClusterSecurityGroup])+  , _dcsgsrsMarker                :: !(Maybe Text)+  , _dcsgsrsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSecurityGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -187,12 +190,13 @@     :: Int -- ^ 'dcsgsrsResponseStatus'     -> DescribeClusterSecurityGroupsResponse describeClusterSecurityGroupsResponse pResponseStatus_ =-    DescribeClusterSecurityGroupsResponse'-    { _dcsgsrsClusterSecurityGroups = Nothing-    , _dcsgsrsMarker = Nothing-    , _dcsgsrsResponseStatus = pResponseStatus_-    }+  DescribeClusterSecurityGroupsResponse'+  { _dcsgsrsClusterSecurityGroups = Nothing+  , _dcsgsrsMarker = Nothing+  , _dcsgsrsResponseStatus = pResponseStatus_+  } + -- | A list of 'ClusterSecurityGroup' instances. dcsgsrsClusterSecurityGroups :: Lens' DescribeClusterSecurityGroupsResponse [ClusterSecurityGroup] dcsgsrsClusterSecurityGroups = lens _dcsgsrsClusterSecurityGroups (\ s a -> s{_dcsgsrsClusterSecurityGroups = a}) . _Default . _Coerce;@@ -206,3 +210,4 @@ dcsgsrsResponseStatus = lens _dcsgsrsResponseStatus (\ s a -> s{_dcsgsrsResponseStatus = a});  instance NFData DescribeClusterSecurityGroupsResponse+         where
gen/Network/AWS/Redshift/DescribeClusterSnapshots.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterSnapshots--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,13 +53,13 @@     , dcssrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -67,18 +67,19 @@ -- -- /See:/ 'describeClusterSnapshots' smart constructor. data DescribeClusterSnapshots = DescribeClusterSnapshots'-    { _dSnapshotIdentifier :: !(Maybe Text)-    , _dTagValues          :: !(Maybe [Text])-    , _dStartTime          :: !(Maybe ISO8601)-    , _dTagKeys            :: !(Maybe [Text])-    , _dClusterIdentifier  :: !(Maybe Text)-    , _dSnapshotType       :: !(Maybe Text)-    , _dMarker             :: !(Maybe Text)-    , _dMaxRecords         :: !(Maybe Int)-    , _dEndTime            :: !(Maybe ISO8601)-    , _dOwnerAccount       :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dSnapshotIdentifier :: !(Maybe Text)+  , _dTagValues          :: !(Maybe [Text])+  , _dStartTime          :: !(Maybe ISO8601)+  , _dTagKeys            :: !(Maybe [Text])+  , _dClusterIdentifier  :: !(Maybe Text)+  , _dSnapshotType       :: !(Maybe Text)+  , _dMarker             :: !(Maybe Text)+  , _dMaxRecords         :: !(Maybe Int)+  , _dEndTime            :: !(Maybe ISO8601)+  , _dOwnerAccount       :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSnapshots' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -105,19 +106,20 @@ describeClusterSnapshots     :: DescribeClusterSnapshots describeClusterSnapshots =-    DescribeClusterSnapshots'-    { _dSnapshotIdentifier = Nothing-    , _dTagValues = Nothing-    , _dStartTime = Nothing-    , _dTagKeys = Nothing-    , _dClusterIdentifier = Nothing-    , _dSnapshotType = Nothing-    , _dMarker = Nothing-    , _dMaxRecords = Nothing-    , _dEndTime = Nothing-    , _dOwnerAccount = Nothing-    }+  DescribeClusterSnapshots'+  { _dSnapshotIdentifier = Nothing+  , _dTagValues = Nothing+  , _dStartTime = Nothing+  , _dTagKeys = Nothing+  , _dClusterIdentifier = Nothing+  , _dSnapshotType = Nothing+  , _dMarker = Nothing+  , _dMaxRecords = Nothing+  , _dEndTime = Nothing+  , _dOwnerAccount = Nothing+  } + -- | The snapshot identifier of the snapshot about which to return information. dSnapshotIdentifier :: Lens' DescribeClusterSnapshots (Maybe Text) dSnapshotIdentifier = lens _dSnapshotIdentifier (\ s a -> s{_dSnapshotIdentifier = a});@@ -178,9 +180,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusterSnapshots+instance Hashable DescribeClusterSnapshots where -instance NFData DescribeClusterSnapshots+instance NFData DescribeClusterSnapshots where  instance ToHeaders DescribeClusterSnapshots where         toHeaders = const mempty@@ -212,11 +214,12 @@ -- -- /See:/ 'describeClusterSnapshotsResponse' smart constructor. data DescribeClusterSnapshotsResponse = DescribeClusterSnapshotsResponse'-    { _dcssrsSnapshots      :: !(Maybe [Snapshot])-    , _dcssrsMarker         :: !(Maybe Text)-    , _dcssrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcssrsSnapshots      :: !(Maybe [Snapshot])+  , _dcssrsMarker         :: !(Maybe Text)+  , _dcssrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSnapshotsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -230,12 +233,13 @@     :: Int -- ^ 'dcssrsResponseStatus'     -> DescribeClusterSnapshotsResponse describeClusterSnapshotsResponse pResponseStatus_ =-    DescribeClusterSnapshotsResponse'-    { _dcssrsSnapshots = Nothing-    , _dcssrsMarker = Nothing-    , _dcssrsResponseStatus = pResponseStatus_-    }+  DescribeClusterSnapshotsResponse'+  { _dcssrsSnapshots = Nothing+  , _dcssrsMarker = Nothing+  , _dcssrsResponseStatus = pResponseStatus_+  } + -- | A list of 'Snapshot' instances. dcssrsSnapshots :: Lens' DescribeClusterSnapshotsResponse [Snapshot] dcssrsSnapshots = lens _dcssrsSnapshots (\ s a -> s{_dcssrsSnapshots = a}) . _Default . _Coerce;@@ -249,3 +253,4 @@ dcssrsResponseStatus = lens _dcssrsResponseStatus (\ s a -> s{_dcssrsResponseStatus = a});  instance NFData DescribeClusterSnapshotsResponse+         where
gen/Network/AWS/Redshift/DescribeClusterSubnetGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterSubnetGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,13 +48,13 @@     , dcsgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -62,13 +62,14 @@ -- -- /See:/ 'describeClusterSubnetGroups' smart constructor. data DescribeClusterSubnetGroups = DescribeClusterSubnetGroups'-    { _dcsgsTagValues              :: !(Maybe [Text])-    , _dcsgsTagKeys                :: !(Maybe [Text])-    , _dcsgsClusterSubnetGroupName :: !(Maybe Text)-    , _dcsgsMarker                 :: !(Maybe Text)-    , _dcsgsMaxRecords             :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgsTagValues              :: !(Maybe [Text])+  , _dcsgsTagKeys                :: !(Maybe [Text])+  , _dcsgsClusterSubnetGroupName :: !(Maybe Text)+  , _dcsgsMarker                 :: !(Maybe Text)+  , _dcsgsMaxRecords             :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSubnetGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,14 +86,15 @@ describeClusterSubnetGroups     :: DescribeClusterSubnetGroups describeClusterSubnetGroups =-    DescribeClusterSubnetGroups'-    { _dcsgsTagValues = Nothing-    , _dcsgsTagKeys = Nothing-    , _dcsgsClusterSubnetGroupName = Nothing-    , _dcsgsMarker = Nothing-    , _dcsgsMaxRecords = Nothing-    }+  DescribeClusterSubnetGroups'+  { _dcsgsTagValues = Nothing+  , _dcsgsTagKeys = Nothing+  , _dcsgsClusterSubnetGroupName = Nothing+  , _dcsgsMarker = Nothing+  , _dcsgsMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching cluster subnet groups that are associated with the specified tag value or values. For example, suppose that you have subnet groups that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag values associated with them. dcsgsTagValues :: Lens' DescribeClusterSubnetGroups [Text] dcsgsTagValues = lens _dcsgsTagValues (\ s a -> s{_dcsgsTagValues = a}) . _Default . _Coerce;@@ -134,9 +136,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusterSubnetGroups+instance Hashable DescribeClusterSubnetGroups where -instance NFData DescribeClusterSubnetGroups+instance NFData DescribeClusterSubnetGroups where  instance ToHeaders DescribeClusterSubnetGroups where         toHeaders = const mempty@@ -165,11 +167,12 @@ -- -- /See:/ 'describeClusterSubnetGroupsResponse' smart constructor. data DescribeClusterSubnetGroupsResponse = DescribeClusterSubnetGroupsResponse'-    { _dcsgrsClusterSubnetGroups :: !(Maybe [ClusterSubnetGroup])-    , _dcsgrsMarker              :: !(Maybe Text)-    , _dcsgrsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcsgrsClusterSubnetGroups :: !(Maybe [ClusterSubnetGroup])+  , _dcsgrsMarker              :: !(Maybe Text)+  , _dcsgrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterSubnetGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -183,12 +186,13 @@     :: Int -- ^ 'dcsgrsResponseStatus'     -> DescribeClusterSubnetGroupsResponse describeClusterSubnetGroupsResponse pResponseStatus_ =-    DescribeClusterSubnetGroupsResponse'-    { _dcsgrsClusterSubnetGroups = Nothing-    , _dcsgrsMarker = Nothing-    , _dcsgrsResponseStatus = pResponseStatus_-    }+  DescribeClusterSubnetGroupsResponse'+  { _dcsgrsClusterSubnetGroups = Nothing+  , _dcsgrsMarker = Nothing+  , _dcsgrsResponseStatus = pResponseStatus_+  } + -- | A list of 'ClusterSubnetGroup' instances. dcsgrsClusterSubnetGroups :: Lens' DescribeClusterSubnetGroupsResponse [ClusterSubnetGroup] dcsgrsClusterSubnetGroups = lens _dcsgrsClusterSubnetGroups (\ s a -> s{_dcsgrsClusterSubnetGroups = a}) . _Default . _Coerce;@@ -202,3 +206,4 @@ dcsgrsResponseStatus = lens _dcsgrsResponseStatus (\ s a -> s{_dcsgrsResponseStatus = a});  instance NFData DescribeClusterSubnetGroupsResponse+         where
gen/Network/AWS/Redshift/DescribeClusterVersions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusterVersions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,13 +43,13 @@     , dcvrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -57,12 +57,13 @@ -- -- /See:/ 'describeClusterVersions' smart constructor. data DescribeClusterVersions = DescribeClusterVersions'-    { _dcvClusterParameterGroupFamily :: !(Maybe Text)-    , _dcvMarker                      :: !(Maybe Text)-    , _dcvMaxRecords                  :: !(Maybe Int)-    , _dcvClusterVersion              :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcvClusterParameterGroupFamily :: !(Maybe Text)+  , _dcvMarker                      :: !(Maybe Text)+  , _dcvMaxRecords                  :: !(Maybe Int)+  , _dcvClusterVersion              :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterVersions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,13 +78,14 @@ describeClusterVersions     :: DescribeClusterVersions describeClusterVersions =-    DescribeClusterVersions'-    { _dcvClusterParameterGroupFamily = Nothing-    , _dcvMarker = Nothing-    , _dcvMaxRecords = Nothing-    , _dcvClusterVersion = Nothing-    }+  DescribeClusterVersions'+  { _dcvClusterParameterGroupFamily = Nothing+  , _dcvMarker = Nothing+  , _dcvMaxRecords = Nothing+  , _dcvClusterVersion = Nothing+  } + -- | 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 dcvClusterParameterGroupFamily :: Lens' DescribeClusterVersions (Maybe Text) dcvClusterParameterGroupFamily = lens _dcvClusterParameterGroupFamily (\ s a -> s{_dcvClusterParameterGroupFamily = a});@@ -120,9 +122,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusterVersions+instance Hashable DescribeClusterVersions where -instance NFData DescribeClusterVersions+instance NFData DescribeClusterVersions where  instance ToHeaders DescribeClusterVersions where         toHeaders = const mempty@@ -148,11 +150,12 @@ -- -- /See:/ 'describeClusterVersionsResponse' smart constructor. data DescribeClusterVersionsResponse = DescribeClusterVersionsResponse'-    { _dcvrsClusterVersions :: !(Maybe [ClusterVersion])-    , _dcvrsMarker          :: !(Maybe Text)-    , _dcvrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcvrsClusterVersions :: !(Maybe [ClusterVersion])+  , _dcvrsMarker          :: !(Maybe Text)+  , _dcvrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusterVersionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +169,13 @@     :: Int -- ^ 'dcvrsResponseStatus'     -> DescribeClusterVersionsResponse describeClusterVersionsResponse pResponseStatus_ =-    DescribeClusterVersionsResponse'-    { _dcvrsClusterVersions = Nothing-    , _dcvrsMarker = Nothing-    , _dcvrsResponseStatus = pResponseStatus_-    }+  DescribeClusterVersionsResponse'+  { _dcvrsClusterVersions = Nothing+  , _dcvrsMarker = Nothing+  , _dcvrsResponseStatus = pResponseStatus_+  } + -- | A list of @Version@ elements. dcvrsClusterVersions :: Lens' DescribeClusterVersionsResponse [ClusterVersion] dcvrsClusterVersions = lens _dcvrsClusterVersions (\ s a -> s{_dcvrsClusterVersions = a}) . _Default . _Coerce;@@ -184,4 +188,4 @@ dcvrsResponseStatus :: Lens' DescribeClusterVersionsResponse Int dcvrsResponseStatus = lens _dcvrsResponseStatus (\ s a -> s{_dcvrsResponseStatus = a}); -instance NFData DescribeClusterVersionsResponse+instance NFData DescribeClusterVersionsResponse where
gen/Network/AWS/Redshift/DescribeClusters.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeClusters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,13 +48,13 @@     , dcrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -62,13 +62,14 @@ -- -- /See:/ 'describeClusters' smart constructor. data DescribeClusters = DescribeClusters'-    { _dcTagValues         :: !(Maybe [Text])-    , _dcTagKeys           :: !(Maybe [Text])-    , _dcClusterIdentifier :: !(Maybe Text)-    , _dcMarker            :: !(Maybe Text)-    , _dcMaxRecords        :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcTagValues         :: !(Maybe [Text])+  , _dcTagKeys           :: !(Maybe [Text])+  , _dcClusterIdentifier :: !(Maybe Text)+  , _dcMarker            :: !(Maybe Text)+  , _dcMaxRecords        :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,14 +86,15 @@ describeClusters     :: DescribeClusters describeClusters =-    DescribeClusters'-    { _dcTagValues = Nothing-    , _dcTagKeys = Nothing-    , _dcClusterIdentifier = Nothing-    , _dcMarker = Nothing-    , _dcMaxRecords = Nothing-    }+  DescribeClusters'+  { _dcTagValues = Nothing+  , _dcTagKeys = Nothing+  , _dcClusterIdentifier = Nothing+  , _dcMarker = Nothing+  , _dcMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching clusters that are associated with the specified tag value or values. For example, suppose that you have clusters that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag values associated with them. dcTagValues :: Lens' DescribeClusters [Text] dcTagValues = lens _dcTagValues (\ s a -> s{_dcTagValues = a}) . _Default . _Coerce;@@ -132,9 +134,9 @@                         may (parseXMLList "Cluster"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeClusters+instance Hashable DescribeClusters where -instance NFData DescribeClusters+instance NFData DescribeClusters where  instance ToHeaders DescribeClusters where         toHeaders = const mempty@@ -160,11 +162,12 @@ -- -- /See:/ 'describeClustersResponse' smart constructor. data DescribeClustersResponse = DescribeClustersResponse'-    { _dcrsMarker         :: !(Maybe Text)-    , _dcrsClusters       :: !(Maybe [Cluster])-    , _dcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcrsMarker         :: !(Maybe Text)+  , _dcrsClusters       :: !(Maybe [Cluster])+  , _dcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClustersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -178,12 +181,13 @@     :: Int -- ^ 'dcrsResponseStatus'     -> DescribeClustersResponse describeClustersResponse pResponseStatus_ =-    DescribeClustersResponse'-    { _dcrsMarker = Nothing-    , _dcrsClusters = Nothing-    , _dcrsResponseStatus = pResponseStatus_-    }+  DescribeClustersResponse'+  { _dcrsMarker = Nothing+  , _dcrsClusters = Nothing+  , _dcrsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dcrsMarker :: Lens' DescribeClustersResponse (Maybe Text) dcrsMarker = lens _dcrsMarker (\ s a -> s{_dcrsMarker = a});@@ -196,4 +200,4 @@ dcrsResponseStatus :: Lens' DescribeClustersResponse Int dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a}); -instance NFData DescribeClustersResponse+instance NFData DescribeClustersResponse where
gen/Network/AWS/Redshift/DescribeDefaultClusterParameters.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeDefaultClusterParameters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,13 +43,13 @@     , ddcprsDefaultClusterParameters     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -57,11 +57,12 @@ -- -- /See:/ 'describeDefaultClusterParameters' smart constructor. data DescribeDefaultClusterParameters = DescribeDefaultClusterParameters'-    { _ddcpMarker               :: !(Maybe Text)-    , _ddcpMaxRecords           :: !(Maybe Int)-    , _ddcpParameterGroupFamily :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddcpMarker               :: !(Maybe Text)+  , _ddcpMaxRecords           :: !(Maybe Int)+  , _ddcpParameterGroupFamily :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeDefaultClusterParameters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,13 @@     :: Text -- ^ 'ddcpParameterGroupFamily'     -> DescribeDefaultClusterParameters describeDefaultClusterParameters pParameterGroupFamily_ =-    DescribeDefaultClusterParameters'-    { _ddcpMarker = Nothing-    , _ddcpMaxRecords = Nothing-    , _ddcpParameterGroupFamily = pParameterGroupFamily_-    }+  DescribeDefaultClusterParameters'+  { _ddcpMarker = Nothing+  , _ddcpMaxRecords = Nothing+  , _ddcpParameterGroupFamily = pParameterGroupFamily_+  } + -- | 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. ddcpMarker :: Lens' DescribeDefaultClusterParameters (Maybe Text) ddcpMarker = lens _ddcpMarker (\ s a -> s{_ddcpMarker = a});@@ -124,8 +126,10 @@                      (x .@ "DefaultClusterParameters"))  instance Hashable DescribeDefaultClusterParameters+         where  instance NFData DescribeDefaultClusterParameters+         where  instance ToHeaders DescribeDefaultClusterParameters          where@@ -148,10 +152,11 @@  -- | /See:/ 'describeDefaultClusterParametersResponse' smart constructor. data DescribeDefaultClusterParametersResponse = DescribeDefaultClusterParametersResponse'-    { _ddcprsResponseStatus           :: !Int-    , _ddcprsDefaultClusterParameters :: !DefaultClusterParameters-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddcprsResponseStatus           :: !Int+  , _ddcprsDefaultClusterParameters :: !DefaultClusterParameters+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeDefaultClusterParametersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,11 +169,12 @@     -> DefaultClusterParameters -- ^ 'ddcprsDefaultClusterParameters'     -> DescribeDefaultClusterParametersResponse describeDefaultClusterParametersResponse pResponseStatus_ pDefaultClusterParameters_ =-    DescribeDefaultClusterParametersResponse'-    { _ddcprsResponseStatus = pResponseStatus_-    , _ddcprsDefaultClusterParameters = pDefaultClusterParameters_-    }+  DescribeDefaultClusterParametersResponse'+  { _ddcprsResponseStatus = pResponseStatus_+  , _ddcprsDefaultClusterParameters = pDefaultClusterParameters_+  } + -- | -- | The response status code. ddcprsResponseStatus :: Lens' DescribeDefaultClusterParametersResponse Int ddcprsResponseStatus = lens _ddcprsResponseStatus (\ s a -> s{_ddcprsResponseStatus = a});@@ -178,4 +184,5 @@ ddcprsDefaultClusterParameters = lens _ddcprsDefaultClusterParameters (\ s a -> s{_ddcprsDefaultClusterParameters = a});  instance NFData-         DescribeDefaultClusterParametersResponse+           DescribeDefaultClusterParametersResponse+         where
gen/Network/AWS/Redshift/DescribeEventCategories.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeEventCategories--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , decrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -50,9 +50,10 @@ -- -- /See:/ 'describeEventCategories' smart constructor. newtype DescribeEventCategories = DescribeEventCategories'-    { _decSourceType :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _decSourceType :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventCategories' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -60,11 +61,9 @@ -- * 'decSourceType' - The source type, such as cluster or parameter group, to which the described event categories apply. Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group. describeEventCategories     :: DescribeEventCategories-describeEventCategories =-    DescribeEventCategories'-    { _decSourceType = Nothing-    }+describeEventCategories = DescribeEventCategories' {_decSourceType = Nothing} + -- | The source type, such as cluster or parameter group, to which the described event categories apply. Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group. decSourceType :: Lens' DescribeEventCategories (Maybe Text) decSourceType = lens _decSourceType (\ s a -> s{_decSourceType = a});@@ -81,9 +80,9 @@                       may (parseXMLList "EventCategoriesMap"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeEventCategories+instance Hashable DescribeEventCategories where -instance NFData DescribeEventCategories+instance NFData DescribeEventCategories where  instance ToHeaders DescribeEventCategories where         toHeaders = const mempty@@ -105,10 +104,11 @@ -- -- /See:/ 'describeEventCategoriesResponse' smart constructor. data DescribeEventCategoriesResponse = DescribeEventCategoriesResponse'-    { _decrsEventCategoriesMapList :: !(Maybe [EventCategoriesMap])-    , _decrsResponseStatus         :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _decrsEventCategoriesMapList :: !(Maybe [EventCategoriesMap])+  , _decrsResponseStatus         :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventCategoriesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -120,11 +120,12 @@     :: Int -- ^ 'decrsResponseStatus'     -> DescribeEventCategoriesResponse describeEventCategoriesResponse pResponseStatus_ =-    DescribeEventCategoriesResponse'-    { _decrsEventCategoriesMapList = Nothing-    , _decrsResponseStatus = pResponseStatus_-    }+  DescribeEventCategoriesResponse'+  { _decrsEventCategoriesMapList = Nothing+  , _decrsResponseStatus = pResponseStatus_+  } + -- | A list of event categories descriptions. decrsEventCategoriesMapList :: Lens' DescribeEventCategoriesResponse [EventCategoriesMap] decrsEventCategoriesMapList = lens _decrsEventCategoriesMapList (\ s a -> s{_decrsEventCategoriesMapList = a}) . _Default . _Coerce;@@ -133,4 +134,4 @@ decrsResponseStatus :: Lens' DescribeEventCategoriesResponse Int decrsResponseStatus = lens _decrsResponseStatus (\ s a -> s{_decrsResponseStatus = a}); -instance NFData DescribeEventCategoriesResponse+instance NFData DescribeEventCategoriesResponse where
gen/Network/AWS/Redshift/DescribeEventSubscriptions.hs view
@@ -12,16 +12,20 @@  -- | -- Module      : Network.AWS.Redshift.DescribeEventSubscriptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- 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.+-- Lists descriptions of all the Amazon Redshift event notification subscriptions for a customer account. If you specify a subscription name, lists the description for that subscription. -- --+-- If you specify both tag keys and tag values in the same request, Amazon Redshift returns all event notification subscriptions that match any combination of the specified keys and values. For example, if you have @owner@ and @environment@ for tag keys, and @admin@ and @test@ for tag values, all subscriptions that have any combination of those values are returned. --+-- If both tag keys and values are omitted from the request, subscriptions are returned regardless of whether they have tag keys or values associated with them.+--+-- -- This operation returns paginated results. module Network.AWS.Redshift.DescribeEventSubscriptions     (@@ -30,6 +34,8 @@     , DescribeEventSubscriptions     -- * Request Lenses     , dessSubscriptionName+    , dessTagValues+    , dessTagKeys     , dessMarker     , dessMaxRecords @@ -42,13 +48,13 @@     , desrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,34 +62,52 @@ -- -- /See:/ 'describeEventSubscriptions' smart constructor. data DescribeEventSubscriptions = DescribeEventSubscriptions'-    { _dessSubscriptionName :: !(Maybe Text)-    , _dessMarker           :: !(Maybe Text)-    , _dessMaxRecords       :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dessSubscriptionName :: !(Maybe Text)+  , _dessTagValues        :: !(Maybe [Text])+  , _dessTagKeys          :: !(Maybe [Text])+  , _dessMarker           :: !(Maybe Text)+  , _dessMaxRecords       :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventSubscriptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dessSubscriptionName' - The name of the Amazon Redshift event notification subscription to be described. ----- * 'dessMarker' - 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.+-- * 'dessTagValues' - A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them. --+-- * 'dessTagKeys' - A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called @owner@ and @environment@ . If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them.+--+-- * 'dessMarker' - 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.+-- -- * 'dessMaxRecords' - 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. describeEventSubscriptions     :: DescribeEventSubscriptions describeEventSubscriptions =-    DescribeEventSubscriptions'-    { _dessSubscriptionName = Nothing-    , _dessMarker = Nothing-    , _dessMaxRecords = Nothing-    }+  DescribeEventSubscriptions'+  { _dessSubscriptionName = Nothing+  , _dessTagValues = Nothing+  , _dessTagKeys = Nothing+  , _dessMarker = Nothing+  , _dessMaxRecords = Nothing+  } + -- | The name of the Amazon Redshift event notification subscription to be described. dessSubscriptionName :: Lens' DescribeEventSubscriptions (Maybe Text) dessSubscriptionName = lens _dessSubscriptionName (\ s a -> s{_dessSubscriptionName = a}); --- | 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.+-- | A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them.+dessTagValues :: Lens' DescribeEventSubscriptions [Text]+dessTagValues = lens _dessTagValues (\ s a -> s{_dessTagValues = a}) . _Default . _Coerce;++-- | A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called @owner@ and @environment@ . If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them.+dessTagKeys :: Lens' DescribeEventSubscriptions [Text]+dessTagKeys = lens _dessTagKeys (\ s a -> s{_dessTagKeys = a}) . _Default . _Coerce;++-- | 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. dessMarker :: Lens' DescribeEventSubscriptions (Maybe Text) dessMarker = lens _dessMarker (\ s a -> s{_dessMarker = a}); @@ -112,9 +136,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeEventSubscriptions+instance Hashable DescribeEventSubscriptions where -instance NFData DescribeEventSubscriptions+instance NFData DescribeEventSubscriptions where  instance ToHeaders DescribeEventSubscriptions where         toHeaders = const mempty@@ -129,6 +153,10 @@                  ("DescribeEventSubscriptions" :: ByteString),                "Version" =: ("2012-12-01" :: ByteString),                "SubscriptionName" =: _dessSubscriptionName,+               "TagValues" =:+                 toQuery (toQueryList "TagValue" <$> _dessTagValues),+               "TagKeys" =:+                 toQuery (toQueryList "TagKey" <$> _dessTagKeys),                "Marker" =: _dessMarker,                "MaxRecords" =: _dessMaxRecords] @@ -138,11 +166,12 @@ -- -- /See:/ 'describeEventSubscriptionsResponse' smart constructor. data DescribeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse'-    { _desrsEventSubscriptionsList :: !(Maybe [EventSubscription])-    , _desrsMarker                 :: !(Maybe Text)-    , _desrsResponseStatus         :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _desrsEventSubscriptionsList :: !(Maybe [EventSubscription])+  , _desrsMarker                 :: !(Maybe Text)+  , _desrsResponseStatus         :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventSubscriptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -156,12 +185,13 @@     :: Int -- ^ 'desrsResponseStatus'     -> DescribeEventSubscriptionsResponse describeEventSubscriptionsResponse pResponseStatus_ =-    DescribeEventSubscriptionsResponse'-    { _desrsEventSubscriptionsList = Nothing-    , _desrsMarker = Nothing-    , _desrsResponseStatus = pResponseStatus_-    }+  DescribeEventSubscriptionsResponse'+  { _desrsEventSubscriptionsList = Nothing+  , _desrsMarker = Nothing+  , _desrsResponseStatus = pResponseStatus_+  } + -- | A list of event subscriptions. desrsEventSubscriptionsList :: Lens' DescribeEventSubscriptionsResponse [EventSubscription] desrsEventSubscriptionsList = lens _desrsEventSubscriptionsList (\ s a -> s{_desrsEventSubscriptionsList = a}) . _Default . _Coerce;@@ -175,3 +205,4 @@ desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a});  instance NFData DescribeEventSubscriptionsResponse+         where
gen/Network/AWS/Redshift/DescribeEvents.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeEvents--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,13 +46,13 @@     , dersResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -60,15 +60,16 @@ -- -- /See:/ 'describeEvents' smart constructor. data DescribeEvents = DescribeEvents'-    { _deStartTime        :: !(Maybe ISO8601)-    , _deSourceType       :: !(Maybe SourceType)-    , _deSourceIdentifier :: !(Maybe Text)-    , _deMarker           :: !(Maybe Text)-    , _deMaxRecords       :: !(Maybe Int)-    , _deEndTime          :: !(Maybe ISO8601)-    , _deDuration         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deStartTime        :: !(Maybe ISO8601)+  , _deSourceType       :: !(Maybe SourceType)+  , _deSourceIdentifier :: !(Maybe Text)+  , _deMarker           :: !(Maybe Text)+  , _deMaxRecords       :: !(Maybe Int)+  , _deEndTime          :: !(Maybe ISO8601)+  , _deDuration         :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEvents' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,16 +90,17 @@ describeEvents     :: DescribeEvents describeEvents =-    DescribeEvents'-    { _deStartTime = Nothing-    , _deSourceType = Nothing-    , _deSourceIdentifier = Nothing-    , _deMarker = Nothing-    , _deMaxRecords = Nothing-    , _deEndTime = Nothing-    , _deDuration = Nothing-    }+  DescribeEvents'+  { _deStartTime = Nothing+  , _deSourceType = Nothing+  , _deSourceIdentifier = Nothing+  , _deMarker = Nothing+  , _deMaxRecords = Nothing+  , _deEndTime = Nothing+  , _deDuration = Nothing+  } + -- | The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>  Example: @2009-07-08T18:00Z@ deStartTime :: Lens' DescribeEvents (Maybe UTCTime) deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time;@@ -146,9 +148,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeEvents+instance Hashable DescribeEvents where -instance NFData DescribeEvents+instance NFData DescribeEvents where  instance ToHeaders DescribeEvents where         toHeaders = const mempty@@ -173,11 +175,12 @@ -- -- /See:/ 'describeEventsResponse' smart constructor. data DescribeEventsResponse = DescribeEventsResponse'-    { _dersEvents         :: !(Maybe [Event])-    , _dersMarker         :: !(Maybe Text)-    , _dersResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dersEvents         :: !(Maybe [Event])+  , _dersMarker         :: !(Maybe Text)+  , _dersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEventsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -191,12 +194,13 @@     :: Int -- ^ 'dersResponseStatus'     -> DescribeEventsResponse describeEventsResponse pResponseStatus_ =-    DescribeEventsResponse'-    { _dersEvents = Nothing-    , _dersMarker = Nothing-    , _dersResponseStatus = pResponseStatus_-    }+  DescribeEventsResponse'+  { _dersEvents = Nothing+  , _dersMarker = Nothing+  , _dersResponseStatus = pResponseStatus_+  } + -- | A list of @Event@ instances. dersEvents :: Lens' DescribeEventsResponse [Event] dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;@@ -209,4 +213,4 @@ dersResponseStatus :: Lens' DescribeEventsResponse Int dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a}); -instance NFData DescribeEventsResponse+instance NFData DescribeEventsResponse where
gen/Network/AWS/Redshift/DescribeHSMClientCertificates.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeHSMClientCertificates--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,13 +48,13 @@     , dhccrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -62,13 +62,14 @@ -- -- /See:/ 'describeHSMClientCertificates' smart constructor. data DescribeHSMClientCertificates = DescribeHSMClientCertificates'-    { _dhccTagValues                      :: !(Maybe [Text])-    , _dhccTagKeys                        :: !(Maybe [Text])-    , _dhccHSMClientCertificateIdentifier :: !(Maybe Text)-    , _dhccMarker                         :: !(Maybe Text)-    , _dhccMaxRecords                     :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhccTagValues                      :: !(Maybe [Text])+  , _dhccTagKeys                        :: !(Maybe [Text])+  , _dhccHSMClientCertificateIdentifier :: !(Maybe Text)+  , _dhccMarker                         :: !(Maybe Text)+  , _dhccMaxRecords                     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHSMClientCertificates' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,14 +86,15 @@ describeHSMClientCertificates     :: DescribeHSMClientCertificates describeHSMClientCertificates =-    DescribeHSMClientCertificates'-    { _dhccTagValues = Nothing-    , _dhccTagKeys = Nothing-    , _dhccHSMClientCertificateIdentifier = Nothing-    , _dhccMarker = Nothing-    , _dhccMaxRecords = Nothing-    }+  DescribeHSMClientCertificates'+  { _dhccTagValues = Nothing+  , _dhccTagKeys = Nothing+  , _dhccHSMClientCertificateIdentifier = Nothing+  , _dhccMarker = Nothing+  , _dhccMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching HSM client certificates that are associated with the specified tag value or values. For example, suppose that you have HSM client certificates that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag values associated with them. dhccTagValues :: Lens' DescribeHSMClientCertificates [Text] dhccTagValues = lens _dhccTagValues (\ s a -> s{_dhccTagValues = a}) . _Default . _Coerce;@@ -135,9 +137,9 @@                         may (parseXMLList "HsmClientCertificate"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeHSMClientCertificates+instance Hashable DescribeHSMClientCertificates where -instance NFData DescribeHSMClientCertificates+instance NFData DescribeHSMClientCertificates where  instance ToHeaders DescribeHSMClientCertificates          where@@ -167,11 +169,12 @@ -- -- /See:/ 'describeHSMClientCertificatesResponse' smart constructor. data DescribeHSMClientCertificatesResponse = DescribeHSMClientCertificatesResponse'-    { _dhccrsMarker                :: !(Maybe Text)-    , _dhccrsHSMClientCertificates :: !(Maybe [HSMClientCertificate])-    , _dhccrsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhccrsMarker                :: !(Maybe Text)+  , _dhccrsHSMClientCertificates :: !(Maybe [HSMClientCertificate])+  , _dhccrsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHSMClientCertificatesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -185,12 +188,13 @@     :: Int -- ^ 'dhccrsResponseStatus'     -> DescribeHSMClientCertificatesResponse describeHSMClientCertificatesResponse pResponseStatus_ =-    DescribeHSMClientCertificatesResponse'-    { _dhccrsMarker = Nothing-    , _dhccrsHSMClientCertificates = Nothing-    , _dhccrsResponseStatus = pResponseStatus_-    }+  DescribeHSMClientCertificatesResponse'+  { _dhccrsMarker = Nothing+  , _dhccrsHSMClientCertificates = Nothing+  , _dhccrsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dhccrsMarker :: Lens' DescribeHSMClientCertificatesResponse (Maybe Text) dhccrsMarker = lens _dhccrsMarker (\ s a -> s{_dhccrsMarker = a});@@ -204,3 +208,4 @@ dhccrsResponseStatus = lens _dhccrsResponseStatus (\ s a -> s{_dhccrsResponseStatus = a});  instance NFData DescribeHSMClientCertificatesResponse+         where
gen/Network/AWS/Redshift/DescribeHSMConfigurations.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeHSMConfigurations--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,13 +48,13 @@     , dhcrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -62,13 +62,14 @@ -- -- /See:/ 'describeHSMConfigurations' smart constructor. data DescribeHSMConfigurations = DescribeHSMConfigurations'-    { _dhsmcTagValues                  :: !(Maybe [Text])-    , _dhsmcHSMConfigurationIdentifier :: !(Maybe Text)-    , _dhsmcTagKeys                    :: !(Maybe [Text])-    , _dhsmcMarker                     :: !(Maybe Text)-    , _dhsmcMaxRecords                 :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhsmcTagValues                  :: !(Maybe [Text])+  , _dhsmcHSMConfigurationIdentifier :: !(Maybe Text)+  , _dhsmcTagKeys                    :: !(Maybe [Text])+  , _dhsmcMarker                     :: !(Maybe Text)+  , _dhsmcMaxRecords                 :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHSMConfigurations' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,14 +86,15 @@ describeHSMConfigurations     :: DescribeHSMConfigurations describeHSMConfigurations =-    DescribeHSMConfigurations'-    { _dhsmcTagValues = Nothing-    , _dhsmcHSMConfigurationIdentifier = Nothing-    , _dhsmcTagKeys = Nothing-    , _dhsmcMarker = Nothing-    , _dhsmcMaxRecords = Nothing-    }+  DescribeHSMConfigurations'+  { _dhsmcTagValues = Nothing+  , _dhsmcHSMConfigurationIdentifier = Nothing+  , _dhsmcTagKeys = Nothing+  , _dhsmcMarker = Nothing+  , _dhsmcMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching HSM configurations that are associated with the specified tag value or values. For example, suppose that you have HSM configurations that are tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag values associated with them. dhsmcTagValues :: Lens' DescribeHSMConfigurations [Text] dhsmcTagValues = lens _dhsmcTagValues (\ s a -> s{_dhsmcTagValues = a}) . _Default . _Coerce;@@ -133,9 +135,9 @@                         may (parseXMLList "HsmConfiguration"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeHSMConfigurations+instance Hashable DescribeHSMConfigurations where -instance NFData DescribeHSMConfigurations+instance NFData DescribeHSMConfigurations where  instance ToHeaders DescribeHSMConfigurations where         toHeaders = const mempty@@ -164,11 +166,12 @@ -- -- /See:/ 'describeHSMConfigurationsResponse' smart constructor. data DescribeHSMConfigurationsResponse = DescribeHSMConfigurationsResponse'-    { _dhcrsMarker            :: !(Maybe Text)-    , _dhcrsHSMConfigurations :: !(Maybe [HSMConfiguration])-    , _dhcrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhcrsMarker            :: !(Maybe Text)+  , _dhcrsHSMConfigurations :: !(Maybe [HSMConfiguration])+  , _dhcrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHSMConfigurationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -182,12 +185,13 @@     :: Int -- ^ 'dhcrsResponseStatus'     -> DescribeHSMConfigurationsResponse describeHSMConfigurationsResponse pResponseStatus_ =-    DescribeHSMConfigurationsResponse'-    { _dhcrsMarker = Nothing-    , _dhcrsHSMConfigurations = Nothing-    , _dhcrsResponseStatus = pResponseStatus_-    }+  DescribeHSMConfigurationsResponse'+  { _dhcrsMarker = Nothing+  , _dhcrsHSMConfigurations = Nothing+  , _dhcrsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dhcrsMarker :: Lens' DescribeHSMConfigurationsResponse (Maybe Text) dhcrsMarker = lens _dhcrsMarker (\ s a -> s{_dhcrsMarker = a});@@ -201,3 +205,4 @@ dhcrsResponseStatus = lens _dhcrsResponseStatus (\ s a -> s{_dhcrsResponseStatus = a});  instance NFData DescribeHSMConfigurationsResponse+         where
gen/Network/AWS/Redshift/DescribeLoggingStatus.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeLoggingStatus--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , lsLastFailureMessage     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,9 +54,10 @@ -- -- /See:/ 'describeLoggingStatus' smart constructor. newtype DescribeLoggingStatus = DescribeLoggingStatus'-    { _dlsClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dlsClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeLoggingStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,10 +67,9 @@     :: Text -- ^ 'dlsClusterIdentifier'     -> DescribeLoggingStatus describeLoggingStatus pClusterIdentifier_ =-    DescribeLoggingStatus'-    { _dlsClusterIdentifier = pClusterIdentifier_-    }+  DescribeLoggingStatus' {_dlsClusterIdentifier = pClusterIdentifier_} + -- | The identifier of the cluster from which to get the logging status. Example: @examplecluster@ dlsClusterIdentifier :: Lens' DescribeLoggingStatus Text dlsClusterIdentifier = lens _dlsClusterIdentifier (\ s a -> s{_dlsClusterIdentifier = a});@@ -81,9 +81,9 @@           = receiveXMLWrapper "DescribeLoggingStatusResult"               (\ s h x -> parseXML x) -instance Hashable DescribeLoggingStatus+instance Hashable DescribeLoggingStatus where -instance NFData DescribeLoggingStatus+instance NFData DescribeLoggingStatus where  instance ToHeaders DescribeLoggingStatus where         toHeaders = const mempty
gen/Network/AWS/Redshift/DescribeOrderableClusterOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeOrderableClusterOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,13 +43,13 @@     , docorsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -57,12 +57,13 @@ -- -- /See:/ 'describeOrderableClusterOptions' smart constructor. data DescribeOrderableClusterOptions = DescribeOrderableClusterOptions'-    { _docoMarker         :: !(Maybe Text)-    , _docoMaxRecords     :: !(Maybe Int)-    , _docoClusterVersion :: !(Maybe Text)-    , _docoNodeType       :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _docoMarker         :: !(Maybe Text)+  , _docoMaxRecords     :: !(Maybe Int)+  , _docoClusterVersion :: !(Maybe Text)+  , _docoNodeType       :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeOrderableClusterOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,13 +78,14 @@ describeOrderableClusterOptions     :: DescribeOrderableClusterOptions describeOrderableClusterOptions =-    DescribeOrderableClusterOptions'-    { _docoMarker = Nothing-    , _docoMaxRecords = Nothing-    , _docoClusterVersion = Nothing-    , _docoNodeType = Nothing-    }+  DescribeOrderableClusterOptions'+  { _docoMarker = Nothing+  , _docoMaxRecords = Nothing+  , _docoClusterVersion = Nothing+  , _docoNodeType = Nothing+  } + -- | 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. docoMarker :: Lens' DescribeOrderableClusterOptions (Maybe Text) docoMarker = lens _docoMarker (\ s a -> s{_docoMarker = a});@@ -125,8 +127,9 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeOrderableClusterOptions+         where -instance NFData DescribeOrderableClusterOptions+instance NFData DescribeOrderableClusterOptions where  instance ToHeaders DescribeOrderableClusterOptions          where@@ -153,11 +156,12 @@ -- -- /See:/ 'describeOrderableClusterOptionsResponse' smart constructor. data DescribeOrderableClusterOptionsResponse = DescribeOrderableClusterOptionsResponse'-    { _docorsMarker                  :: !(Maybe Text)-    , _docorsOrderableClusterOptions :: !(Maybe [OrderableClusterOption])-    , _docorsResponseStatus          :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _docorsMarker                  :: !(Maybe Text)+  , _docorsOrderableClusterOptions :: !(Maybe [OrderableClusterOption])+  , _docorsResponseStatus          :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeOrderableClusterOptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -171,12 +175,13 @@     :: Int -- ^ 'docorsResponseStatus'     -> DescribeOrderableClusterOptionsResponse describeOrderableClusterOptionsResponse pResponseStatus_ =-    DescribeOrderableClusterOptionsResponse'-    { _docorsMarker = Nothing-    , _docorsOrderableClusterOptions = Nothing-    , _docorsResponseStatus = pResponseStatus_-    }+  DescribeOrderableClusterOptionsResponse'+  { _docorsMarker = Nothing+  , _docorsOrderableClusterOptions = Nothing+  , _docorsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. docorsMarker :: Lens' DescribeOrderableClusterOptionsResponse (Maybe Text) docorsMarker = lens _docorsMarker (\ s a -> s{_docorsMarker = a});@@ -190,4 +195,5 @@ docorsResponseStatus = lens _docorsResponseStatus (\ s a -> s{_docorsResponseStatus = a});  instance NFData-         DescribeOrderableClusterOptionsResponse+           DescribeOrderableClusterOptionsResponse+         where
gen/Network/AWS/Redshift/DescribeReservedNodeOfferings.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeReservedNodeOfferings--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,13 +44,13 @@     , drnorsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -58,11 +58,12 @@ -- -- /See:/ 'describeReservedNodeOfferings' smart constructor. data DescribeReservedNodeOfferings = DescribeReservedNodeOfferings'-    { _drnoReservedNodeOfferingId :: !(Maybe Text)-    , _drnoMarker                 :: !(Maybe Text)-    , _drnoMaxRecords             :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drnoReservedNodeOfferingId :: !(Maybe Text)+  , _drnoMarker                 :: !(Maybe Text)+  , _drnoMaxRecords             :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedNodeOfferings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,13 @@ describeReservedNodeOfferings     :: DescribeReservedNodeOfferings describeReservedNodeOfferings =-    DescribeReservedNodeOfferings'-    { _drnoReservedNodeOfferingId = Nothing-    , _drnoMarker = Nothing-    , _drnoMaxRecords = Nothing-    }+  DescribeReservedNodeOfferings'+  { _drnoReservedNodeOfferingId = Nothing+  , _drnoMarker = Nothing+  , _drnoMaxRecords = Nothing+  } + -- | The unique identifier for the offering. drnoReservedNodeOfferingId :: Lens' DescribeReservedNodeOfferings (Maybe Text) drnoReservedNodeOfferingId = lens _drnoReservedNodeOfferingId (\ s a -> s{_drnoReservedNodeOfferingId = a});@@ -115,9 +117,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeReservedNodeOfferings+instance Hashable DescribeReservedNodeOfferings where -instance NFData DescribeReservedNodeOfferings+instance NFData DescribeReservedNodeOfferings where  instance ToHeaders DescribeReservedNodeOfferings          where@@ -143,11 +145,12 @@ -- -- /See:/ 'describeReservedNodeOfferingsResponse' smart constructor. data DescribeReservedNodeOfferingsResponse = DescribeReservedNodeOfferingsResponse'-    { _drnorsReservedNodeOfferings :: !(Maybe [ReservedNodeOffering])-    , _drnorsMarker                :: !(Maybe Text)-    , _drnorsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drnorsReservedNodeOfferings :: !(Maybe [ReservedNodeOffering])+  , _drnorsMarker                :: !(Maybe Text)+  , _drnorsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedNodeOfferingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -161,12 +164,13 @@     :: Int -- ^ 'drnorsResponseStatus'     -> DescribeReservedNodeOfferingsResponse describeReservedNodeOfferingsResponse pResponseStatus_ =-    DescribeReservedNodeOfferingsResponse'-    { _drnorsReservedNodeOfferings = Nothing-    , _drnorsMarker = Nothing-    , _drnorsResponseStatus = pResponseStatus_-    }+  DescribeReservedNodeOfferingsResponse'+  { _drnorsReservedNodeOfferings = Nothing+  , _drnorsMarker = Nothing+  , _drnorsResponseStatus = pResponseStatus_+  } + -- | A list of @ReservedNodeOffering@ objects. drnorsReservedNodeOfferings :: Lens' DescribeReservedNodeOfferingsResponse [ReservedNodeOffering] drnorsReservedNodeOfferings = lens _drnorsReservedNodeOfferings (\ s a -> s{_drnorsReservedNodeOfferings = a}) . _Default . _Coerce;@@ -180,3 +184,4 @@ drnorsResponseStatus = lens _drnorsResponseStatus (\ s a -> s{_drnorsResponseStatus = a});  instance NFData DescribeReservedNodeOfferingsResponse+         where
gen/Network/AWS/Redshift/DescribeReservedNodes.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeReservedNodes--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,13 +42,13 @@     , drnrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,11 +56,12 @@ -- -- /See:/ 'describeReservedNodes' smart constructor. data DescribeReservedNodes = DescribeReservedNodes'-    { _drnReservedNodeId :: !(Maybe Text)-    , _drnMarker         :: !(Maybe Text)-    , _drnMaxRecords     :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drnReservedNodeId :: !(Maybe Text)+  , _drnMarker         :: !(Maybe Text)+  , _drnMaxRecords     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedNodes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,10 @@ describeReservedNodes     :: DescribeReservedNodes describeReservedNodes =-    DescribeReservedNodes'-    { _drnReservedNodeId = Nothing-    , _drnMarker = Nothing-    , _drnMaxRecords = Nothing-    }+  DescribeReservedNodes'+  {_drnReservedNodeId = Nothing, _drnMarker = Nothing, _drnMaxRecords = Nothing} + -- | Identifier for the node reservation. drnReservedNodeId :: Lens' DescribeReservedNodes (Maybe Text) drnReservedNodeId = lens _drnReservedNodeId (\ s a -> s{_drnReservedNodeId = a});@@ -111,9 +110,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeReservedNodes+instance Hashable DescribeReservedNodes where -instance NFData DescribeReservedNodes+instance NFData DescribeReservedNodes where  instance ToHeaders DescribeReservedNodes where         toHeaders = const mempty@@ -136,11 +135,12 @@ -- -- /See:/ 'describeReservedNodesResponse' smart constructor. data DescribeReservedNodesResponse = DescribeReservedNodesResponse'-    { _drnrsReservedNodes  :: !(Maybe [ReservedNode])-    , _drnrsMarker         :: !(Maybe Text)-    , _drnrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drnrsReservedNodes  :: !(Maybe [ReservedNode])+  , _drnrsMarker         :: !(Maybe Text)+  , _drnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedNodesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -154,12 +154,13 @@     :: Int -- ^ 'drnrsResponseStatus'     -> DescribeReservedNodesResponse describeReservedNodesResponse pResponseStatus_ =-    DescribeReservedNodesResponse'-    { _drnrsReservedNodes = Nothing-    , _drnrsMarker = Nothing-    , _drnrsResponseStatus = pResponseStatus_-    }+  DescribeReservedNodesResponse'+  { _drnrsReservedNodes = Nothing+  , _drnrsMarker = Nothing+  , _drnrsResponseStatus = pResponseStatus_+  } + -- | The list of @ReservedNode@ objects. drnrsReservedNodes :: Lens' DescribeReservedNodesResponse [ReservedNode] drnrsReservedNodes = lens _drnrsReservedNodes (\ s a -> s{_drnrsReservedNodes = a}) . _Default . _Coerce;@@ -172,4 +173,4 @@ drnrsResponseStatus :: Lens' DescribeReservedNodesResponse Int drnrsResponseStatus = lens _drnrsResponseStatus (\ s a -> s{_drnrsResponseStatus = a}); -instance NFData DescribeReservedNodesResponse+instance NFData DescribeReservedNodesResponse where
gen/Network/AWS/Redshift/DescribeResize.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeResize--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,12 +50,12 @@     , drrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -63,9 +63,10 @@ -- -- /See:/ 'describeResize' smart constructor. newtype DescribeResize = DescribeResize'-    { _drClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeResize' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,10 +76,9 @@     :: Text -- ^ 'drClusterIdentifier'     -> DescribeResize describeResize pClusterIdentifier_ =-    DescribeResize'-    { _drClusterIdentifier = pClusterIdentifier_-    }+  DescribeResize' {_drClusterIdentifier = pClusterIdentifier_} + -- | The unique identifier of a cluster whose resize progress you are requesting. This parameter is case-sensitive. By default, resize operations for all clusters defined for an AWS account are returned. drClusterIdentifier :: Lens' DescribeResize Text drClusterIdentifier = lens _drClusterIdentifier (\ s a -> s{_drClusterIdentifier = a});@@ -109,9 +109,9 @@                      <*> (x .@? "ElapsedTimeInSeconds")                      <*> (pure (fromEnum s))) -instance Hashable DescribeResize+instance Hashable DescribeResize where -instance NFData DescribeResize+instance NFData DescribeResize where  instance ToHeaders DescribeResize where         toHeaders = const mempty@@ -132,21 +132,22 @@ -- -- /See:/ 'describeResizeResponse' smart constructor. data DescribeResizeResponse = DescribeResizeResponse'-    { _drrsImportTablesNotStarted             :: !(Maybe [Text])-    , _drrsStatus                             :: !(Maybe Text)-    , _drrsEstimatedTimeToCompletionInSeconds :: !(Maybe Integer)-    , _drrsAvgResizeRateInMegaBytesPerSecond  :: !(Maybe Double)-    , _drrsTargetNumberOfNodes                :: !(Maybe Int)-    , _drrsTargetNodeType                     :: !(Maybe Text)-    , _drrsImportTablesInProgress             :: !(Maybe [Text])-    , _drrsImportTablesCompleted              :: !(Maybe [Text])-    , _drrsProgressInMegaBytes                :: !(Maybe Integer)-    , _drrsTotalResizeDataInMegaBytes         :: !(Maybe Integer)-    , _drrsTargetClusterType                  :: !(Maybe Text)-    , _drrsElapsedTimeInSeconds               :: !(Maybe Integer)-    , _drrsResponseStatus                     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drrsImportTablesNotStarted             :: !(Maybe [Text])+  , _drrsStatus                             :: !(Maybe Text)+  , _drrsEstimatedTimeToCompletionInSeconds :: !(Maybe Integer)+  , _drrsAvgResizeRateInMegaBytesPerSecond  :: !(Maybe Double)+  , _drrsTargetNumberOfNodes                :: !(Maybe Int)+  , _drrsTargetNodeType                     :: !(Maybe Text)+  , _drrsImportTablesInProgress             :: !(Maybe [Text])+  , _drrsImportTablesCompleted              :: !(Maybe [Text])+  , _drrsProgressInMegaBytes                :: !(Maybe Integer)+  , _drrsTotalResizeDataInMegaBytes         :: !(Maybe Integer)+  , _drrsTargetClusterType                  :: !(Maybe Text)+  , _drrsElapsedTimeInSeconds               :: !(Maybe Integer)+  , _drrsResponseStatus                     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeResizeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -180,22 +181,23 @@     :: Int -- ^ 'drrsResponseStatus'     -> DescribeResizeResponse describeResizeResponse pResponseStatus_ =-    DescribeResizeResponse'-    { _drrsImportTablesNotStarted = Nothing-    , _drrsStatus = Nothing-    , _drrsEstimatedTimeToCompletionInSeconds = Nothing-    , _drrsAvgResizeRateInMegaBytesPerSecond = Nothing-    , _drrsTargetNumberOfNodes = Nothing-    , _drrsTargetNodeType = Nothing-    , _drrsImportTablesInProgress = Nothing-    , _drrsImportTablesCompleted = Nothing-    , _drrsProgressInMegaBytes = Nothing-    , _drrsTotalResizeDataInMegaBytes = Nothing-    , _drrsTargetClusterType = Nothing-    , _drrsElapsedTimeInSeconds = Nothing-    , _drrsResponseStatus = pResponseStatus_-    }+  DescribeResizeResponse'+  { _drrsImportTablesNotStarted = Nothing+  , _drrsStatus = Nothing+  , _drrsEstimatedTimeToCompletionInSeconds = Nothing+  , _drrsAvgResizeRateInMegaBytesPerSecond = Nothing+  , _drrsTargetNumberOfNodes = Nothing+  , _drrsTargetNodeType = Nothing+  , _drrsImportTablesInProgress = Nothing+  , _drrsImportTablesCompleted = Nothing+  , _drrsProgressInMegaBytes = Nothing+  , _drrsTotalResizeDataInMegaBytes = Nothing+  , _drrsTargetClusterType = Nothing+  , _drrsElapsedTimeInSeconds = Nothing+  , _drrsResponseStatus = pResponseStatus_+  } + -- | The names of tables that have not been yet imported. Valid Values: List of table names drrsImportTablesNotStarted :: Lens' DescribeResizeResponse [Text] drrsImportTablesNotStarted = lens _drrsImportTablesNotStarted (\ s a -> s{_drrsImportTablesNotStarted = a}) . _Default . _Coerce;@@ -248,4 +250,4 @@ drrsResponseStatus :: Lens' DescribeResizeResponse Int drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a}); -instance NFData DescribeResizeResponse+instance NFData DescribeResizeResponse where
gen/Network/AWS/Redshift/DescribeSnapshotCopyGrants.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeSnapshotCopyGrants--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,12 +44,12 @@     , dscgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | The result of the @DescribeSnapshotCopyGrants@ action. --@@ -57,13 +57,14 @@ -- -- /See:/ 'describeSnapshotCopyGrants' smart constructor. data DescribeSnapshotCopyGrants = DescribeSnapshotCopyGrants'-    { _dscgsTagValues             :: !(Maybe [Text])-    , _dscgsTagKeys               :: !(Maybe [Text])-    , _dscgsMarker                :: !(Maybe Text)-    , _dscgsMaxRecords            :: !(Maybe Int)-    , _dscgsSnapshotCopyGrantName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscgsTagValues             :: !(Maybe [Text])+  , _dscgsTagKeys               :: !(Maybe [Text])+  , _dscgsMarker                :: !(Maybe Text)+  , _dscgsMaxRecords            :: !(Maybe Int)+  , _dscgsSnapshotCopyGrantName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotCopyGrants' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,14 +81,15 @@ describeSnapshotCopyGrants     :: DescribeSnapshotCopyGrants describeSnapshotCopyGrants =-    DescribeSnapshotCopyGrants'-    { _dscgsTagValues = Nothing-    , _dscgsTagKeys = Nothing-    , _dscgsMarker = Nothing-    , _dscgsMaxRecords = Nothing-    , _dscgsSnapshotCopyGrantName = Nothing-    }+  DescribeSnapshotCopyGrants'+  { _dscgsTagValues = Nothing+  , _dscgsTagKeys = Nothing+  , _dscgsMarker = Nothing+  , _dscgsMaxRecords = Nothing+  , _dscgsSnapshotCopyGrantName = Nothing+  } + -- | A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them. dscgsTagValues :: Lens' DescribeSnapshotCopyGrants [Text] dscgsTagValues = lens _dscgsTagValues (\ s a -> s{_dscgsTagValues = a}) . _Default . _Coerce;@@ -122,9 +124,9 @@                      <*> (x .@? "Marker")                      <*> (pure (fromEnum s))) -instance Hashable DescribeSnapshotCopyGrants+instance Hashable DescribeSnapshotCopyGrants where -instance NFData DescribeSnapshotCopyGrants+instance NFData DescribeSnapshotCopyGrants where  instance ToHeaders DescribeSnapshotCopyGrants where         toHeaders = const mempty@@ -153,11 +155,12 @@ -- -- /See:/ 'describeSnapshotCopyGrantsResponse' smart constructor. data DescribeSnapshotCopyGrantsResponse = DescribeSnapshotCopyGrantsResponse'-    { _dscgrsSnapshotCopyGrants :: !(Maybe [SnapshotCopyGrant])-    , _dscgrsMarker             :: !(Maybe Text)-    , _dscgrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscgrsSnapshotCopyGrants :: !(Maybe [SnapshotCopyGrant])+  , _dscgrsMarker             :: !(Maybe Text)+  , _dscgrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotCopyGrantsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -171,12 +174,13 @@     :: Int -- ^ 'dscgrsResponseStatus'     -> DescribeSnapshotCopyGrantsResponse describeSnapshotCopyGrantsResponse pResponseStatus_ =-    DescribeSnapshotCopyGrantsResponse'-    { _dscgrsSnapshotCopyGrants = Nothing-    , _dscgrsMarker = Nothing-    , _dscgrsResponseStatus = pResponseStatus_-    }+  DescribeSnapshotCopyGrantsResponse'+  { _dscgrsSnapshotCopyGrants = Nothing+  , _dscgrsMarker = Nothing+  , _dscgrsResponseStatus = pResponseStatus_+  } + -- | The list of @SnapshotCopyGrant@ objects. dscgrsSnapshotCopyGrants :: Lens' DescribeSnapshotCopyGrantsResponse [SnapshotCopyGrant] dscgrsSnapshotCopyGrants = lens _dscgrsSnapshotCopyGrants (\ s a -> s{_dscgrsSnapshotCopyGrants = a}) . _Default . _Coerce;@@ -190,3 +194,4 @@ dscgrsResponseStatus = lens _dscgrsResponseStatus (\ s a -> s{_dscgrsResponseStatus = a});  instance NFData DescribeSnapshotCopyGrantsResponse+         where
gen/Network/AWS/Redshift/DescribeTableRestoreStatus.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeTableRestoreStatus--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dtrsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,12 +54,13 @@ -- -- /See:/ 'describeTableRestoreStatus' smart constructor. data DescribeTableRestoreStatus = DescribeTableRestoreStatus'-    { _dtrssTableRestoreRequestId :: !(Maybe Text)-    , _dtrssClusterIdentifier     :: !(Maybe Text)-    , _dtrssMarker                :: !(Maybe Text)-    , _dtrssMaxRecords            :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtrssTableRestoreRequestId :: !(Maybe Text)+  , _dtrssClusterIdentifier     :: !(Maybe Text)+  , _dtrssMarker                :: !(Maybe Text)+  , _dtrssMaxRecords            :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTableRestoreStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,13 +75,14 @@ describeTableRestoreStatus     :: DescribeTableRestoreStatus describeTableRestoreStatus =-    DescribeTableRestoreStatus'-    { _dtrssTableRestoreRequestId = Nothing-    , _dtrssClusterIdentifier = Nothing-    , _dtrssMarker = Nothing-    , _dtrssMaxRecords = Nothing-    }+  DescribeTableRestoreStatus'+  { _dtrssTableRestoreRequestId = Nothing+  , _dtrssClusterIdentifier = Nothing+  , _dtrssMarker = Nothing+  , _dtrssMaxRecords = Nothing+  } + -- | The identifier of the table restore request to return status for. If you don't specify a @TableRestoreRequestId@ value, then @DescribeTableRestoreStatus@ returns the status of all in-progress table restore requests. dtrssTableRestoreRequestId :: Lens' DescribeTableRestoreStatus (Maybe Text) dtrssTableRestoreRequestId = lens _dtrssTableRestoreRequestId (\ s a -> s{_dtrssTableRestoreRequestId = a});@@ -111,9 +113,9 @@                         may (parseXMLList "TableRestoreStatus"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeTableRestoreStatus+instance Hashable DescribeTableRestoreStatus where -instance NFData DescribeTableRestoreStatus+instance NFData DescribeTableRestoreStatus where  instance ToHeaders DescribeTableRestoreStatus where         toHeaders = const mempty@@ -139,11 +141,12 @@ -- -- /See:/ 'describeTableRestoreStatusResponse' smart constructor. data DescribeTableRestoreStatusResponse = DescribeTableRestoreStatusResponse'-    { _dtrsrsMarker                    :: !(Maybe Text)-    , _dtrsrsTableRestoreStatusDetails :: !(Maybe [TableRestoreStatus])-    , _dtrsrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtrsrsMarker                    :: !(Maybe Text)+  , _dtrsrsTableRestoreStatusDetails :: !(Maybe [TableRestoreStatus])+  , _dtrsrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTableRestoreStatusResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -157,12 +160,13 @@     :: Int -- ^ 'dtrsrsResponseStatus'     -> DescribeTableRestoreStatusResponse describeTableRestoreStatusResponse pResponseStatus_ =-    DescribeTableRestoreStatusResponse'-    { _dtrsrsMarker = Nothing-    , _dtrsrsTableRestoreStatusDetails = Nothing-    , _dtrsrsResponseStatus = pResponseStatus_-    }+  DescribeTableRestoreStatusResponse'+  { _dtrsrsMarker = Nothing+  , _dtrsrsTableRestoreStatusDetails = Nothing+  , _dtrsrsResponseStatus = pResponseStatus_+  } + -- | A pagination token that can be used in a subsequent 'DescribeTableRestoreStatus' request. dtrsrsMarker :: Lens' DescribeTableRestoreStatusResponse (Maybe Text) dtrsrsMarker = lens _dtrsrsMarker (\ s a -> s{_dtrsrsMarker = a});@@ -176,3 +180,4 @@ dtrsrsResponseStatus = lens _dtrsrsResponseStatus (\ s a -> s{_dtrsrsResponseStatus = a});  instance NFData DescribeTableRestoreStatusResponse+         where
gen/Network/AWS/Redshift/DescribeTags.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DescribeTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -57,12 +57,12 @@     , dtrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -70,21 +70,22 @@ -- -- /See:/ 'describeTags' smart constructor. data DescribeTags = DescribeTags'-    { _dtTagValues    :: !(Maybe [Text])-    , _dtResourceType :: !(Maybe Text)-    , _dtResourceName :: !(Maybe Text)-    , _dtTagKeys      :: !(Maybe [Text])-    , _dtMarker       :: !(Maybe Text)-    , _dtMaxRecords   :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtTagValues    :: !(Maybe [Text])+  , _dtResourceType :: !(Maybe Text)+  , _dtResourceName :: !(Maybe Text)+  , _dtTagKeys      :: !(Maybe [Text])+  , _dtMarker       :: !(Maybe Text)+  , _dtMaxRecords   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dtTagValues' - A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them. ----- * 'dtResourceType' - The type of resource with which you want to view tags. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group     * Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.+-- * 'dtResourceType' - The type of resource with which you want to view tags. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group     * Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions Specifying Policy Elements: Actions, Effects, Resources, and Principals> in the Amazon Redshift Cluster Management Guide. -- -- * 'dtResourceName' - The Amazon Resource Name (ARN) for which you want to describe the tag or tags. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ . --@@ -96,20 +97,21 @@ describeTags     :: DescribeTags describeTags =-    DescribeTags'-    { _dtTagValues = Nothing-    , _dtResourceType = Nothing-    , _dtResourceName = Nothing-    , _dtTagKeys = Nothing-    , _dtMarker = Nothing-    , _dtMaxRecords = Nothing-    }+  DescribeTags'+  { _dtTagValues = Nothing+  , _dtResourceType = Nothing+  , _dtResourceName = Nothing+  , _dtTagKeys = Nothing+  , _dtMarker = Nothing+  , _dtMaxRecords = Nothing+  } + -- | A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called @admin@ and @test@ . If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them. dtTagValues :: Lens' DescribeTags [Text] dtTagValues = lens _dtTagValues (\ s a -> s{_dtTagValues = a}) . _Default . _Coerce; --- | The type of resource with which you want to view tags. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group     * Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.+-- | The type of resource with which you want to view tags. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group     * Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions Specifying Policy Elements: Actions, Effects, Resources, and Principals> in the Amazon Redshift Cluster Management Guide. dtResourceType :: Lens' DescribeTags (Maybe Text) dtResourceType = lens _dtResourceType (\ s a -> s{_dtResourceType = a}); @@ -141,9 +143,9 @@                         may (parseXMLList "TaggedResource"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeTags+instance Hashable DescribeTags where -instance NFData DescribeTags+instance NFData DescribeTags where  instance ToHeaders DescribeTags where         toHeaders = const mempty@@ -170,11 +172,12 @@ -- -- /See:/ 'describeTagsResponse' smart constructor. data DescribeTagsResponse = DescribeTagsResponse'-    { _dtrsMarker          :: !(Maybe Text)-    , _dtrsTaggedResources :: !(Maybe [TaggedResource])-    , _dtrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtrsMarker          :: !(Maybe Text)+  , _dtrsTaggedResources :: !(Maybe [TaggedResource])+  , _dtrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTagsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -188,12 +191,13 @@     :: Int -- ^ 'dtrsResponseStatus'     -> DescribeTagsResponse describeTagsResponse pResponseStatus_ =-    DescribeTagsResponse'-    { _dtrsMarker = Nothing-    , _dtrsTaggedResources = Nothing-    , _dtrsResponseStatus = pResponseStatus_-    }+  DescribeTagsResponse'+  { _dtrsMarker = Nothing+  , _dtrsTaggedResources = Nothing+  , _dtrsResponseStatus = pResponseStatus_+  } + -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request. dtrsMarker :: Lens' DescribeTagsResponse (Maybe Text) dtrsMarker = lens _dtrsMarker (\ s a -> s{_dtrsMarker = a});@@ -206,4 +210,4 @@ dtrsResponseStatus :: Lens' DescribeTagsResponse Int dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a}); -instance NFData DescribeTagsResponse+instance NFData DescribeTagsResponse where
gen/Network/AWS/Redshift/DisableLogging.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DisableLogging--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , lsLastFailureMessage     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,9 +54,10 @@ -- -- /See:/ 'disableLogging' smart constructor. newtype DisableLogging = DisableLogging'-    { _dlClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dlClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableLogging' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,10 +67,9 @@     :: Text -- ^ 'dlClusterIdentifier'     -> DisableLogging disableLogging pClusterIdentifier_ =-    DisableLogging'-    { _dlClusterIdentifier = pClusterIdentifier_-    }+  DisableLogging' {_dlClusterIdentifier = pClusterIdentifier_} + -- | The identifier of the cluster on which logging is to be stopped. Example: @examplecluster@ dlClusterIdentifier :: Lens' DisableLogging Text dlClusterIdentifier = lens _dlClusterIdentifier (\ s a -> s{_dlClusterIdentifier = a});@@ -81,9 +81,9 @@           = receiveXMLWrapper "DisableLoggingResult"               (\ s h x -> parseXML x) -instance Hashable DisableLogging+instance Hashable DisableLogging where -instance NFData DisableLogging+instance NFData DisableLogging where  instance ToHeaders DisableLogging where         toHeaders = const mempty
gen/Network/AWS/Redshift/DisableSnapshotCopy.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.DisableSnapshotCopy--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dscrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -52,9 +52,10 @@ -- -- /See:/ 'disableSnapshotCopy' smart constructor. newtype DisableSnapshotCopy = DisableSnapshotCopy'-    { _dscClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableSnapshotCopy' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +65,9 @@     :: Text -- ^ 'dscClusterIdentifier'     -> DisableSnapshotCopy disableSnapshotCopy pClusterIdentifier_ =-    DisableSnapshotCopy'-    { _dscClusterIdentifier = pClusterIdentifier_-    }+  DisableSnapshotCopy' {_dscClusterIdentifier = pClusterIdentifier_} + -- | 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. dscClusterIdentifier :: Lens' DisableSnapshotCopy Text dscClusterIdentifier = lens _dscClusterIdentifier (\ s a -> s{_dscClusterIdentifier = a});@@ -82,9 +82,9 @@                  DisableSnapshotCopyResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable DisableSnapshotCopy+instance Hashable DisableSnapshotCopy where -instance NFData DisableSnapshotCopy+instance NFData DisableSnapshotCopy where  instance ToHeaders DisableSnapshotCopy where         toHeaders = const mempty@@ -101,10 +101,11 @@  -- | /See:/ 'disableSnapshotCopyResponse' smart constructor. data DisableSnapshotCopyResponse = DisableSnapshotCopyResponse'-    { _dscrsCluster        :: !(Maybe Cluster)-    , _dscrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscrsCluster        :: !(Maybe Cluster)+  , _dscrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableSnapshotCopyResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -116,11 +117,10 @@     :: Int -- ^ 'dscrsResponseStatus'     -> DisableSnapshotCopyResponse disableSnapshotCopyResponse pResponseStatus_ =-    DisableSnapshotCopyResponse'-    { _dscrsCluster = Nothing-    , _dscrsResponseStatus = pResponseStatus_-    }+  DisableSnapshotCopyResponse'+  {_dscrsCluster = Nothing, _dscrsResponseStatus = pResponseStatus_} + -- | Undocumented member. dscrsCluster :: Lens' DisableSnapshotCopyResponse (Maybe Cluster) dscrsCluster = lens _dscrsCluster (\ s a -> s{_dscrsCluster = a});@@ -129,4 +129,4 @@ dscrsResponseStatus :: Lens' DisableSnapshotCopyResponse Int dscrsResponseStatus = lens _dscrsResponseStatus (\ s a -> s{_dscrsResponseStatus = a}); -instance NFData DisableSnapshotCopyResponse+instance NFData DisableSnapshotCopyResponse where
gen/Network/AWS/Redshift/EnableLogging.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.EnableLogging--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , lsLastFailureMessage     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,11 +56,12 @@ -- -- /See:/ 'enableLogging' smart constructor. data EnableLogging = EnableLogging'-    { _elS3KeyPrefix       :: !(Maybe Text)-    , _elClusterIdentifier :: !Text-    , _elBucketName        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _elS3KeyPrefix       :: !(Maybe Text)+  , _elClusterIdentifier :: !Text+  , _elBucketName        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableLogging' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,13 @@     -> Text -- ^ 'elBucketName'     -> EnableLogging enableLogging pClusterIdentifier_ pBucketName_ =-    EnableLogging'-    { _elS3KeyPrefix = Nothing-    , _elClusterIdentifier = pClusterIdentifier_-    , _elBucketName = pBucketName_-    }+  EnableLogging'+  { _elS3KeyPrefix = Nothing+  , _elClusterIdentifier = pClusterIdentifier_+  , _elBucketName = pBucketName_+  } + -- | 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 elS3KeyPrefix :: Lens' EnableLogging (Maybe Text) elS3KeyPrefix = lens _elS3KeyPrefix (\ s a -> s{_elS3KeyPrefix = a});@@ -100,9 +102,9 @@           = receiveXMLWrapper "EnableLoggingResult"               (\ s h x -> parseXML x) -instance Hashable EnableLogging+instance Hashable EnableLogging where -instance NFData EnableLogging+instance NFData EnableLogging where  instance ToHeaders EnableLogging where         toHeaders = const mempty
gen/Network/AWS/Redshift/EnableSnapshotCopy.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.EnableSnapshotCopy--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , escrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,12 +53,13 @@ -- -- /See:/ 'enableSnapshotCopy' smart constructor. data EnableSnapshotCopy = EnableSnapshotCopy'-    { _escRetentionPeriod       :: !(Maybe Int)-    , _escSnapshotCopyGrantName :: !(Maybe Text)-    , _escClusterIdentifier     :: !Text-    , _escDestinationRegion     :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _escRetentionPeriod       :: !(Maybe Int)+  , _escSnapshotCopyGrantName :: !(Maybe Text)+  , _escClusterIdentifier     :: !Text+  , _escDestinationRegion     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableSnapshotCopy' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,13 +76,14 @@     -> Text -- ^ 'escDestinationRegion'     -> EnableSnapshotCopy enableSnapshotCopy pClusterIdentifier_ pDestinationRegion_ =-    EnableSnapshotCopy'-    { _escRetentionPeriod = Nothing-    , _escSnapshotCopyGrantName = Nothing-    , _escClusterIdentifier = pClusterIdentifier_-    , _escDestinationRegion = pDestinationRegion_-    }+  EnableSnapshotCopy'+  { _escRetentionPeriod = Nothing+  , _escSnapshotCopyGrantName = Nothing+  , _escClusterIdentifier = pClusterIdentifier_+  , _escDestinationRegion = pDestinationRegion_+  } + -- | 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. escRetentionPeriod :: Lens' EnableSnapshotCopy (Maybe Int) escRetentionPeriod = lens _escRetentionPeriod (\ s a -> s{_escRetentionPeriod = a});@@ -108,9 +110,9 @@                  EnableSnapshotCopyResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable EnableSnapshotCopy+instance Hashable EnableSnapshotCopy where -instance NFData EnableSnapshotCopy+instance NFData EnableSnapshotCopy where  instance ToHeaders EnableSnapshotCopy where         toHeaders = const mempty@@ -130,10 +132,11 @@  -- | /See:/ 'enableSnapshotCopyResponse' smart constructor. data EnableSnapshotCopyResponse = EnableSnapshotCopyResponse'-    { _escrsCluster        :: !(Maybe Cluster)-    , _escrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _escrsCluster        :: !(Maybe Cluster)+  , _escrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableSnapshotCopyResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,11 +148,10 @@     :: Int -- ^ 'escrsResponseStatus'     -> EnableSnapshotCopyResponse enableSnapshotCopyResponse pResponseStatus_ =-    EnableSnapshotCopyResponse'-    { _escrsCluster = Nothing-    , _escrsResponseStatus = pResponseStatus_-    }+  EnableSnapshotCopyResponse'+  {_escrsCluster = Nothing, _escrsResponseStatus = pResponseStatus_} + -- | Undocumented member. escrsCluster :: Lens' EnableSnapshotCopyResponse (Maybe Cluster) escrsCluster = lens _escrsCluster (\ s a -> s{_escrsCluster = a});@@ -158,4 +160,4 @@ escrsResponseStatus :: Lens' EnableSnapshotCopyResponse Int escrsResponseStatus = lens _escrsResponseStatus (\ s a -> s{_escrsResponseStatus = a}); -instance NFData EnableSnapshotCopyResponse+instance NFData EnableSnapshotCopyResponse where
+ gen/Network/AWS/Redshift/GetClusterCredentials.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Redshift.GetClusterCredentials+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with @IAM:@ if @AutoCreate@ is @False@ or @IAMA:@ if @AutoCreate@ is @True@ . You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html Using IAM Authentication to Generate Database User Credentials> in the Amazon Redshift Cluster Management Guide.+--+--+-- The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see <http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources Resource Policies for GetClusterCredentials> in the Amazon Redshift Cluster Management Guide.+--+-- If the @DbGroups@ parameter is specified, the IAM policy must allow the @redshift:JoinGroup@ action with access to the listed @dbgroups@ .+--+-- In addition, if the @AutoCreate@ parameter is set to @True@ , then the policy must include the @redshift:CreateClusterUser@ privilege.+--+-- If the @DbName@ parameter is specified, the IAM policy must allow access to the resource @dbname@ for the specified database name.+--+module Network.AWS.Redshift.GetClusterCredentials+    (+    -- * Creating a Request+      getClusterCredentials+    , GetClusterCredentials+    -- * Request Lenses+    , gccDBGroups+    , gccDurationSeconds+    , gccAutoCreate+    , gccDBName+    , gccDBUser+    , gccClusterIdentifier++    -- * Destructuring the Response+    , getClusterCredentialsResponse+    , GetClusterCredentialsResponse+    -- * Response Lenses+    , gccrsDBUser+    , gccrsExpiration+    , gccrsDBPassword+    , gccrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response++-- | The request parameters to get cluster credentials.+--+--+--+-- /See:/ 'getClusterCredentials' smart constructor.+data GetClusterCredentials = GetClusterCredentials'+  { _gccDBGroups          :: !(Maybe [Text])+  , _gccDurationSeconds   :: !(Maybe Int)+  , _gccAutoCreate        :: !(Maybe Bool)+  , _gccDBName            :: !(Maybe Text)+  , _gccDBUser            :: !Text+  , _gccClusterIdentifier :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetClusterCredentials' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gccDBGroups' - A list of the names of existing database groups that the user named in @DbUser@ will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC. Database group name constraints     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+--+-- * 'gccDurationSeconds' - The number of seconds until the returned temporary password expires. Constraint: minimum 900, maximum 3600. Default: 900+--+-- * 'gccAutoCreate' - Create a database user with the name specified for the user named in @DbUser@ if one does not exist.+--+-- * 'gccDBName' - The name of a database that @DbUser@ is authorized to log on to. If @DbName@ is not specified, @DbUser@ can log on to any existing database. Constraints:     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+--+-- * 'gccDBUser' - The name of a database user. If a user name matching @DbUser@ exists in the database, the temporary user credentials have the same permissions as the existing user. If @DbUser@ doesn't exist in the database and @Autocreate@ is @True@ , a new user is created using the value for @DbUser@ with PUBLIC permissions. If a database user matching the value for @DbUser@ doesn't exist and @Autocreate@ is @False@ , then the command succeeds but the connection attempt will fail because the user doesn't exist in the database. For more information, see <http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html CREATE USER> in the Amazon Redshift Database Developer Guide.  Constraints:     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+--+-- * 'gccClusterIdentifier' - The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.+getClusterCredentials+    :: Text -- ^ 'gccDBUser'+    -> Text -- ^ 'gccClusterIdentifier'+    -> GetClusterCredentials+getClusterCredentials pDBUser_ pClusterIdentifier_ =+  GetClusterCredentials'+  { _gccDBGroups = Nothing+  , _gccDurationSeconds = Nothing+  , _gccAutoCreate = Nothing+  , _gccDBName = Nothing+  , _gccDBUser = pDBUser_+  , _gccClusterIdentifier = pClusterIdentifier_+  }+++-- | A list of the names of existing database groups that the user named in @DbUser@ will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC. Database group name constraints     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+gccDBGroups :: Lens' GetClusterCredentials [Text]+gccDBGroups = lens _gccDBGroups (\ s a -> s{_gccDBGroups = a}) . _Default . _Coerce;++-- | The number of seconds until the returned temporary password expires. Constraint: minimum 900, maximum 3600. Default: 900+gccDurationSeconds :: Lens' GetClusterCredentials (Maybe Int)+gccDurationSeconds = lens _gccDurationSeconds (\ s a -> s{_gccDurationSeconds = a});++-- | Create a database user with the name specified for the user named in @DbUser@ if one does not exist.+gccAutoCreate :: Lens' GetClusterCredentials (Maybe Bool)+gccAutoCreate = lens _gccAutoCreate (\ s a -> s{_gccAutoCreate = a});++-- | The name of a database that @DbUser@ is authorized to log on to. If @DbName@ is not specified, @DbUser@ can log on to any existing database. Constraints:     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+gccDBName :: Lens' GetClusterCredentials (Maybe Text)+gccDBName = lens _gccDBName (\ s a -> s{_gccDBName = a});++-- | The name of a database user. If a user name matching @DbUser@ exists in the database, the temporary user credentials have the same permissions as the existing user. If @DbUser@ doesn't exist in the database and @Autocreate@ is @True@ , a new user is created using the value for @DbUser@ with PUBLIC permissions. If a database user matching the value for @DbUser@ doesn't exist and @Autocreate@ is @False@ , then the command succeeds but the connection attempt will fail because the user doesn't exist in the database. For more information, see <http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html CREATE USER> in the Amazon Redshift Database Developer Guide.  Constraints:     * Must be 1 to 64 alphanumeric characters or hyphens     * Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.     * First character must be a letter.     * Must not contain a colon ( : ) or slash ( / ).      * Cannot be a reserved word. A list of reserved words can be found in <http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html Reserved Words> in the Amazon Redshift Database Developer Guide.+gccDBUser :: Lens' GetClusterCredentials Text+gccDBUser = lens _gccDBUser (\ s a -> s{_gccDBUser = a});++-- | The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.+gccClusterIdentifier :: Lens' GetClusterCredentials Text+gccClusterIdentifier = lens _gccClusterIdentifier (\ s a -> s{_gccClusterIdentifier = a});++instance AWSRequest GetClusterCredentials where+        type Rs GetClusterCredentials =+             GetClusterCredentialsResponse+        request = postQuery redshift+        response+          = receiveXMLWrapper "GetClusterCredentialsResult"+              (\ s h x ->+                 GetClusterCredentialsResponse' <$>+                   (x .@? "DbUser") <*> (x .@? "Expiration") <*>+                     (x .@? "DbPassword")+                     <*> (pure (fromEnum s)))++instance Hashable GetClusterCredentials where++instance NFData GetClusterCredentials where++instance ToHeaders GetClusterCredentials where+        toHeaders = const mempty++instance ToPath GetClusterCredentials where+        toPath = const "/"++instance ToQuery GetClusterCredentials where+        toQuery GetClusterCredentials'{..}+          = mconcat+              ["Action" =: ("GetClusterCredentials" :: ByteString),+               "Version" =: ("2012-12-01" :: ByteString),+               "DbGroups" =:+                 toQuery (toQueryList "DbGroup" <$> _gccDBGroups),+               "DurationSeconds" =: _gccDurationSeconds,+               "AutoCreate" =: _gccAutoCreate,+               "DbName" =: _gccDBName, "DbUser" =: _gccDBUser,+               "ClusterIdentifier" =: _gccClusterIdentifier]++-- | Temporary credentials with authorization to log on to an Amazon Redshift database.+--+--+--+-- /See:/ 'getClusterCredentialsResponse' smart constructor.+data GetClusterCredentialsResponse = GetClusterCredentialsResponse'+  { _gccrsDBUser         :: !(Maybe Text)+  , _gccrsExpiration     :: !(Maybe ISO8601)+  , _gccrsDBPassword     :: !(Maybe (Sensitive Text))+  , _gccrsResponseStatus :: !Int+  } deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetClusterCredentialsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gccrsDBUser' - A database user name that is authorized to log on to the database @DbName@ using the password @DbPassword@ . If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the @DbGroups@ parameter is specifed, @DbUser@ is added to the listed groups for any sessions created using these credentials.+--+-- * 'gccrsExpiration' - The date and time the password in @DbPassword@ expires.+--+-- * 'gccrsDBPassword' - A temporary password that authorizes the user name returned by @DbUser@ to log on to the database @DbName@ .+--+-- * 'gccrsResponseStatus' - -- | The response status code.+getClusterCredentialsResponse+    :: Int -- ^ 'gccrsResponseStatus'+    -> GetClusterCredentialsResponse+getClusterCredentialsResponse pResponseStatus_ =+  GetClusterCredentialsResponse'+  { _gccrsDBUser = Nothing+  , _gccrsExpiration = Nothing+  , _gccrsDBPassword = Nothing+  , _gccrsResponseStatus = pResponseStatus_+  }+++-- | A database user name that is authorized to log on to the database @DbName@ using the password @DbPassword@ . If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the @DbGroups@ parameter is specifed, @DbUser@ is added to the listed groups for any sessions created using these credentials.+gccrsDBUser :: Lens' GetClusterCredentialsResponse (Maybe Text)+gccrsDBUser = lens _gccrsDBUser (\ s a -> s{_gccrsDBUser = a});++-- | The date and time the password in @DbPassword@ expires.+gccrsExpiration :: Lens' GetClusterCredentialsResponse (Maybe UTCTime)+gccrsExpiration = lens _gccrsExpiration (\ s a -> s{_gccrsExpiration = a}) . mapping _Time;++-- | A temporary password that authorizes the user name returned by @DbUser@ to log on to the database @DbName@ .+gccrsDBPassword :: Lens' GetClusterCredentialsResponse (Maybe Text)+gccrsDBPassword = lens _gccrsDBPassword (\ s a -> s{_gccrsDBPassword = a}) . mapping _Sensitive;++-- | -- | The response status code.+gccrsResponseStatus :: Lens' GetClusterCredentialsResponse Int+gccrsResponseStatus = lens _gccrsResponseStatus (\ s a -> s{_gccrsResponseStatus = a});++instance NFData GetClusterCredentialsResponse where
gen/Network/AWS/Redshift/ModifyCluster.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifyCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -56,12 +56,12 @@     , mcrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -69,26 +69,27 @@ -- -- /See:/ 'modifyCluster' smart constructor. data ModifyCluster = ModifyCluster'-    { _mcEnhancedVPCRouting               :: !(Maybe Bool)-    , _mcMasterUserPassword               :: !(Maybe Text)-    , _mcPubliclyAccessible               :: !(Maybe Bool)-    , _mcHSMConfigurationIdentifier       :: !(Maybe Text)-    , _mcClusterSecurityGroups            :: !(Maybe [Text])-    , _mcAutomatedSnapshotRetentionPeriod :: !(Maybe Int)-    , _mcHSMClientCertificateIdentifier   :: !(Maybe Text)-    , _mcNumberOfNodes                    :: !(Maybe Int)-    , _mcElasticIP                        :: !(Maybe Text)-    , _mcPreferredMaintenanceWindow       :: !(Maybe Text)-    , _mcVPCSecurityGroupIds              :: !(Maybe [Text])-    , _mcClusterType                      :: !(Maybe Text)-    , _mcNewClusterIdentifier             :: !(Maybe Text)-    , _mcClusterVersion                   :: !(Maybe Text)-    , _mcNodeType                         :: !(Maybe Text)-    , _mcAllowVersionUpgrade              :: !(Maybe Bool)-    , _mcClusterParameterGroupName        :: !(Maybe Text)-    , _mcClusterIdentifier                :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcEnhancedVPCRouting               :: !(Maybe Bool)+  , _mcMasterUserPassword               :: !(Maybe Text)+  , _mcPubliclyAccessible               :: !(Maybe Bool)+  , _mcHSMConfigurationIdentifier       :: !(Maybe Text)+  , _mcClusterSecurityGroups            :: !(Maybe [Text])+  , _mcAutomatedSnapshotRetentionPeriod :: !(Maybe Int)+  , _mcHSMClientCertificateIdentifier   :: !(Maybe Text)+  , _mcNumberOfNodes                    :: !(Maybe Int)+  , _mcElasticIP                        :: !(Maybe Text)+  , _mcPreferredMaintenanceWindow       :: !(Maybe Text)+  , _mcVPCSecurityGroupIds              :: !(Maybe [Text])+  , _mcClusterType                      :: !(Maybe Text)+  , _mcNewClusterIdentifier             :: !(Maybe Text)+  , _mcClusterVersion                   :: !(Maybe Text)+  , _mcNodeType                         :: !(Maybe Text)+  , _mcAllowVersionUpgrade              :: !(Maybe Bool)+  , _mcClusterParameterGroupName        :: !(Maybe Text)+  , _mcClusterIdentifier                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -132,27 +133,28 @@     :: Text -- ^ 'mcClusterIdentifier'     -> ModifyCluster modifyCluster pClusterIdentifier_ =-    ModifyCluster'-    { _mcEnhancedVPCRouting = Nothing-    , _mcMasterUserPassword = Nothing-    , _mcPubliclyAccessible = Nothing-    , _mcHSMConfigurationIdentifier = Nothing-    , _mcClusterSecurityGroups = Nothing-    , _mcAutomatedSnapshotRetentionPeriod = Nothing-    , _mcHSMClientCertificateIdentifier = Nothing-    , _mcNumberOfNodes = Nothing-    , _mcElasticIP = Nothing-    , _mcPreferredMaintenanceWindow = Nothing-    , _mcVPCSecurityGroupIds = Nothing-    , _mcClusterType = Nothing-    , _mcNewClusterIdentifier = Nothing-    , _mcClusterVersion = Nothing-    , _mcNodeType = Nothing-    , _mcAllowVersionUpgrade = Nothing-    , _mcClusterParameterGroupName = Nothing-    , _mcClusterIdentifier = pClusterIdentifier_-    }+  ModifyCluster'+  { _mcEnhancedVPCRouting = Nothing+  , _mcMasterUserPassword = Nothing+  , _mcPubliclyAccessible = Nothing+  , _mcHSMConfigurationIdentifier = Nothing+  , _mcClusterSecurityGroups = Nothing+  , _mcAutomatedSnapshotRetentionPeriod = Nothing+  , _mcHSMClientCertificateIdentifier = Nothing+  , _mcNumberOfNodes = Nothing+  , _mcElasticIP = Nothing+  , _mcPreferredMaintenanceWindow = Nothing+  , _mcVPCSecurityGroupIds = Nothing+  , _mcClusterType = Nothing+  , _mcNewClusterIdentifier = Nothing+  , _mcClusterVersion = Nothing+  , _mcNodeType = Nothing+  , _mcAllowVersionUpgrade = Nothing+  , _mcClusterParameterGroupName = Nothing+  , _mcClusterIdentifier = pClusterIdentifier_+  } + -- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false mcEnhancedVPCRouting :: Lens' ModifyCluster (Maybe Bool) mcEnhancedVPCRouting = lens _mcEnhancedVPCRouting (\ s a -> s{_mcEnhancedVPCRouting = a});@@ -234,9 +236,9 @@                  ModifyClusterResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable ModifyCluster+instance Hashable ModifyCluster where -instance NFData ModifyCluster+instance NFData ModifyCluster where  instance ToHeaders ModifyCluster where         toHeaders = const mempty@@ -281,10 +283,11 @@  -- | /See:/ 'modifyClusterResponse' smart constructor. data ModifyClusterResponse = ModifyClusterResponse'-    { _mcrsCluster        :: !(Maybe Cluster)-    , _mcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcrsCluster        :: !(Maybe Cluster)+  , _mcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -296,11 +299,10 @@     :: Int -- ^ 'mcrsResponseStatus'     -> ModifyClusterResponse modifyClusterResponse pResponseStatus_ =-    ModifyClusterResponse'-    { _mcrsCluster = Nothing-    , _mcrsResponseStatus = pResponseStatus_-    }+  ModifyClusterResponse'+  {_mcrsCluster = Nothing, _mcrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mcrsCluster :: Lens' ModifyClusterResponse (Maybe Cluster) mcrsCluster = lens _mcrsCluster (\ s a -> s{_mcrsCluster = a});@@ -309,4 +311,4 @@ mcrsResponseStatus :: Lens' ModifyClusterResponse Int mcrsResponseStatus = lens _mcrsResponseStatus (\ s a -> s{_mcrsResponseStatus = a}); -instance NFData ModifyClusterResponse+instance NFData ModifyClusterResponse where
gen/Network/AWS/Redshift/ModifyClusterIAMRoles.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifyClusterIAMRoles--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , mcirrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,11 +54,12 @@ -- -- /See:/ 'modifyClusterIAMRoles' smart constructor. data ModifyClusterIAMRoles = ModifyClusterIAMRoles'-    { _mcirRemoveIAMRoles    :: !(Maybe [Text])-    , _mcirAddIAMRoles       :: !(Maybe [Text])-    , _mcirClusterIdentifier :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcirRemoveIAMRoles    :: !(Maybe [Text])+  , _mcirAddIAMRoles       :: !(Maybe [Text])+  , _mcirClusterIdentifier :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterIAMRoles' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     :: Text -- ^ 'mcirClusterIdentifier'     -> ModifyClusterIAMRoles modifyClusterIAMRoles pClusterIdentifier_ =-    ModifyClusterIAMRoles'-    { _mcirRemoveIAMRoles = Nothing-    , _mcirAddIAMRoles = Nothing-    , _mcirClusterIdentifier = pClusterIdentifier_-    }+  ModifyClusterIAMRoles'+  { _mcirRemoveIAMRoles = Nothing+  , _mcirAddIAMRoles = Nothing+  , _mcirClusterIdentifier = pClusterIdentifier_+  } + -- | Zero or more IAM roles in ARN format to disassociate from the cluster. You can disassociate up to 10 IAM roles from a single cluster in a single request. mcirRemoveIAMRoles :: Lens' ModifyClusterIAMRoles [Text] mcirRemoveIAMRoles = lens _mcirRemoveIAMRoles (\ s a -> s{_mcirRemoveIAMRoles = a}) . _Default . _Coerce;@@ -100,9 +102,9 @@                  ModifyClusterIAMRolesResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable ModifyClusterIAMRoles+instance Hashable ModifyClusterIAMRoles where -instance NFData ModifyClusterIAMRoles+instance NFData ModifyClusterIAMRoles where  instance ToHeaders ModifyClusterIAMRoles where         toHeaders = const mempty@@ -125,10 +127,11 @@  -- | /See:/ 'modifyClusterIAMRolesResponse' smart constructor. data ModifyClusterIAMRolesResponse = ModifyClusterIAMRolesResponse'-    { _mcirrsCluster        :: !(Maybe Cluster)-    , _mcirrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcirrsCluster        :: !(Maybe Cluster)+  , _mcirrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterIAMRolesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +143,10 @@     :: Int -- ^ 'mcirrsResponseStatus'     -> ModifyClusterIAMRolesResponse modifyClusterIAMRolesResponse pResponseStatus_ =-    ModifyClusterIAMRolesResponse'-    { _mcirrsCluster = Nothing-    , _mcirrsResponseStatus = pResponseStatus_-    }+  ModifyClusterIAMRolesResponse'+  {_mcirrsCluster = Nothing, _mcirrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mcirrsCluster :: Lens' ModifyClusterIAMRolesResponse (Maybe Cluster) mcirrsCluster = lens _mcirrsCluster (\ s a -> s{_mcirrsCluster = a});@@ -153,4 +155,4 @@ mcirrsResponseStatus :: Lens' ModifyClusterIAMRolesResponse Int mcirrsResponseStatus = lens _mcirrsResponseStatus (\ s a -> s{_mcirrsResponseStatus = a}); -instance NFData ModifyClusterIAMRolesResponse+instance NFData ModifyClusterIAMRolesResponse where
gen/Network/AWS/Redshift/ModifyClusterParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifyClusterParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , cpgnmParameterGroupName     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,10 +53,11 @@ -- -- /See:/ 'modifyClusterParameterGroup' smart constructor. data ModifyClusterParameterGroup = ModifyClusterParameterGroup'-    { _mcpgParameterGroupName :: !Text-    , _mcpgParameters         :: ![Parameter]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcpgParameterGroupName :: !Text+  , _mcpgParameters         :: ![Parameter]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,10 @@     :: Text -- ^ 'mcpgParameterGroupName'     -> ModifyClusterParameterGroup modifyClusterParameterGroup pParameterGroupName_ =-    ModifyClusterParameterGroup'-    { _mcpgParameterGroupName = pParameterGroupName_-    , _mcpgParameters = mempty-    }+  ModifyClusterParameterGroup'+  {_mcpgParameterGroupName = pParameterGroupName_, _mcpgParameters = mempty} + -- | The name of the parameter group to be modified. mcpgParameterGroupName :: Lens' ModifyClusterParameterGroup Text mcpgParameterGroupName = lens _mcpgParameterGroupName (\ s a -> s{_mcpgParameterGroupName = a});@@ -90,9 +90,9 @@               "ModifyClusterParameterGroupResult"               (\ s h x -> parseXML x) -instance Hashable ModifyClusterParameterGroup+instance Hashable ModifyClusterParameterGroup where -instance NFData ModifyClusterParameterGroup+instance NFData ModifyClusterParameterGroup where  instance ToHeaders ModifyClusterParameterGroup where         toHeaders = const mempty
gen/Network/AWS/Redshift/ModifyClusterSubnetGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifyClusterSubnetGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , mcsgrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -52,11 +52,12 @@ -- -- /See:/ 'modifyClusterSubnetGroup' smart constructor. data ModifyClusterSubnetGroup = ModifyClusterSubnetGroup'-    { _mcsgDescription            :: !(Maybe Text)-    , _mcsgClusterSubnetGroupName :: !Text-    , _mcsgSubnetIds              :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcsgDescription            :: !(Maybe Text)+  , _mcsgClusterSubnetGroupName :: !Text+  , _mcsgSubnetIds              :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterSubnetGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,13 @@     :: Text -- ^ 'mcsgClusterSubnetGroupName'     -> ModifyClusterSubnetGroup modifyClusterSubnetGroup pClusterSubnetGroupName_ =-    ModifyClusterSubnetGroup'-    { _mcsgDescription = Nothing-    , _mcsgClusterSubnetGroupName = pClusterSubnetGroupName_-    , _mcsgSubnetIds = mempty-    }+  ModifyClusterSubnetGroup'+  { _mcsgDescription = Nothing+  , _mcsgClusterSubnetGroupName = pClusterSubnetGroupName_+  , _mcsgSubnetIds = mempty+  } + -- | A text description of the subnet group to be modified. mcsgDescription :: Lens' ModifyClusterSubnetGroup (Maybe Text) mcsgDescription = lens _mcsgDescription (\ s a -> s{_mcsgDescription = a});@@ -98,9 +100,9 @@                  ModifyClusterSubnetGroupResponse' <$>                    (x .@? "ClusterSubnetGroup") <*> (pure (fromEnum s))) -instance Hashable ModifyClusterSubnetGroup+instance Hashable ModifyClusterSubnetGroup where -instance NFData ModifyClusterSubnetGroup+instance NFData ModifyClusterSubnetGroup where  instance ToHeaders ModifyClusterSubnetGroup where         toHeaders = const mempty@@ -122,10 +124,11 @@  -- | /See:/ 'modifyClusterSubnetGroupResponse' smart constructor. data ModifyClusterSubnetGroupResponse = ModifyClusterSubnetGroupResponse'-    { _mcsgrsClusterSubnetGroup :: !(Maybe ClusterSubnetGroup)-    , _mcsgrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mcsgrsClusterSubnetGroup :: !(Maybe ClusterSubnetGroup)+  , _mcsgrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyClusterSubnetGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -137,11 +140,12 @@     :: Int -- ^ 'mcsgrsResponseStatus'     -> ModifyClusterSubnetGroupResponse modifyClusterSubnetGroupResponse pResponseStatus_ =-    ModifyClusterSubnetGroupResponse'-    { _mcsgrsClusterSubnetGroup = Nothing-    , _mcsgrsResponseStatus = pResponseStatus_-    }+  ModifyClusterSubnetGroupResponse'+  { _mcsgrsClusterSubnetGroup = Nothing+  , _mcsgrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. mcsgrsClusterSubnetGroup :: Lens' ModifyClusterSubnetGroupResponse (Maybe ClusterSubnetGroup) mcsgrsClusterSubnetGroup = lens _mcsgrsClusterSubnetGroup (\ s a -> s{_mcsgrsClusterSubnetGroup = a});@@ -151,3 +155,4 @@ mcsgrsResponseStatus = lens _mcsgrsResponseStatus (\ s a -> s{_mcsgrsResponseStatus = a});  instance NFData ModifyClusterSubnetGroupResponse+         where
gen/Network/AWS/Redshift/ModifyEventSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifyEventSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , mesrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -56,15 +56,16 @@ -- -- /See:/ 'modifyEventSubscription' smart constructor. data ModifyEventSubscription = ModifyEventSubscription'-    { _mesSNSTopicARN      :: !(Maybe Text)-    , _mesEnabled          :: !(Maybe Bool)-    , _mesSourceType       :: !(Maybe Text)-    , _mesSeverity         :: !(Maybe Text)-    , _mesEventCategories  :: !(Maybe [Text])-    , _mesSourceIds        :: !(Maybe [Text])-    , _mesSubscriptionName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mesSNSTopicARN      :: !(Maybe Text)+  , _mesEnabled          :: !(Maybe Bool)+  , _mesSourceType       :: !(Maybe Text)+  , _mesSeverity         :: !(Maybe Text)+  , _mesEventCategories  :: !(Maybe [Text])+  , _mesSourceIds        :: !(Maybe [Text])+  , _mesSubscriptionName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyEventSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,16 +87,17 @@     :: Text -- ^ 'mesSubscriptionName'     -> ModifyEventSubscription modifyEventSubscription pSubscriptionName_ =-    ModifyEventSubscription'-    { _mesSNSTopicARN = Nothing-    , _mesEnabled = Nothing-    , _mesSourceType = Nothing-    , _mesSeverity = Nothing-    , _mesEventCategories = Nothing-    , _mesSourceIds = Nothing-    , _mesSubscriptionName = pSubscriptionName_-    }+  ModifyEventSubscription'+  { _mesSNSTopicARN = Nothing+  , _mesEnabled = Nothing+  , _mesSourceType = Nothing+  , _mesSeverity = Nothing+  , _mesEventCategories = Nothing+  , _mesSourceIds = Nothing+  , _mesSubscriptionName = pSubscriptionName_+  } + -- | The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification subscription. mesSNSTopicARN :: Lens' ModifyEventSubscription (Maybe Text) mesSNSTopicARN = lens _mesSNSTopicARN (\ s a -> s{_mesSNSTopicARN = a});@@ -134,9 +136,9 @@                  ModifyEventSubscriptionResponse' <$>                    (x .@? "EventSubscription") <*> (pure (fromEnum s))) -instance Hashable ModifyEventSubscription+instance Hashable ModifyEventSubscription where -instance NFData ModifyEventSubscription+instance NFData ModifyEventSubscription where  instance ToHeaders ModifyEventSubscription where         toHeaders = const mempty@@ -164,10 +166,11 @@  -- | /See:/ 'modifyEventSubscriptionResponse' smart constructor. data ModifyEventSubscriptionResponse = ModifyEventSubscriptionResponse'-    { _mesrsEventSubscription :: !(Maybe EventSubscription)-    , _mesrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mesrsEventSubscription :: !(Maybe EventSubscription)+  , _mesrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyEventSubscriptionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -179,11 +182,10 @@     :: Int -- ^ 'mesrsResponseStatus'     -> ModifyEventSubscriptionResponse modifyEventSubscriptionResponse pResponseStatus_ =-    ModifyEventSubscriptionResponse'-    { _mesrsEventSubscription = Nothing-    , _mesrsResponseStatus = pResponseStatus_-    }+  ModifyEventSubscriptionResponse'+  {_mesrsEventSubscription = Nothing, _mesrsResponseStatus = pResponseStatus_} + -- | Undocumented member. mesrsEventSubscription :: Lens' ModifyEventSubscriptionResponse (Maybe EventSubscription) mesrsEventSubscription = lens _mesrsEventSubscription (\ s a -> s{_mesrsEventSubscription = a});@@ -192,4 +194,4 @@ mesrsResponseStatus :: Lens' ModifyEventSubscriptionResponse Int mesrsResponseStatus = lens _mesrsResponseStatus (\ s a -> s{_mesrsResponseStatus = a}); -instance NFData ModifyEventSubscriptionResponse+instance NFData ModifyEventSubscriptionResponse where
gen/Network/AWS/Redshift/ModifySnapshotCopyRetentionPeriod.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , mscrprsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -51,10 +51,11 @@ -- -- /See:/ 'modifySnapshotCopyRetentionPeriod' smart constructor. data ModifySnapshotCopyRetentionPeriod = ModifySnapshotCopyRetentionPeriod'-    { _mscrpClusterIdentifier :: !Text-    , _mscrpRetentionPeriod   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mscrpClusterIdentifier :: !Text+  , _mscrpRetentionPeriod   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySnapshotCopyRetentionPeriod' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,12 @@     -> Int -- ^ 'mscrpRetentionPeriod'     -> ModifySnapshotCopyRetentionPeriod modifySnapshotCopyRetentionPeriod pClusterIdentifier_ pRetentionPeriod_ =-    ModifySnapshotCopyRetentionPeriod'-    { _mscrpClusterIdentifier = pClusterIdentifier_-    , _mscrpRetentionPeriod = pRetentionPeriod_-    }+  ModifySnapshotCopyRetentionPeriod'+  { _mscrpClusterIdentifier = pClusterIdentifier_+  , _mscrpRetentionPeriod = pRetentionPeriod_+  } + -- | 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. mscrpClusterIdentifier :: Lens' ModifySnapshotCopyRetentionPeriod Text mscrpClusterIdentifier = lens _mscrpClusterIdentifier (\ s a -> s{_mscrpClusterIdentifier = a});@@ -93,8 +95,10 @@                    (x .@? "Cluster") <*> (pure (fromEnum s)))  instance Hashable ModifySnapshotCopyRetentionPeriod+         where  instance NFData ModifySnapshotCopyRetentionPeriod+         where  instance ToHeaders ModifySnapshotCopyRetentionPeriod          where@@ -116,10 +120,11 @@  -- | /See:/ 'modifySnapshotCopyRetentionPeriodResponse' smart constructor. data ModifySnapshotCopyRetentionPeriodResponse = ModifySnapshotCopyRetentionPeriodResponse'-    { _mscrprsCluster        :: !(Maybe Cluster)-    , _mscrprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mscrprsCluster        :: !(Maybe Cluster)+  , _mscrprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySnapshotCopyRetentionPeriodResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -131,11 +136,10 @@     :: Int -- ^ 'mscrprsResponseStatus'     -> ModifySnapshotCopyRetentionPeriodResponse modifySnapshotCopyRetentionPeriodResponse pResponseStatus_ =-    ModifySnapshotCopyRetentionPeriodResponse'-    { _mscrprsCluster = Nothing-    , _mscrprsResponseStatus = pResponseStatus_-    }+  ModifySnapshotCopyRetentionPeriodResponse'+  {_mscrprsCluster = Nothing, _mscrprsResponseStatus = pResponseStatus_} + -- | Undocumented member. mscrprsCluster :: Lens' ModifySnapshotCopyRetentionPeriodResponse (Maybe Cluster) mscrprsCluster = lens _mscrprsCluster (\ s a -> s{_mscrprsCluster = a});@@ -145,4 +149,5 @@ mscrprsResponseStatus = lens _mscrprsResponseStatus (\ s a -> s{_mscrprsResponseStatus = a});  instance NFData-         ModifySnapshotCopyRetentionPeriodResponse+           ModifySnapshotCopyRetentionPeriodResponse+         where
gen/Network/AWS/Redshift/PurchaseReservedNodeOffering.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.PurchaseReservedNodeOffering--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , prnorsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,10 +53,11 @@ -- -- /See:/ 'purchaseReservedNodeOffering' smart constructor. data PurchaseReservedNodeOffering = PurchaseReservedNodeOffering'-    { _prnoNodeCount              :: !(Maybe Int)-    , _prnoReservedNodeOfferingId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _prnoNodeCount              :: !(Maybe Int)+  , _prnoReservedNodeOfferingId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedNodeOffering' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,12 @@     :: Text -- ^ 'prnoReservedNodeOfferingId'     -> PurchaseReservedNodeOffering purchaseReservedNodeOffering pReservedNodeOfferingId_ =-    PurchaseReservedNodeOffering'-    { _prnoNodeCount = Nothing-    , _prnoReservedNodeOfferingId = pReservedNodeOfferingId_-    }+  PurchaseReservedNodeOffering'+  { _prnoNodeCount = Nothing+  , _prnoReservedNodeOfferingId = pReservedNodeOfferingId_+  } + -- | The number of reserved nodes that you want to purchase. Default: @1@ prnoNodeCount :: Lens' PurchaseReservedNodeOffering (Maybe Int) prnoNodeCount = lens _prnoNodeCount (\ s a -> s{_prnoNodeCount = a});@@ -93,9 +95,9 @@                  PurchaseReservedNodeOfferingResponse' <$>                    (x .@? "ReservedNode") <*> (pure (fromEnum s))) -instance Hashable PurchaseReservedNodeOffering+instance Hashable PurchaseReservedNodeOffering where -instance NFData PurchaseReservedNodeOffering+instance NFData PurchaseReservedNodeOffering where  instance ToHeaders PurchaseReservedNodeOffering where         toHeaders = const mempty@@ -115,10 +117,11 @@  -- | /See:/ 'purchaseReservedNodeOfferingResponse' smart constructor. data PurchaseReservedNodeOfferingResponse = PurchaseReservedNodeOfferingResponse'-    { _prnorsReservedNode   :: !(Maybe ReservedNode)-    , _prnorsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _prnorsReservedNode   :: !(Maybe ReservedNode)+  , _prnorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedNodeOfferingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +133,10 @@     :: Int -- ^ 'prnorsResponseStatus'     -> PurchaseReservedNodeOfferingResponse purchaseReservedNodeOfferingResponse pResponseStatus_ =-    PurchaseReservedNodeOfferingResponse'-    { _prnorsReservedNode = Nothing-    , _prnorsResponseStatus = pResponseStatus_-    }+  PurchaseReservedNodeOfferingResponse'+  {_prnorsReservedNode = Nothing, _prnorsResponseStatus = pResponseStatus_} + -- | Undocumented member. prnorsReservedNode :: Lens' PurchaseReservedNodeOfferingResponse (Maybe ReservedNode) prnorsReservedNode = lens _prnorsReservedNode (\ s a -> s{_prnorsReservedNode = a});@@ -144,3 +146,4 @@ prnorsResponseStatus = lens _prnorsResponseStatus (\ s a -> s{_prnorsResponseStatus = a});  instance NFData PurchaseReservedNodeOfferingResponse+         where
gen/Network/AWS/Redshift/RebootCluster.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RebootCluster--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , rcrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -50,9 +50,10 @@ -- -- /See:/ 'rebootCluster' smart constructor. newtype RebootCluster = RebootCluster'-    { _rcClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,9 @@     :: Text -- ^ 'rcClusterIdentifier'     -> RebootCluster rebootCluster pClusterIdentifier_ =-    RebootCluster'-    { _rcClusterIdentifier = pClusterIdentifier_-    }+  RebootCluster' {_rcClusterIdentifier = pClusterIdentifier_} + -- | The cluster identifier. rcClusterIdentifier :: Lens' RebootCluster Text rcClusterIdentifier = lens _rcClusterIdentifier (\ s a -> s{_rcClusterIdentifier = a});@@ -79,9 +79,9 @@                  RebootClusterResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable RebootCluster+instance Hashable RebootCluster where -instance NFData RebootCluster+instance NFData RebootCluster where  instance ToHeaders RebootCluster where         toHeaders = const mempty@@ -98,10 +98,11 @@  -- | /See:/ 'rebootClusterResponse' smart constructor. data RebootClusterResponse = RebootClusterResponse'-    { _rcrsCluster        :: !(Maybe Cluster)-    , _rcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcrsCluster        :: !(Maybe Cluster)+  , _rcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -113,11 +114,10 @@     :: Int -- ^ 'rcrsResponseStatus'     -> RebootClusterResponse rebootClusterResponse pResponseStatus_ =-    RebootClusterResponse'-    { _rcrsCluster = Nothing-    , _rcrsResponseStatus = pResponseStatus_-    }+  RebootClusterResponse'+  {_rcrsCluster = Nothing, _rcrsResponseStatus = pResponseStatus_} + -- | Undocumented member. rcrsCluster :: Lens' RebootClusterResponse (Maybe Cluster) rcrsCluster = lens _rcrsCluster (\ s a -> s{_rcrsCluster = a});@@ -126,4 +126,4 @@ rcrsResponseStatus :: Lens' RebootClusterResponse Int rcrsResponseStatus = lens _rcrsResponseStatus (\ s a -> s{_rcrsResponseStatus = a}); -instance NFData RebootClusterResponse+instance NFData RebootClusterResponse where
gen/Network/AWS/Redshift/ResetClusterParameterGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.ResetClusterParameterGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , cpgnmParameterGroupName     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -52,11 +52,12 @@ -- -- /See:/ 'resetClusterParameterGroup' smart constructor. data ResetClusterParameterGroup = ResetClusterParameterGroup'-    { _rcpgResetAllParameters :: !(Maybe Bool)-    , _rcpgParameters         :: !(Maybe [Parameter])-    , _rcpgParameterGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcpgResetAllParameters :: !(Maybe Bool)+  , _rcpgParameters         :: !(Maybe [Parameter])+  , _rcpgParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetClusterParameterGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,13 @@     :: Text -- ^ 'rcpgParameterGroupName'     -> ResetClusterParameterGroup resetClusterParameterGroup pParameterGroupName_ =-    ResetClusterParameterGroup'-    { _rcpgResetAllParameters = Nothing-    , _rcpgParameters = Nothing-    , _rcpgParameterGroupName = pParameterGroupName_-    }+  ResetClusterParameterGroup'+  { _rcpgResetAllParameters = Nothing+  , _rcpgParameters = Nothing+  , _rcpgParameterGroupName = pParameterGroupName_+  } + -- | If @true@ , all parameters in the specified parameter group will be reset to their default values.  Default: @true@ rcpgResetAllParameters :: Lens' ResetClusterParameterGroup (Maybe Bool) rcpgResetAllParameters = lens _rcpgResetAllParameters (\ s a -> s{_rcpgResetAllParameters = a});@@ -97,9 +99,9 @@               "ResetClusterParameterGroupResult"               (\ s h x -> parseXML x) -instance Hashable ResetClusterParameterGroup+instance Hashable ResetClusterParameterGroup where -instance NFData ResetClusterParameterGroup+instance NFData ResetClusterParameterGroup where  instance ToHeaders ResetClusterParameterGroup where         toHeaders = const mempty
gen/Network/AWS/Redshift/RestoreFromClusterSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RestoreFromClusterSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -62,12 +62,12 @@     , rfcsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -75,30 +75,31 @@ -- -- /See:/ 'restoreFromClusterSnapshot' smart constructor. data RestoreFromClusterSnapshot = RestoreFromClusterSnapshot'-    { _rfcsEnhancedVPCRouting               :: !(Maybe Bool)-    , _rfcsAdditionalInfo                   :: !(Maybe Text)-    , _rfcsPubliclyAccessible               :: !(Maybe Bool)-    , _rfcsSnapshotClusterIdentifier        :: !(Maybe Text)-    , _rfcsHSMConfigurationIdentifier       :: !(Maybe Text)-    , _rfcsClusterSecurityGroups            :: !(Maybe [Text])-    , _rfcsAutomatedSnapshotRetentionPeriod :: !(Maybe Int)-    , _rfcsClusterSubnetGroupName           :: !(Maybe Text)-    , _rfcsHSMClientCertificateIdentifier   :: !(Maybe Text)-    , _rfcsElasticIP                        :: !(Maybe Text)-    , _rfcsPreferredMaintenanceWindow       :: !(Maybe Text)-    , _rfcsKMSKeyId                         :: !(Maybe Text)-    , _rfcsAvailabilityZone                 :: !(Maybe Text)-    , _rfcsVPCSecurityGroupIds              :: !(Maybe [Text])-    , _rfcsIAMRoles                         :: !(Maybe [Text])-    , _rfcsOwnerAccount                     :: !(Maybe Text)-    , _rfcsNodeType                         :: !(Maybe Text)-    , _rfcsAllowVersionUpgrade              :: !(Maybe Bool)-    , _rfcsClusterParameterGroupName        :: !(Maybe Text)-    , _rfcsPort                             :: !(Maybe Int)-    , _rfcsClusterIdentifier                :: !Text-    , _rfcsSnapshotIdentifier               :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rfcsEnhancedVPCRouting               :: !(Maybe Bool)+  , _rfcsAdditionalInfo                   :: !(Maybe Text)+  , _rfcsPubliclyAccessible               :: !(Maybe Bool)+  , _rfcsSnapshotClusterIdentifier        :: !(Maybe Text)+  , _rfcsHSMConfigurationIdentifier       :: !(Maybe Text)+  , _rfcsClusterSecurityGroups            :: !(Maybe [Text])+  , _rfcsAutomatedSnapshotRetentionPeriod :: !(Maybe Int)+  , _rfcsClusterSubnetGroupName           :: !(Maybe Text)+  , _rfcsHSMClientCertificateIdentifier   :: !(Maybe Text)+  , _rfcsElasticIP                        :: !(Maybe Text)+  , _rfcsPreferredMaintenanceWindow       :: !(Maybe Text)+  , _rfcsKMSKeyId                         :: !(Maybe Text)+  , _rfcsAvailabilityZone                 :: !(Maybe Text)+  , _rfcsVPCSecurityGroupIds              :: !(Maybe [Text])+  , _rfcsIAMRoles                         :: !(Maybe [Text])+  , _rfcsOwnerAccount                     :: !(Maybe Text)+  , _rfcsNodeType                         :: !(Maybe Text)+  , _rfcsAllowVersionUpgrade              :: !(Maybe Bool)+  , _rfcsClusterParameterGroupName        :: !(Maybe Text)+  , _rfcsPort                             :: !(Maybe Int)+  , _rfcsClusterIdentifier                :: !Text+  , _rfcsSnapshotIdentifier               :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreFromClusterSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -151,31 +152,32 @@     -> Text -- ^ 'rfcsSnapshotIdentifier'     -> RestoreFromClusterSnapshot restoreFromClusterSnapshot pClusterIdentifier_ pSnapshotIdentifier_ =-    RestoreFromClusterSnapshot'-    { _rfcsEnhancedVPCRouting = Nothing-    , _rfcsAdditionalInfo = Nothing-    , _rfcsPubliclyAccessible = Nothing-    , _rfcsSnapshotClusterIdentifier = Nothing-    , _rfcsHSMConfigurationIdentifier = Nothing-    , _rfcsClusterSecurityGroups = Nothing-    , _rfcsAutomatedSnapshotRetentionPeriod = Nothing-    , _rfcsClusterSubnetGroupName = Nothing-    , _rfcsHSMClientCertificateIdentifier = Nothing-    , _rfcsElasticIP = Nothing-    , _rfcsPreferredMaintenanceWindow = Nothing-    , _rfcsKMSKeyId = Nothing-    , _rfcsAvailabilityZone = Nothing-    , _rfcsVPCSecurityGroupIds = Nothing-    , _rfcsIAMRoles = Nothing-    , _rfcsOwnerAccount = Nothing-    , _rfcsNodeType = Nothing-    , _rfcsAllowVersionUpgrade = Nothing-    , _rfcsClusterParameterGroupName = Nothing-    , _rfcsPort = Nothing-    , _rfcsClusterIdentifier = pClusterIdentifier_-    , _rfcsSnapshotIdentifier = pSnapshotIdentifier_-    }+  RestoreFromClusterSnapshot'+  { _rfcsEnhancedVPCRouting = Nothing+  , _rfcsAdditionalInfo = Nothing+  , _rfcsPubliclyAccessible = Nothing+  , _rfcsSnapshotClusterIdentifier = Nothing+  , _rfcsHSMConfigurationIdentifier = Nothing+  , _rfcsClusterSecurityGroups = Nothing+  , _rfcsAutomatedSnapshotRetentionPeriod = Nothing+  , _rfcsClusterSubnetGroupName = Nothing+  , _rfcsHSMClientCertificateIdentifier = Nothing+  , _rfcsElasticIP = Nothing+  , _rfcsPreferredMaintenanceWindow = Nothing+  , _rfcsKMSKeyId = Nothing+  , _rfcsAvailabilityZone = Nothing+  , _rfcsVPCSecurityGroupIds = Nothing+  , _rfcsIAMRoles = Nothing+  , _rfcsOwnerAccount = Nothing+  , _rfcsNodeType = Nothing+  , _rfcsAllowVersionUpgrade = Nothing+  , _rfcsClusterParameterGroupName = Nothing+  , _rfcsPort = Nothing+  , _rfcsClusterIdentifier = pClusterIdentifier_+  , _rfcsSnapshotIdentifier = pSnapshotIdentifier_+  } + -- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false rfcsEnhancedVPCRouting :: Lens' RestoreFromClusterSnapshot (Maybe Bool) rfcsEnhancedVPCRouting = lens _rfcsEnhancedVPCRouting (\ s a -> s{_rfcsEnhancedVPCRouting = a});@@ -275,9 +277,9 @@                  RestoreFromClusterSnapshotResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable RestoreFromClusterSnapshot+instance Hashable RestoreFromClusterSnapshot where -instance NFData RestoreFromClusterSnapshot+instance NFData RestoreFromClusterSnapshot where  instance ToHeaders RestoreFromClusterSnapshot where         toHeaders = const mempty@@ -330,10 +332,11 @@  -- | /See:/ 'restoreFromClusterSnapshotResponse' smart constructor. data RestoreFromClusterSnapshotResponse = RestoreFromClusterSnapshotResponse'-    { _rfcsrsCluster        :: !(Maybe Cluster)-    , _rfcsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rfcsrsCluster        :: !(Maybe Cluster)+  , _rfcsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreFromClusterSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -345,11 +348,10 @@     :: Int -- ^ 'rfcsrsResponseStatus'     -> RestoreFromClusterSnapshotResponse restoreFromClusterSnapshotResponse pResponseStatus_ =-    RestoreFromClusterSnapshotResponse'-    { _rfcsrsCluster = Nothing-    , _rfcsrsResponseStatus = pResponseStatus_-    }+  RestoreFromClusterSnapshotResponse'+  {_rfcsrsCluster = Nothing, _rfcsrsResponseStatus = pResponseStatus_} + -- | Undocumented member. rfcsrsCluster :: Lens' RestoreFromClusterSnapshotResponse (Maybe Cluster) rfcsrsCluster = lens _rfcsrsCluster (\ s a -> s{_rfcsrsCluster = a});@@ -359,3 +361,4 @@ rfcsrsResponseStatus = lens _rfcsrsResponseStatus (\ s a -> s{_rfcsrsResponseStatus = a});  instance NFData RestoreFromClusterSnapshotResponse+         where
gen/Network/AWS/Redshift/RestoreTableFromClusterSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RestoreTableFromClusterSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,12 +46,12 @@     , rtfcsrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -59,16 +59,17 @@ -- -- /See:/ 'restoreTableFromClusterSnapshot' smart constructor. data RestoreTableFromClusterSnapshot = RestoreTableFromClusterSnapshot'-    { _rtfcsTargetSchemaName   :: !(Maybe Text)-    , _rtfcsTargetDatabaseName :: !(Maybe Text)-    , _rtfcsSourceSchemaName   :: !(Maybe Text)-    , _rtfcsClusterIdentifier  :: !Text-    , _rtfcsSnapshotIdentifier :: !Text-    , _rtfcsSourceDatabaseName :: !Text-    , _rtfcsSourceTableName    :: !Text-    , _rtfcsNewTableName       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rtfcsTargetSchemaName   :: !(Maybe Text)+  , _rtfcsTargetDatabaseName :: !(Maybe Text)+  , _rtfcsSourceSchemaName   :: !(Maybe Text)+  , _rtfcsClusterIdentifier  :: !Text+  , _rtfcsSnapshotIdentifier :: !Text+  , _rtfcsSourceDatabaseName :: !Text+  , _rtfcsSourceTableName    :: !Text+  , _rtfcsNewTableName       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreTableFromClusterSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -96,17 +97,18 @@     -> Text -- ^ 'rtfcsNewTableName'     -> RestoreTableFromClusterSnapshot restoreTableFromClusterSnapshot pClusterIdentifier_ pSnapshotIdentifier_ pSourceDatabaseName_ pSourceTableName_ pNewTableName_ =-    RestoreTableFromClusterSnapshot'-    { _rtfcsTargetSchemaName = Nothing-    , _rtfcsTargetDatabaseName = Nothing-    , _rtfcsSourceSchemaName = Nothing-    , _rtfcsClusterIdentifier = pClusterIdentifier_-    , _rtfcsSnapshotIdentifier = pSnapshotIdentifier_-    , _rtfcsSourceDatabaseName = pSourceDatabaseName_-    , _rtfcsSourceTableName = pSourceTableName_-    , _rtfcsNewTableName = pNewTableName_-    }+  RestoreTableFromClusterSnapshot'+  { _rtfcsTargetSchemaName = Nothing+  , _rtfcsTargetDatabaseName = Nothing+  , _rtfcsSourceSchemaName = Nothing+  , _rtfcsClusterIdentifier = pClusterIdentifier_+  , _rtfcsSnapshotIdentifier = pSnapshotIdentifier_+  , _rtfcsSourceDatabaseName = pSourceDatabaseName_+  , _rtfcsSourceTableName = pSourceTableName_+  , _rtfcsNewTableName = pNewTableName_+  } + -- | The name of the schema to restore the table to. rtfcsTargetSchemaName :: Lens' RestoreTableFromClusterSnapshot (Maybe Text) rtfcsTargetSchemaName = lens _rtfcsTargetSchemaName (\ s a -> s{_rtfcsTargetSchemaName = a});@@ -152,8 +154,9 @@                    (x .@? "TableRestoreStatus") <*> (pure (fromEnum s)))  instance Hashable RestoreTableFromClusterSnapshot+         where -instance NFData RestoreTableFromClusterSnapshot+instance NFData RestoreTableFromClusterSnapshot where  instance ToHeaders RestoreTableFromClusterSnapshot          where@@ -180,10 +183,11 @@  -- | /See:/ 'restoreTableFromClusterSnapshotResponse' smart constructor. data RestoreTableFromClusterSnapshotResponse = RestoreTableFromClusterSnapshotResponse'-    { _rtfcsrsTableRestoreStatus :: !(Maybe TableRestoreStatus)-    , _rtfcsrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rtfcsrsTableRestoreStatus :: !(Maybe TableRestoreStatus)+  , _rtfcsrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreTableFromClusterSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -195,11 +199,12 @@     :: Int -- ^ 'rtfcsrsResponseStatus'     -> RestoreTableFromClusterSnapshotResponse restoreTableFromClusterSnapshotResponse pResponseStatus_ =-    RestoreTableFromClusterSnapshotResponse'-    { _rtfcsrsTableRestoreStatus = Nothing-    , _rtfcsrsResponseStatus = pResponseStatus_-    }+  RestoreTableFromClusterSnapshotResponse'+  { _rtfcsrsTableRestoreStatus = Nothing+  , _rtfcsrsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. rtfcsrsTableRestoreStatus :: Lens' RestoreTableFromClusterSnapshotResponse (Maybe TableRestoreStatus) rtfcsrsTableRestoreStatus = lens _rtfcsrsTableRestoreStatus (\ s a -> s{_rtfcsrsTableRestoreStatus = a});@@ -209,4 +214,5 @@ rtfcsrsResponseStatus = lens _rtfcsrsResponseStatus (\ s a -> s{_rtfcsrsResponseStatus = a});  instance NFData-         RestoreTableFromClusterSnapshotResponse+           RestoreTableFromClusterSnapshotResponse+         where
gen/Network/AWS/Redshift/RevokeClusterSecurityGroupIngress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RevokeClusterSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , rcsgirsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -53,12 +53,13 @@ -- -- /See:/ 'revokeClusterSecurityGroupIngress' smart constructor. data RevokeClusterSecurityGroupIngress = RevokeClusterSecurityGroupIngress'-    { _rcsgiEC2SecurityGroupOwnerId  :: !(Maybe Text)-    , _rcsgiEC2SecurityGroupName     :: !(Maybe Text)-    , _rcsgiCIdRIP                   :: !(Maybe Text)-    , _rcsgiClusterSecurityGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcsgiEC2SecurityGroupOwnerId  :: !(Maybe Text)+  , _rcsgiEC2SecurityGroupName     :: !(Maybe Text)+  , _rcsgiCIdRIP                   :: !(Maybe Text)+  , _rcsgiClusterSecurityGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeClusterSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,13 +75,14 @@     :: Text -- ^ 'rcsgiClusterSecurityGroupName'     -> RevokeClusterSecurityGroupIngress revokeClusterSecurityGroupIngress pClusterSecurityGroupName_ =-    RevokeClusterSecurityGroupIngress'-    { _rcsgiEC2SecurityGroupOwnerId = Nothing-    , _rcsgiEC2SecurityGroupName = Nothing-    , _rcsgiCIdRIP = Nothing-    , _rcsgiClusterSecurityGroupName = pClusterSecurityGroupName_-    }+  RevokeClusterSecurityGroupIngress'+  { _rcsgiEC2SecurityGroupOwnerId = Nothing+  , _rcsgiEC2SecurityGroupName = Nothing+  , _rcsgiCIdRIP = Nothing+  , _rcsgiClusterSecurityGroupName = pClusterSecurityGroupName_+  } + -- | 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@ rcsgiEC2SecurityGroupOwnerId :: Lens' RevokeClusterSecurityGroupIngress (Maybe Text) rcsgiEC2SecurityGroupOwnerId = lens _rcsgiEC2SecurityGroupOwnerId (\ s a -> s{_rcsgiEC2SecurityGroupOwnerId = a});@@ -111,8 +113,10 @@                      (pure (fromEnum s)))  instance Hashable RevokeClusterSecurityGroupIngress+         where  instance NFData RevokeClusterSecurityGroupIngress+         where  instance ToHeaders RevokeClusterSecurityGroupIngress          where@@ -138,10 +142,11 @@  -- | /See:/ 'revokeClusterSecurityGroupIngressResponse' smart constructor. data RevokeClusterSecurityGroupIngressResponse = RevokeClusterSecurityGroupIngressResponse'-    { _rcsgirsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)-    , _rcsgirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rcsgirsClusterSecurityGroup :: !(Maybe ClusterSecurityGroup)+  , _rcsgirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeClusterSecurityGroupIngressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,11 +158,12 @@     :: Int -- ^ 'rcsgirsResponseStatus'     -> RevokeClusterSecurityGroupIngressResponse revokeClusterSecurityGroupIngressResponse pResponseStatus_ =-    RevokeClusterSecurityGroupIngressResponse'-    { _rcsgirsClusterSecurityGroup = Nothing-    , _rcsgirsResponseStatus = pResponseStatus_-    }+  RevokeClusterSecurityGroupIngressResponse'+  { _rcsgirsClusterSecurityGroup = Nothing+  , _rcsgirsResponseStatus = pResponseStatus_+  } + -- | Undocumented member. rcsgirsClusterSecurityGroup :: Lens' RevokeClusterSecurityGroupIngressResponse (Maybe ClusterSecurityGroup) rcsgirsClusterSecurityGroup = lens _rcsgirsClusterSecurityGroup (\ s a -> s{_rcsgirsClusterSecurityGroup = a});@@ -167,4 +173,5 @@ rcsgirsResponseStatus = lens _rcsgirsResponseStatus (\ s a -> s{_rcsgirsResponseStatus = a});  instance NFData-         RevokeClusterSecurityGroupIngressResponse+           RevokeClusterSecurityGroupIngressResponse+         where
gen/Network/AWS/Redshift/RevokeSnapshotAccess.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RevokeSnapshotAccess--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , rsarsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -54,11 +54,12 @@ -- -- /See:/ 'revokeSnapshotAccess' smart constructor. data RevokeSnapshotAccess = RevokeSnapshotAccess'-    { _rsaSnapshotClusterIdentifier :: !(Maybe Text)-    , _rsaSnapshotIdentifier        :: !Text-    , _rsaAccountWithRestoreAccess  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsaSnapshotClusterIdentifier :: !(Maybe Text)+  , _rsaSnapshotIdentifier        :: !Text+  , _rsaAccountWithRestoreAccess  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSnapshotAccess' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     -> Text -- ^ 'rsaAccountWithRestoreAccess'     -> RevokeSnapshotAccess revokeSnapshotAccess pSnapshotIdentifier_ pAccountWithRestoreAccess_ =-    RevokeSnapshotAccess'-    { _rsaSnapshotClusterIdentifier = Nothing-    , _rsaSnapshotIdentifier = pSnapshotIdentifier_-    , _rsaAccountWithRestoreAccess = pAccountWithRestoreAccess_-    }+  RevokeSnapshotAccess'+  { _rsaSnapshotClusterIdentifier = Nothing+  , _rsaSnapshotIdentifier = pSnapshotIdentifier_+  , _rsaAccountWithRestoreAccess = pAccountWithRestoreAccess_+  } + -- | 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. rsaSnapshotClusterIdentifier :: Lens' RevokeSnapshotAccess (Maybe Text) rsaSnapshotClusterIdentifier = lens _rsaSnapshotClusterIdentifier (\ s a -> s{_rsaSnapshotClusterIdentifier = a});@@ -101,9 +103,9 @@                  RevokeSnapshotAccessResponse' <$>                    (x .@? "Snapshot") <*> (pure (fromEnum s))) -instance Hashable RevokeSnapshotAccess+instance Hashable RevokeSnapshotAccess where -instance NFData RevokeSnapshotAccess+instance NFData RevokeSnapshotAccess where  instance ToHeaders RevokeSnapshotAccess where         toHeaders = const mempty@@ -124,10 +126,11 @@  -- | /See:/ 'revokeSnapshotAccessResponse' smart constructor. data RevokeSnapshotAccessResponse = RevokeSnapshotAccessResponse'-    { _rsarsSnapshot       :: !(Maybe Snapshot)-    , _rsarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsarsSnapshot       :: !(Maybe Snapshot)+  , _rsarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSnapshotAccessResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,11 +142,10 @@     :: Int -- ^ 'rsarsResponseStatus'     -> RevokeSnapshotAccessResponse revokeSnapshotAccessResponse pResponseStatus_ =-    RevokeSnapshotAccessResponse'-    { _rsarsSnapshot = Nothing-    , _rsarsResponseStatus = pResponseStatus_-    }+  RevokeSnapshotAccessResponse'+  {_rsarsSnapshot = Nothing, _rsarsResponseStatus = pResponseStatus_} + -- | Undocumented member. rsarsSnapshot :: Lens' RevokeSnapshotAccessResponse (Maybe Snapshot) rsarsSnapshot = lens _rsarsSnapshot (\ s a -> s{_rsarsSnapshot = a});@@ -152,4 +154,4 @@ rsarsResponseStatus :: Lens' RevokeSnapshotAccessResponse Int rsarsResponseStatus = lens _rsarsResponseStatus (\ s a -> s{_rsarsResponseStatus = a}); -instance NFData RevokeSnapshotAccessResponse+instance NFData RevokeSnapshotAccessResponse where
gen/Network/AWS/Redshift/RotateEncryptionKey.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.Redshift.RotateEncryptionKey--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , rekrsResponseStatus     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Types-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Types+import Network.AWS.Redshift.Types.Product+import Network.AWS.Request+import Network.AWS.Response  -- | --@@ -50,9 +50,10 @@ -- -- /See:/ 'rotateEncryptionKey' smart constructor. newtype RotateEncryptionKey = RotateEncryptionKey'-    { _rekClusterIdentifier :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rekClusterIdentifier :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RotateEncryptionKey' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,9 @@     :: Text -- ^ 'rekClusterIdentifier'     -> RotateEncryptionKey rotateEncryptionKey pClusterIdentifier_ =-    RotateEncryptionKey'-    { _rekClusterIdentifier = pClusterIdentifier_-    }+  RotateEncryptionKey' {_rekClusterIdentifier = pClusterIdentifier_} + -- | 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. rekClusterIdentifier :: Lens' RotateEncryptionKey Text rekClusterIdentifier = lens _rekClusterIdentifier (\ s a -> s{_rekClusterIdentifier = a});@@ -80,9 +80,9 @@                  RotateEncryptionKeyResponse' <$>                    (x .@? "Cluster") <*> (pure (fromEnum s))) -instance Hashable RotateEncryptionKey+instance Hashable RotateEncryptionKey where -instance NFData RotateEncryptionKey+instance NFData RotateEncryptionKey where  instance ToHeaders RotateEncryptionKey where         toHeaders = const mempty@@ -99,10 +99,11 @@  -- | /See:/ 'rotateEncryptionKeyResponse' smart constructor. data RotateEncryptionKeyResponse = RotateEncryptionKeyResponse'-    { _rekrsCluster        :: !(Maybe Cluster)-    , _rekrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rekrsCluster        :: !(Maybe Cluster)+  , _rekrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RotateEncryptionKeyResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -114,11 +115,10 @@     :: Int -- ^ 'rekrsResponseStatus'     -> RotateEncryptionKeyResponse rotateEncryptionKeyResponse pResponseStatus_ =-    RotateEncryptionKeyResponse'-    { _rekrsCluster = Nothing-    , _rekrsResponseStatus = pResponseStatus_-    }+  RotateEncryptionKeyResponse'+  {_rekrsCluster = Nothing, _rekrsResponseStatus = pResponseStatus_} + -- | Undocumented member. rekrsCluster :: Lens' RotateEncryptionKeyResponse (Maybe Cluster) rekrsCluster = lens _rekrsCluster (\ s a -> s{_rekrsCluster = a});@@ -127,4 +127,4 @@ rekrsResponseStatus :: Lens' RotateEncryptionKeyResponse Int rekrsResponseStatus = lens _rekrsResponseStatus (\ s a -> s{_rekrsResponseStatus = a}); -instance NFData RotateEncryptionKeyResponse+instance NFData RotateEncryptionKeyResponse where
gen/Network/AWS/Redshift/Types.hs view
@@ -4,9 +4,9 @@  -- | -- Module      : Network.AWS.Redshift.Types--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -59,6 +59,7 @@     , _ClusterSnapshotQuotaExceededFault     , _InsufficientClusterCapacityFault     , _SNSInvalidTopicFault+    , _DependentServiceUnavailableFault     , _UnsupportedOptionFault     , _SubscriptionAlreadyExistFault     , _InvalidVPCNetworkStateFault@@ -115,6 +116,7 @@     -- * AccountWithRestoreAccess     , AccountWithRestoreAccess     , accountWithRestoreAccess+    , awraAccountAlias     , awraAccountId      -- * AvailabilityZone@@ -509,39 +511,41 @@     , vsgmVPCSecurityGroupId     ) where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Internal-import           Network.AWS.Redshift.Types.Product-import           Network.AWS.Redshift.Types.Sum-import           Network.AWS.Sign.V4+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Internal+import Network.AWS.Redshift.Types.Product+import Network.AWS.Redshift.Types.Sum+import Network.AWS.Sign.V4  -- | API version @2012-12-01@ of the Amazon Redshift SDK configuration. redshift :: Service redshift =-    Service-    { _svcAbbrev = "Redshift"-    , _svcSigner = v4-    , _svcPrefix = "redshift"-    , _svcVersion = "2012-12-01"-    , _svcEndpoint = defaultEndpoint redshift-    , _svcTimeout = Just 70-    , _svcCheck = statusSuccess-    , _svcError = parseXMLError "Redshift"-    , _svcRetry = retry-    }+  Service+  { _svcAbbrev = "Redshift"+  , _svcSigner = v4+  , _svcPrefix = "redshift"+  , _svcVersion = "2012-12-01"+  , _svcEndpoint = defaultEndpoint redshift+  , _svcTimeout = Just 70+  , _svcCheck = statusSuccess+  , _svcError = parseXMLError "Redshift"+  , _svcRetry = retry+  }   where     retry =-        Exponential-        { _retryBase = 5.0e-2-        , _retryGrowth = 2-        , _retryAttempts = 5-        , _retryCheck = check-        }+      Exponential+      { _retryBase = 5.0e-2+      , _retryGrowth = 2+      , _retryAttempts = 5+      , _retryCheck = check+      }     check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"       | has (hasStatus 429) e = Just "too_many_requests"       | has (hasCode "ThrottlingException" . hasStatus 400) e =-          Just "throttling_exception"+        Just "throttling_exception"       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"       | has (hasStatus 504) e = Just "gateway_timeout"       | has (hasStatus 502) e = Just "bad_gateway"@@ -550,593 +554,692 @@       | has (hasStatus 509) e = Just "limit_exceeded"       | otherwise = Nothing + -- | The request would result in the user exceeding the allowed number of cluster security groups. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ClusterSecurityGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSecurityGroupQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "QuotaExceeded.ClusterSecurityGroup"+  _MatchServiceError redshift "QuotaExceeded.ClusterSecurityGroup" .+  hasStatus 400 + -- | The string specified for the logging S3 key prefix does not comply with the documented constraints. -- -- _InvalidS3KeyPrefixFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidS3KeyPrefixFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidS3KeyPrefixFault"+  _MatchServiceError redshift "InvalidS3KeyPrefixFault" . hasStatus 400 + -- | The specified Amazon Redshift event source could not be found. -- -- _SourceNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError-_SourceNotFoundFault = _ServiceError . hasStatus 404 . hasCode "SourceNotFound"+_SourceNotFoundFault =+  _MatchServiceError redshift "SourceNotFound" . hasStatus 404 + -- | The authorization quota for the cluster security group has been reached. -- -- _AuthorizationQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _AuthorizationQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "AuthorizationQuotaExceeded"+  _MatchServiceError redshift "AuthorizationQuotaExceeded" . hasStatus 400 + -- | Cross-region snapshot copy was temporarily disabled. Try your request again. -- -- _CopyToRegionDisabledFault :: AsError a => Getting (First ServiceError) a ServiceError _CopyToRegionDisabledFault =-    _ServiceError . hasStatus 400 . hasCode "CopyToRegionDisabledFault"+  _MatchServiceError redshift "CopyToRegionDisabledFault" . hasStatus 400 + -- | The encryption key has exceeded its grant limit in AWS KMS. -- -- _LimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _LimitExceededFault =-    _ServiceError . hasStatus 400 . hasCode "LimitExceededFault"+  _MatchServiceError redshift "LimitExceededFault" . hasStatus 400 + -- | The state of the cluster security group is not @available@ . -- -- _InvalidClusterSecurityGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterSecurityGroupStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidClusterSecurityGroupState"+  _MatchServiceError redshift "InvalidClusterSecurityGroupState" . hasStatus 400 + -- | A cluster security group with the same name already exists. -- -- _ClusterSecurityGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSecurityGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSecurityGroupAlreadyExists"+  _MatchServiceError redshift "ClusterSecurityGroupAlreadyExists" .+  hasStatus 400 + -- | The snapshot identifier does not refer to an existing cluster snapshot. -- -- _ClusterSnapshotNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSnapshotNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ClusterSnapshotNotFound"+  _MatchServiceError redshift "ClusterSnapshotNotFound" . hasStatus 404 + -- | The Elastic IP (EIP) is invalid or cannot be found. -- -- _InvalidElasticIPFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidElasticIPFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidElasticIpFault"+  _MatchServiceError redshift "InvalidElasticIpFault" . hasStatus 400 + -- | The specified @TableRestoreRequestId@ value was not found. -- -- _TableRestoreNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _TableRestoreNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "TableRestoreNotFoundFault"+  _MatchServiceError redshift "TableRestoreNotFoundFault" . hasStatus 400 + -- | There is no Amazon Redshift HSM configuration with the specified identifier. -- -- _HSMConfigurationNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMConfigurationNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "HsmConfigurationNotFoundFault"+  _MatchServiceError redshift "HsmConfigurationNotFoundFault" . hasStatus 400 + -- | The specified CIDR block or EC2 security group is already authorized for the specified cluster security group. -- -- _AuthorizationAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _AuthorizationAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "AuthorizationAlreadyExists"+  _MatchServiceError redshift "AuthorizationAlreadyExists" . hasStatus 400 + -- | The value specified for the event category was not one of the allowed values, or it specified a category that does not apply to the specified source type. The allowed values are Configuration, Management, Monitoring, and Security. -- -- _SubscriptionCategoryNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SubscriptionCategoryNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SubscriptionCategoryNotFound"+  _MatchServiceError redshift "SubscriptionCategoryNotFound" . hasStatus 404 + -- | There is already an existing Amazon Redshift HSM configuration with the specified identifier. -- -- _HSMConfigurationAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMConfigurationAlreadyExistsFault =-    _ServiceError .-    hasStatus 400 . hasCode "HsmConfigurationAlreadyExistsFault"+  _MatchServiceError redshift "HsmConfigurationAlreadyExistsFault" .+  hasStatus 400 + -- | An Amazon Redshift event notification subscription with the specified name does not exist. -- -- _SubscriptionNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SubscriptionNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SubscriptionNotFound"+  _MatchServiceError redshift "SubscriptionNotFound" . hasStatus 404 + -- | The S3 bucket name is invalid. For more information about naming rules, go to <http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html Bucket Restrictions and Limitations> in the Amazon Simple Storage Service (S3) Developer Guide. -- -- _InvalidS3BucketNameFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidS3BucketNameFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidS3BucketNameFault"+  _MatchServiceError redshift "InvalidS3BucketNameFault" . hasStatus 400 + -- | The value specified as a snapshot identifier is already used by an existing snapshot. -- -- _ClusterSnapshotAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSnapshotAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSnapshotAlreadyExists"+  _MatchServiceError redshift "ClusterSnapshotAlreadyExists" . hasStatus 400 + -- | The requested subnet is not valid, or not all of the subnets are in the same VPC. -- -- _InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidSubnet = _ServiceError . hasStatus 400 . hasCode "InvalidSubnet"+_InvalidSubnet = _MatchServiceError redshift "InvalidSubnet" . hasStatus 400 + -- | The specified HSM configuration is not in the @available@ state, or it is still in use by one or more Amazon Redshift clusters. -- -- _InvalidHSMConfigurationStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidHSMConfigurationStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidHsmConfigurationStateFault"+  _MatchServiceError redshift "InvalidHsmConfigurationStateFault" .+  hasStatus 400 + -- | The cluster already has cross-region snapshot copy disabled. -- -- _SnapshotCopyAlreadyDisabledFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyAlreadyDisabledFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotCopyAlreadyDisabledFault"+  _MatchServiceError redshift "SnapshotCopyAlreadyDisabledFault" . hasStatus 400 + -- | The request would exceed the allowed number of cluster instances for this account. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ClusterQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterQuotaExceeded"+  _MatchServiceError redshift "ClusterQuotaExceeded" . hasStatus 400 + -- | The quota for HSM client certificates has been reached. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _HSMClientCertificateQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMClientCertificateQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "HsmClientCertificateQuotaExceededFault"+  _MatchServiceError redshift "HsmClientCertificateQuotaExceededFault" .+  hasStatus 400 + -- | The parameter group name does not refer to an existing parameter group. -- -- _ClusterParameterGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterParameterGroupNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ClusterParameterGroupNotFound"+  _MatchServiceError redshift "ClusterParameterGroupNotFound" . hasStatus 404 + -- | The AWS account has exceeded the maximum number of snapshot copy grants in this region. -- -- _SnapshotCopyGrantQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyGrantQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "SnapshotCopyGrantQuotaExceededFault"+  _MatchServiceError redshift "SnapshotCopyGrantQuotaExceededFault" .+  hasStatus 400 + -- | The operation would exceed the number of nodes allowed for a cluster. -- -- _NumberOfNodesPerClusterLimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _NumberOfNodesPerClusterLimitExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "NumberOfNodesPerClusterLimitExceeded"+  _MatchServiceError redshift "NumberOfNodesPerClusterLimitExceeded" .+  hasStatus 400 + -- | The cluster already has cross-region snapshot copy enabled. -- -- _SnapshotCopyAlreadyEnabledFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyAlreadyEnabledFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotCopyAlreadyEnabledFault"+  _MatchServiceError redshift "SnapshotCopyAlreadyEnabledFault" . hasStatus 400 + -- | A cluster parameter group with the same name already exists. -- -- _ClusterParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterParameterGroupAlreadyExistsFault =-    _ServiceError .-    hasStatus 400 . hasCode "ClusterParameterGroupAlreadyExists"+  _MatchServiceError redshift "ClusterParameterGroupAlreadyExists" .+  hasStatus 400 + -- | Cross-region snapshot copy was temporarily disabled. Try your request again. -- -- _SnapshotCopyDisabledFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyDisabledFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotCopyDisabledFault"+  _MatchServiceError redshift "SnapshotCopyDisabledFault" . hasStatus 400 + -- | A resize operation for the specified cluster is not found. -- -- _ResizeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError-_ResizeNotFoundFault = _ServiceError . hasStatus 404 . hasCode "ResizeNotFound"+_ResizeNotFoundFault =+  _MatchServiceError redshift "ResizeNotFound" . hasStatus 404 + -- | There is no Amazon Redshift HSM client certificate with the specified identifier. -- -- _HSMClientCertificateNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMClientCertificateNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "HsmClientCertificateNotFoundFault"+  _MatchServiceError redshift "HsmClientCertificateNotFoundFault" .+  hasStatus 400 + -- | An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not exist. -- -- _SNSTopicARNNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SNSTopicARNNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SNSTopicArnNotFound"+  _MatchServiceError redshift "SNSTopicArnNotFound" . hasStatus 404 + -- | The @ClusterIdentifier@ parameter does not refer to an existing cluster. -- -- _ClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ClusterNotFound"+  _MatchServiceError redshift "ClusterNotFound" . hasStatus 404 + -- | The request would result in the user exceeding the allowed number of cluster parameter groups. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ClusterParameterGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterParameterGroupQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "ClusterParameterGroupQuotaExceeded"+  _MatchServiceError redshift "ClusterParameterGroupQuotaExceeded" .+  hasStatus 400 + -- | The snapshot copy grant can't be created because a grant with the same name already exists. -- -- _SnapshotCopyGrantAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyGrantAlreadyExistsFault =-    _ServiceError .-    hasStatus 400 . hasCode "SnapshotCopyGrantAlreadyExistsFault"+  _MatchServiceError redshift "SnapshotCopyGrantAlreadyExistsFault" .+  hasStatus 400 + -- | You do not have permission to publish to the specified Amazon SNS topic. -- -- _SNSNoAuthorizationFault :: AsError a => Getting (First ServiceError) a ServiceError _SNSNoAuthorizationFault =-    _ServiceError . hasStatus 400 . hasCode "SNSNoAuthorization"+  _MatchServiceError redshift "SNSNoAuthorization" . hasStatus 400 + -- | The specified cluster is not in the @available@ state. -- -- _InvalidClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidClusterState"+  _MatchServiceError redshift "InvalidClusterState" . hasStatus 400 + -- | The value specified for the @sourceDatabaseName@ , @sourceSchemaName@ , or @sourceTableName@ parameter, or a combination of these, doesn't exist in the snapshot. -- -- _InvalidTableRestoreArgumentFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidTableRestoreArgumentFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidTableRestoreArgument"+  _MatchServiceError redshift "InvalidTableRestoreArgument" . hasStatus 400 + -- | The specified snapshot copy grant can't be found. Make sure that the name is typed correctly and that the grant exists in the destination region. -- -- _SnapshotCopyGrantNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SnapshotCopyGrantNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "SnapshotCopyGrantNotFoundFault"+  _MatchServiceError redshift "SnapshotCopyGrantNotFoundFault" . hasStatus 400 + -- | The quota for HSM configurations has been reached. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _HSMConfigurationQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMConfigurationQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "HsmConfigurationQuotaExceededFault"+  _MatchServiceError redshift "HsmConfigurationQuotaExceededFault" .+  hasStatus 400 + -- | The request would result in the user exceeding the allowed number of cluster snapshots. -- -- _ClusterSnapshotQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSnapshotQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSnapshotQuotaExceeded"+  _MatchServiceError redshift "ClusterSnapshotQuotaExceeded" . hasStatus 400 + -- | The number of nodes specified exceeds the allotted capacity of the cluster. -- -- _InsufficientClusterCapacityFault :: AsError a => Getting (First ServiceError) a ServiceError _InsufficientClusterCapacityFault =-    _ServiceError . hasStatus 400 . hasCode "InsufficientClusterCapacity"+  _MatchServiceError redshift "InsufficientClusterCapacity" . hasStatus 400 + -- | Amazon SNS has responded that there is a problem with the specified Amazon SNS topic. -- -- _SNSInvalidTopicFault :: AsError a => Getting (First ServiceError) a ServiceError _SNSInvalidTopicFault =-    _ServiceError . hasStatus 400 . hasCode "SNSInvalidTopic"+  _MatchServiceError redshift "SNSInvalidTopic" . hasStatus 400 ++-- | Your request cannot be completed because a dependent internal service is temporarily unavailable. Wait 30 to 60 seconds and try again.+--+--+_DependentServiceUnavailableFault :: AsError a => Getting (First ServiceError) a ServiceError+_DependentServiceUnavailableFault =+  _MatchServiceError redshift "DependentServiceUnavailableFault" . hasStatus 400++ -- | A request option was specified that is not supported. -- -- _UnsupportedOptionFault :: AsError a => Getting (First ServiceError) a ServiceError _UnsupportedOptionFault =-    _ServiceError . hasStatus 400 . hasCode "UnsupportedOptionFault"+  _MatchServiceError redshift "UnsupportedOptionFault" . hasStatus 400 + -- | There is already an existing event notification subscription with the specified name. -- -- _SubscriptionAlreadyExistFault :: AsError a => Getting (First ServiceError) a ServiceError _SubscriptionAlreadyExistFault =-    _ServiceError . hasStatus 400 . hasCode "SubscriptionAlreadyExist"+  _MatchServiceError redshift "SubscriptionAlreadyExist" . hasStatus 400 + -- | The cluster subnet group does not cover all Availability Zones. -- -- _InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidVPCNetworkStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidVPCNetworkStateFault"+  _MatchServiceError redshift "InvalidVPCNetworkStateFault" . hasStatus 400 + -- | The cluster subnet group name does not refer to an existing cluster subnet group. -- -- _ClusterSubnetGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSubnetGroupNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSubnetGroupNotFoundFault"+  _MatchServiceError redshift "ClusterSubnetGroupNotFoundFault" . hasStatus 400 + -- | Could not find the specified S3 bucket. -- -- _BucketNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _BucketNotFoundFault =-    _ServiceError . hasStatus 400 . hasCode "BucketNotFoundFault"+  _MatchServiceError redshift "BucketNotFoundFault" . hasStatus 400 + -- | The subscription request is invalid because it is a duplicate request. This subscription request is already in progress. -- -- _InvalidSubscriptionStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidSubscriptionStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidSubscriptionStateFault"+  _MatchServiceError redshift "InvalidSubscriptionStateFault" . hasStatus 400 + -- | The request cannot be completed because a dependent service is throttling requests made by Amazon Redshift on your behalf. Wait and retry the request. -- -- _DependentServiceRequestThrottlingFault :: AsError a => Getting (First ServiceError) a ServiceError _DependentServiceRequestThrottlingFault =-    _ServiceError .-    hasStatus 400 . hasCode "DependentServiceRequestThrottlingFault"+  _MatchServiceError redshift "DependentServiceRequestThrottlingFault" .+  hasStatus 400 + -- | The specified CIDR IP range or EC2 security group is not authorized for the specified cluster security group. -- -- _AuthorizationNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _AuthorizationNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "AuthorizationNotFound"+  _MatchServiceError redshift "AuthorizationNotFound" . hasStatus 404 + -- | The cluster subnet group cannot be deleted because it is in use. -- -- _InvalidClusterSubnetGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterSubnetGroupStateFault =-    _ServiceError .-    hasStatus 400 . hasCode "InvalidClusterSubnetGroupStateFault"+  _MatchServiceError redshift "InvalidClusterSubnetGroupStateFault" .+  hasStatus 400 + -- | The requested operation isn't supported. -- -- _UnsupportedOperationFault :: AsError a => Getting (First ServiceError) a ServiceError _UnsupportedOperationFault =-    _ServiceError . hasStatus 400 . hasCode "UnsupportedOperation"+  _MatchServiceError redshift "UnsupportedOperation" . hasStatus 400 + -- | A /ClusterSubnetGroupName/ is already used by an existing cluster subnet group. -- -- _ClusterSubnetGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSubnetGroupAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSubnetGroupAlreadyExists"+  _MatchServiceError redshift "ClusterSubnetGroupAlreadyExists" . hasStatus 400 + -- | The specified cluster snapshot is not in the @available@ state, or other accounts are authorized to access the snapshot. -- -- _InvalidClusterSnapshotStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterSnapshotStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidClusterSnapshotState"+  _MatchServiceError redshift "InvalidClusterSnapshotState" . hasStatus 400 + -- | The cluster security group name does not refer to an existing cluster security group. -- -- _ClusterSecurityGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSecurityGroupNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ClusterSecurityGroupNotFound"+  _MatchServiceError redshift "ClusterSecurityGroupNotFound" . hasStatus 404 + -- | The specified reserved compute node not found. -- -- _ReservedNodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedNodeNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ReservedNodeNotFound"+  _MatchServiceError redshift "ReservedNodeNotFound" . hasStatus 404 + -- | Specified offering does not exist. -- -- _ReservedNodeOfferingNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedNodeOfferingNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ReservedNodeOfferingNotFound"+  _MatchServiceError redshift "ReservedNodeOfferingNotFound" . hasStatus 404 + -- | The state of the subnet is invalid. -- -- _InvalidClusterSubnetStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterSubnetStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidClusterSubnetStateFault"+  _MatchServiceError redshift "InvalidClusterSubnetStateFault" . hasStatus 400 + -- | The specified options are incompatible. -- -- _IncompatibleOrderableOptions :: AsError a => Getting (First ServiceError) a ServiceError _IncompatibleOrderableOptions =-    _ServiceError . hasStatus 400 . hasCode "IncompatibleOrderableOptions"+  _MatchServiceError redshift "IncompatibleOrderableOptions" . hasStatus 400 + -- | The request would exceed the allowed number of event subscriptions for this account. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _EventSubscriptionQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _EventSubscriptionQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "EventSubscriptionQuotaExceeded"+  _MatchServiceError redshift "EventSubscriptionQuotaExceeded" . hasStatus 400 + -- | The cluster parameter group action can not be completed because another task is in progress that involves the parameter group. Wait a few moments and try the operation again. -- -- _InvalidClusterParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidClusterParameterGroupStateFault =-    _ServiceError . hasStatus 400 . hasCode "InvalidClusterParameterGroupState"+  _MatchServiceError redshift "InvalidClusterParameterGroupState" .+  hasStatus 400 + -- | User already has a reservation with the given identifier. -- -- _ReservedNodeAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedNodeAlreadyExistsFault =-    _ServiceError . hasStatus 404 . hasCode "ReservedNodeAlreadyExists"+  _MatchServiceError redshift "ReservedNodeAlreadyExists" . hasStatus 404 + -- | You have exceeded the allowed number of table restore requests. Wait for your current table restore requests to complete before making a new request. -- -- _InProgressTableRestoreQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _InProgressTableRestoreQuotaExceededFault =-    _ServiceError .-    hasStatus 400 . hasCode "InProgressTableRestoreQuotaExceededFault"+  _MatchServiceError redshift "InProgressTableRestoreQuotaExceededFault" .+  hasStatus 400 + -- | The restore is invalid. -- -- _InvalidRestoreFault :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidRestoreFault = _ServiceError . hasStatus 406 . hasCode "InvalidRestore"+_InvalidRestoreFault =+  _MatchServiceError redshift "InvalidRestore" . hasStatus 406 + -- | The resource could not be found. -- -- _ResourceNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _ResourceNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "ResourceNotFoundFault"+  _MatchServiceError redshift "ResourceNotFoundFault" . hasStatus 404 + -- | An Amazon Redshift event with the specified event ID does not exist. -- -- _SubscriptionEventIdNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SubscriptionEventIdNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SubscriptionEventIdNotFound"+  _MatchServiceError redshift "SubscriptionEventIdNotFound" . hasStatus 404 + -- | The snapshot copy grant can't be deleted because it is used by one or more clusters. -- -- _InvalidSnapshotCopyGrantStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidSnapshotCopyGrantStateFault =-    _ServiceError .-    hasStatus 400 . hasCode "InvalidSnapshotCopyGrantStateFault"+  _MatchServiceError redshift "InvalidSnapshotCopyGrantStateFault" .+  hasStatus 400 + -- | The specified region is incorrect or does not exist. -- -- _UnknownSnapshotCopyRegionFault :: AsError a => Getting (First ServiceError) a ServiceError _UnknownSnapshotCopyRegionFault =-    _ServiceError . hasStatus 404 . hasCode "UnknownSnapshotCopyRegionFault"+  _MatchServiceError redshift "UnknownSnapshotCopyRegionFault" . hasStatus 404 + -- | Request would exceed the user's compute node quota. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ReservedNodeQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ReservedNodeQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ReservedNodeQuotaExceeded"+  _MatchServiceError redshift "ReservedNodeQuotaExceeded" . hasStatus 400 + -- | The request would result in user exceeding the allowed number of subnets in a cluster subnet groups. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ClusterSubnetQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSubnetQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSubnetQuotaExceededFault"+  _MatchServiceError redshift "ClusterSubnetQuotaExceededFault" . hasStatus 400 + -- | The account already has a cluster with the given identifier. -- -- _ClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterAlreadyExistsFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterAlreadyExists"+  _MatchServiceError redshift "ClusterAlreadyExists" . hasStatus 400 + -- | The owner of the specified snapshot has not authorized your account to access the snapshot. -- -- _AccessToSnapshotDeniedFault :: AsError a => Getting (First ServiceError) a ServiceError _AccessToSnapshotDeniedFault =-    _ServiceError . hasStatus 400 . hasCode "AccessToSnapshotDenied"+  _MatchServiceError redshift "AccessToSnapshotDenied" . hasStatus 400 + -- | The request exceeds the limit of 10 tags for the resource. -- -- _TagLimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _TagLimitExceededFault =-    _ServiceError . hasStatus 400 . hasCode "TagLimitExceededFault"+  _MatchServiceError redshift "TagLimitExceededFault" . hasStatus 400 + -- | The operation would exceed the number of nodes allotted to the account. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _NumberOfNodesQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _NumberOfNodesQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "NumberOfNodesQuotaExceeded"+  _MatchServiceError redshift "NumberOfNodesQuotaExceeded" . hasStatus 400 + -- | There is already an existing Amazon Redshift HSM client certificate with the specified identifier. -- -- _HSMClientCertificateAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError _HSMClientCertificateAlreadyExistsFault =-    _ServiceError .-    hasStatus 400 . hasCode "HsmClientCertificateAlreadyExistsFault"+  _MatchServiceError redshift "HsmClientCertificateAlreadyExistsFault" .+  hasStatus 400 + -- | The specified HSM client certificate is not in the @available@ state, or it is still in use by one or more Amazon Redshift clusters. -- -- _InvalidHSMClientCertificateStateFault :: AsError a => Getting (First ServiceError) a ServiceError _InvalidHSMClientCertificateStateFault =-    _ServiceError .-    hasStatus 400 . hasCode "InvalidHsmClientCertificateStateFault"+  _MatchServiceError redshift "InvalidHsmClientCertificateStateFault" .+  hasStatus 400 + -- | A specified subnet is already in use by another cluster. -- -- _SubnetAlreadyInUse :: AsError a => Getting (First ServiceError) a ServiceError _SubnetAlreadyInUse =-    _ServiceError . hasStatus 400 . hasCode "SubnetAlreadyInUse"+  _MatchServiceError redshift "SubnetAlreadyInUse" . hasStatus 400 + -- | The value specified for the event severity was not one of the allowed values, or it specified a severity that does not apply to the specified source type. The allowed values are ERROR and INFO. -- -- _SubscriptionSeverityNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError _SubscriptionSeverityNotFoundFault =-    _ServiceError . hasStatus 404 . hasCode "SubscriptionSeverityNotFound"+  _MatchServiceError redshift "SubscriptionSeverityNotFound" . hasStatus 404 + -- | Your account is not authorized to perform the requested operation. -- -- _UnauthorizedOperation :: AsError a => Getting (First ServiceError) a ServiceError _UnauthorizedOperation =-    _ServiceError . hasStatus 400 . hasCode "UnauthorizedOperation"+  _MatchServiceError redshift "UnauthorizedOperation" . hasStatus 400 + -- | The tag is invalid. -- -- _InvalidTagFault :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidTagFault = _ServiceError . hasStatus 400 . hasCode "InvalidTagFault"+_InvalidTagFault = _MatchServiceError redshift "InvalidTagFault" . hasStatus 400 + -- | The cluster does not have read bucket or put object permissions on the S3 bucket specified when enabling logging. -- -- _InsufficientS3BucketPolicyFault :: AsError a => Getting (First ServiceError) a ServiceError _InsufficientS3BucketPolicyFault =-    _ServiceError . hasStatus 400 . hasCode "InsufficientS3BucketPolicyFault"+  _MatchServiceError redshift "InsufficientS3BucketPolicyFault" . hasStatus 400 + -- | The request would result in user exceeding the allowed number of cluster subnet groups. For information about increasing your quota, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html Limits in Amazon Redshift> in the /Amazon Redshift Cluster Management Guide/ . -- -- _ClusterSubnetGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError _ClusterSubnetGroupQuotaExceededFault =-    _ServiceError . hasStatus 400 . hasCode "ClusterSubnetGroupQuotaExceeded"+  _MatchServiceError redshift "ClusterSubnetGroupQuotaExceeded" . hasStatus 400+
gen/Network/AWS/Redshift/Types/Product.hs view
@@ -9,3181 +9,3237 @@  -- | -- Module      : Network.AWS.Redshift.Types.Product--- Copyright   : (c) 2013-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.Redshift.Types.Product where--import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.Internal-import           Network.AWS.Redshift.Types.Sum---- | Describes an AWS customer account authorized to restore a snapshot.------------ /See:/ 'accountWithRestoreAccess' smart constructor.-newtype AccountWithRestoreAccess = AccountWithRestoreAccess'-    { _awraAccountId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AccountWithRestoreAccess' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awraAccountId' - The identifier of an AWS customer account authorized to restore a snapshot.-accountWithRestoreAccess-    :: AccountWithRestoreAccess-accountWithRestoreAccess =-    AccountWithRestoreAccess'-    { _awraAccountId = Nothing-    }---- | The identifier of an AWS customer account authorized to restore a snapshot.-awraAccountId :: Lens' AccountWithRestoreAccess (Maybe Text)-awraAccountId = lens _awraAccountId (\ s a -> s{_awraAccountId = a});--instance FromXML AccountWithRestoreAccess where-        parseXML x-          = AccountWithRestoreAccess' <$> (x .@? "AccountId")--instance Hashable AccountWithRestoreAccess--instance NFData AccountWithRestoreAccess---- | Describes an availability zone.------------ /See:/ 'availabilityZone' smart constructor.-newtype AvailabilityZone = AvailabilityZone'-    { _azName :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azName' - The name of the availability zone.-availabilityZone-    :: AvailabilityZone-availabilityZone =-    AvailabilityZone'-    { _azName = Nothing-    }---- | The name of the availability zone.-azName :: Lens' AvailabilityZone (Maybe Text)-azName = lens _azName (\ s a -> s{_azName = a});--instance FromXML AvailabilityZone where-        parseXML x = AvailabilityZone' <$> (x .@? "Name")--instance Hashable AvailabilityZone--instance NFData AvailabilityZone---- | Describes a cluster.------------ /See:/ 'cluster' smart constructor.-data Cluster = Cluster'-    { _cRestoreStatus                    :: !(Maybe RestoreStatus)-    , _cEnhancedVPCRouting               :: !(Maybe Bool)-    , _cClusterSnapshotCopyStatus        :: !(Maybe ClusterSnapshotCopyStatus)-    , _cClusterRevisionNumber            :: !(Maybe Text)-    , _cPubliclyAccessible               :: !(Maybe Bool)-    , _cMasterUsername                   :: !(Maybe Text)-    , _cVPCId                            :: !(Maybe Text)-    , _cClusterSecurityGroups            :: !(Maybe [ClusterSecurityGroupMembership])-    , _cAutomatedSnapshotRetentionPeriod :: !(Maybe Int)-    , _cEncrypted                        :: !(Maybe Bool)-    , _cClusterSubnetGroupName           :: !(Maybe Text)-    , _cClusterIdentifier                :: !(Maybe Text)-    , _cNumberOfNodes                    :: !(Maybe Int)-    , _cClusterPublicKey                 :: !(Maybe Text)-    , _cPreferredMaintenanceWindow       :: !(Maybe Text)-    , _cModifyStatus                     :: !(Maybe Text)-    , _cKMSKeyId                         :: !(Maybe Text)-    , _cClusterParameterGroups           :: !(Maybe [ClusterParameterGroupStatus])-    , _cAvailabilityZone                 :: !(Maybe Text)-    , _cVPCSecurityGroups                :: !(Maybe [VPCSecurityGroupMembership])-    , _cHSMStatus                        :: !(Maybe HSMStatus)-    , _cIAMRoles                         :: !(Maybe [ClusterIAMRole])-    , _cElasticIPStatus                  :: !(Maybe ElasticIPStatus)-    , _cClusterVersion                   :: !(Maybe Text)-    , _cNodeType                         :: !(Maybe Text)-    , _cClusterCreateTime                :: !(Maybe ISO8601)-    , _cEndpoint                         :: !(Maybe Endpoint)-    , _cAllowVersionUpgrade              :: !(Maybe Bool)-    , _cClusterStatus                    :: !(Maybe Text)-    , _cPendingModifiedValues            :: !(Maybe PendingModifiedValues)-    , _cTags                             :: !(Maybe [Tag])-    , _cClusterNodes                     :: !(Maybe [ClusterNode])-    , _cDBName                           :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Cluster' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cRestoreStatus' - A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.------ * 'cEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false------ * 'cClusterSnapshotCopyStatus' - A value that returns the destination region and retention period that are configured for cross-region snapshot copy.------ * 'cClusterRevisionNumber' - The specific revision number of the database in the cluster.------ * 'cPubliclyAccessible' - A Boolean value that, if @true@ , indicates that the cluster can be accessed from a public network.------ * 'cMasterUsername' - The master user name for the cluster. This name is used to connect to the database that is specified in the __DBName__ parameter.------ * 'cVPCId' - The identifier of the VPC the cluster is in, if the cluster is in a VPC.------ * 'cClusterSecurityGroups' - A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains @ClusterSecurityGroup.Name@ and @ClusterSecurityGroup.Status@ subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the __VpcSecurityGroups__ parameter.------ * 'cAutomatedSnapshotRetentionPeriod' - The number of days that automatic cluster snapshots are retained.------ * 'cEncrypted' - A Boolean value that, if @true@ , indicates that data in the cluster is encrypted at rest.------ * 'cClusterSubnetGroupName' - The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.------ * 'cClusterIdentifier' - The unique identifier of the cluster.------ * 'cNumberOfNodes' - The number of compute nodes in the cluster.------ * 'cClusterPublicKey' - The public key for the cluster.------ * 'cPreferredMaintenanceWindow' - The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.------ * 'cModifyStatus' - The status of a modify operation, if any, initiated for the cluster.------ * 'cKMSKeyId' - The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.------ * 'cClusterParameterGroups' - The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.------ * 'cAvailabilityZone' - The name of the Availability Zone in which the cluster is located.------ * 'cVPCSecurityGroups' - A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.------ * 'cHSMStatus' - A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying------ * 'cIAMRoles' - A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.------ * 'cElasticIPStatus' - The status of the elastic IP (EIP) address.------ * 'cClusterVersion' - The version ID of the Amazon Redshift engine that is running on the cluster.------ * 'cNodeType' - The node type for the nodes in the cluster.------ * 'cClusterCreateTime' - The date and time that the cluster was created.------ * 'cEndpoint' - The connection endpoint.------ * 'cAllowVersionUpgrade' - A Boolean value that, if @true@ , indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.------ * 'cClusterStatus' - The current state of the cluster. Possible values are the following:     * @available@      * @creating@      * @deleting@      * @final-snapshot@      * @hardware-failure@      * @incompatible-hsm@      * @incompatible-network@      * @incompatible-parameters@      * @incompatible-restore@      * @modifying@      * @rebooting@      * @renaming@      * @resizing@      * @rotating-keys@      * @storage-full@      * @updating-hsm@------ * 'cPendingModifiedValues' - A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.------ * 'cTags' - The list of tags for the cluster.------ * 'cClusterNodes' - The nodes in the cluster.------ * 'cDBName' - The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named @dev@ dev was created by default.-cluster-    :: Cluster-cluster =-    Cluster'-    { _cRestoreStatus = Nothing-    , _cEnhancedVPCRouting = Nothing-    , _cClusterSnapshotCopyStatus = Nothing-    , _cClusterRevisionNumber = Nothing-    , _cPubliclyAccessible = Nothing-    , _cMasterUsername = Nothing-    , _cVPCId = Nothing-    , _cClusterSecurityGroups = Nothing-    , _cAutomatedSnapshotRetentionPeriod = Nothing-    , _cEncrypted = Nothing-    , _cClusterSubnetGroupName = Nothing-    , _cClusterIdentifier = Nothing-    , _cNumberOfNodes = Nothing-    , _cClusterPublicKey = Nothing-    , _cPreferredMaintenanceWindow = Nothing-    , _cModifyStatus = Nothing-    , _cKMSKeyId = Nothing-    , _cClusterParameterGroups = Nothing-    , _cAvailabilityZone = Nothing-    , _cVPCSecurityGroups = Nothing-    , _cHSMStatus = Nothing-    , _cIAMRoles = Nothing-    , _cElasticIPStatus = Nothing-    , _cClusterVersion = Nothing-    , _cNodeType = Nothing-    , _cClusterCreateTime = Nothing-    , _cEndpoint = Nothing-    , _cAllowVersionUpgrade = Nothing-    , _cClusterStatus = Nothing-    , _cPendingModifiedValues = Nothing-    , _cTags = Nothing-    , _cClusterNodes = Nothing-    , _cDBName = Nothing-    }---- | A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.-cRestoreStatus :: Lens' Cluster (Maybe RestoreStatus)-cRestoreStatus = lens _cRestoreStatus (\ s a -> s{_cRestoreStatus = a});---- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false-cEnhancedVPCRouting :: Lens' Cluster (Maybe Bool)-cEnhancedVPCRouting = lens _cEnhancedVPCRouting (\ s a -> s{_cEnhancedVPCRouting = a});---- | A value that returns the destination region and retention period that are configured for cross-region snapshot copy.-cClusterSnapshotCopyStatus :: Lens' Cluster (Maybe ClusterSnapshotCopyStatus)-cClusterSnapshotCopyStatus = lens _cClusterSnapshotCopyStatus (\ s a -> s{_cClusterSnapshotCopyStatus = a});---- | The specific revision number of the database in the cluster.-cClusterRevisionNumber :: Lens' Cluster (Maybe Text)-cClusterRevisionNumber = lens _cClusterRevisionNumber (\ s a -> s{_cClusterRevisionNumber = a});---- | A Boolean value that, if @true@ , indicates that the cluster can be accessed from a public network.-cPubliclyAccessible :: Lens' Cluster (Maybe Bool)-cPubliclyAccessible = lens _cPubliclyAccessible (\ s a -> s{_cPubliclyAccessible = a});---- | The master user name for the cluster. This name is used to connect to the database that is specified in the __DBName__ parameter.-cMasterUsername :: Lens' Cluster (Maybe Text)-cMasterUsername = lens _cMasterUsername (\ s a -> s{_cMasterUsername = a});---- | The identifier of the VPC the cluster is in, if the cluster is in a VPC.-cVPCId :: Lens' Cluster (Maybe Text)-cVPCId = lens _cVPCId (\ s a -> s{_cVPCId = a});---- | A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains @ClusterSecurityGroup.Name@ and @ClusterSecurityGroup.Status@ subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the __VpcSecurityGroups__ parameter.-cClusterSecurityGroups :: Lens' Cluster [ClusterSecurityGroupMembership]-cClusterSecurityGroups = lens _cClusterSecurityGroups (\ s a -> s{_cClusterSecurityGroups = a}) . _Default . _Coerce;---- | The number of days that automatic cluster snapshots are retained.-cAutomatedSnapshotRetentionPeriod :: Lens' Cluster (Maybe Int)-cAutomatedSnapshotRetentionPeriod = lens _cAutomatedSnapshotRetentionPeriod (\ s a -> s{_cAutomatedSnapshotRetentionPeriod = a});---- | A Boolean value that, if @true@ , indicates that data in the cluster is encrypted at rest.-cEncrypted :: Lens' Cluster (Maybe Bool)-cEncrypted = lens _cEncrypted (\ s a -> s{_cEncrypted = a});---- | The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.-cClusterSubnetGroupName :: Lens' Cluster (Maybe Text)-cClusterSubnetGroupName = lens _cClusterSubnetGroupName (\ s a -> s{_cClusterSubnetGroupName = a});---- | The unique identifier of the cluster.-cClusterIdentifier :: Lens' Cluster (Maybe Text)-cClusterIdentifier = lens _cClusterIdentifier (\ s a -> s{_cClusterIdentifier = a});---- | The number of compute nodes in the cluster.-cNumberOfNodes :: Lens' Cluster (Maybe Int)-cNumberOfNodes = lens _cNumberOfNodes (\ s a -> s{_cNumberOfNodes = a});---- | The public key for the cluster.-cClusterPublicKey :: Lens' Cluster (Maybe Text)-cClusterPublicKey = lens _cClusterPublicKey (\ s a -> s{_cClusterPublicKey = a});---- | The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.-cPreferredMaintenanceWindow :: Lens' Cluster (Maybe Text)-cPreferredMaintenanceWindow = lens _cPreferredMaintenanceWindow (\ s a -> s{_cPreferredMaintenanceWindow = a});---- | The status of a modify operation, if any, initiated for the cluster.-cModifyStatus :: Lens' Cluster (Maybe Text)-cModifyStatus = lens _cModifyStatus (\ s a -> s{_cModifyStatus = a});---- | The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.-cKMSKeyId :: Lens' Cluster (Maybe Text)-cKMSKeyId = lens _cKMSKeyId (\ s a -> s{_cKMSKeyId = a});---- | The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.-cClusterParameterGroups :: Lens' Cluster [ClusterParameterGroupStatus]-cClusterParameterGroups = lens _cClusterParameterGroups (\ s a -> s{_cClusterParameterGroups = a}) . _Default . _Coerce;---- | The name of the Availability Zone in which the cluster is located.-cAvailabilityZone :: Lens' Cluster (Maybe Text)-cAvailabilityZone = lens _cAvailabilityZone (\ s a -> s{_cAvailabilityZone = a});---- | A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.-cVPCSecurityGroups :: Lens' Cluster [VPCSecurityGroupMembership]-cVPCSecurityGroups = lens _cVPCSecurityGroups (\ s a -> s{_cVPCSecurityGroups = a}) . _Default . _Coerce;---- | A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying-cHSMStatus :: Lens' Cluster (Maybe HSMStatus)-cHSMStatus = lens _cHSMStatus (\ s a -> s{_cHSMStatus = a});---- | A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.-cIAMRoles :: Lens' Cluster [ClusterIAMRole]-cIAMRoles = lens _cIAMRoles (\ s a -> s{_cIAMRoles = a}) . _Default . _Coerce;---- | The status of the elastic IP (EIP) address.-cElasticIPStatus :: Lens' Cluster (Maybe ElasticIPStatus)-cElasticIPStatus = lens _cElasticIPStatus (\ s a -> s{_cElasticIPStatus = a});---- | The version ID of the Amazon Redshift engine that is running on the cluster.-cClusterVersion :: Lens' Cluster (Maybe Text)-cClusterVersion = lens _cClusterVersion (\ s a -> s{_cClusterVersion = a});---- | The node type for the nodes in the cluster.-cNodeType :: Lens' Cluster (Maybe Text)-cNodeType = lens _cNodeType (\ s a -> s{_cNodeType = a});---- | The date and time that the cluster was created.-cClusterCreateTime :: Lens' Cluster (Maybe UTCTime)-cClusterCreateTime = lens _cClusterCreateTime (\ s a -> s{_cClusterCreateTime = a}) . mapping _Time;---- | The connection endpoint.-cEndpoint :: Lens' Cluster (Maybe Endpoint)-cEndpoint = lens _cEndpoint (\ s a -> s{_cEndpoint = a});---- | A Boolean value that, if @true@ , indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.-cAllowVersionUpgrade :: Lens' Cluster (Maybe Bool)-cAllowVersionUpgrade = lens _cAllowVersionUpgrade (\ s a -> s{_cAllowVersionUpgrade = a});---- | The current state of the cluster. Possible values are the following:     * @available@      * @creating@      * @deleting@      * @final-snapshot@      * @hardware-failure@      * @incompatible-hsm@      * @incompatible-network@      * @incompatible-parameters@      * @incompatible-restore@      * @modifying@      * @rebooting@      * @renaming@      * @resizing@      * @rotating-keys@      * @storage-full@      * @updating-hsm@-cClusterStatus :: Lens' Cluster (Maybe Text)-cClusterStatus = lens _cClusterStatus (\ s a -> s{_cClusterStatus = a});---- | A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.-cPendingModifiedValues :: Lens' Cluster (Maybe PendingModifiedValues)-cPendingModifiedValues = lens _cPendingModifiedValues (\ s a -> s{_cPendingModifiedValues = a});---- | The list of tags for the cluster.-cTags :: Lens' Cluster [Tag]-cTags = lens _cTags (\ s a -> s{_cTags = a}) . _Default . _Coerce;---- | The nodes in the cluster.-cClusterNodes :: Lens' Cluster [ClusterNode]-cClusterNodes = lens _cClusterNodes (\ s a -> s{_cClusterNodes = a}) . _Default . _Coerce;---- | The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named @dev@ dev was created by default.-cDBName :: Lens' Cluster (Maybe Text)-cDBName = lens _cDBName (\ s a -> s{_cDBName = a});--instance FromXML Cluster where-        parseXML x-          = Cluster' <$>-              (x .@? "RestoreStatus") <*>-                (x .@? "EnhancedVpcRouting")-                <*> (x .@? "ClusterSnapshotCopyStatus")-                <*> (x .@? "ClusterRevisionNumber")-                <*> (x .@? "PubliclyAccessible")-                <*> (x .@? "MasterUsername")-                <*> (x .@? "VpcId")-                <*>-                (x .@? "ClusterSecurityGroups" .!@ mempty >>=-                   may (parseXMLList "ClusterSecurityGroup"))-                <*> (x .@? "AutomatedSnapshotRetentionPeriod")-                <*> (x .@? "Encrypted")-                <*> (x .@? "ClusterSubnetGroupName")-                <*> (x .@? "ClusterIdentifier")-                <*> (x .@? "NumberOfNodes")-                <*> (x .@? "ClusterPublicKey")-                <*> (x .@? "PreferredMaintenanceWindow")-                <*> (x .@? "ModifyStatus")-                <*> (x .@? "KmsKeyId")-                <*>-                (x .@? "ClusterParameterGroups" .!@ mempty >>=-                   may (parseXMLList "ClusterParameterGroup"))-                <*> (x .@? "AvailabilityZone")-                <*>-                (x .@? "VpcSecurityGroups" .!@ mempty >>=-                   may (parseXMLList "VpcSecurityGroup"))-                <*> (x .@? "HsmStatus")-                <*>-                (x .@? "IamRoles" .!@ mempty >>=-                   may (parseXMLList "ClusterIamRole"))-                <*> (x .@? "ElasticIpStatus")-                <*> (x .@? "ClusterVersion")-                <*> (x .@? "NodeType")-                <*> (x .@? "ClusterCreateTime")-                <*> (x .@? "Endpoint")-                <*> (x .@? "AllowVersionUpgrade")-                <*> (x .@? "ClusterStatus")-                <*> (x .@? "PendingModifiedValues")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))-                <*>-                (x .@? "ClusterNodes" .!@ mempty >>=-                   may (parseXMLList "member"))-                <*> (x .@? "DBName")--instance Hashable Cluster--instance NFData Cluster---- | An AWS Identity and Access Management (IAM) role that can be used by the associated Amazon Redshift cluster to access other AWS services.------------ /See:/ 'clusterIAMRole' smart constructor.-data ClusterIAMRole = ClusterIAMRole'-    { _cirIAMRoleARN  :: !(Maybe Text)-    , _cirApplyStatus :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterIAMRole' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cirIAMRoleARN' - The Amazon Resource Name (ARN) of the IAM role, for example, @arn:aws:iam::123456789012:role/RedshiftCopyUnload@ .------ * 'cirApplyStatus' - A value that describes the status of the IAM role's association with an Amazon Redshift cluster. The following are possible statuses and descriptions.     * @in-sync@ : The role is available for use by the cluster.     * @adding@ : The role is in the process of being associated with the cluster.     * @removing@ : The role is in the process of being disassociated with the cluster.-clusterIAMRole-    :: ClusterIAMRole-clusterIAMRole =-    ClusterIAMRole'-    { _cirIAMRoleARN = Nothing-    , _cirApplyStatus = Nothing-    }---- | The Amazon Resource Name (ARN) of the IAM role, for example, @arn:aws:iam::123456789012:role/RedshiftCopyUnload@ .-cirIAMRoleARN :: Lens' ClusterIAMRole (Maybe Text)-cirIAMRoleARN = lens _cirIAMRoleARN (\ s a -> s{_cirIAMRoleARN = a});---- | A value that describes the status of the IAM role's association with an Amazon Redshift cluster. The following are possible statuses and descriptions.     * @in-sync@ : The role is available for use by the cluster.     * @adding@ : The role is in the process of being associated with the cluster.     * @removing@ : The role is in the process of being disassociated with the cluster.-cirApplyStatus :: Lens' ClusterIAMRole (Maybe Text)-cirApplyStatus = lens _cirApplyStatus (\ s a -> s{_cirApplyStatus = a});--instance FromXML ClusterIAMRole where-        parseXML x-          = ClusterIAMRole' <$>-              (x .@? "IamRoleArn") <*> (x .@? "ApplyStatus")--instance Hashable ClusterIAMRole--instance NFData ClusterIAMRole---- | The identifier of a node in a cluster.------------ /See:/ 'clusterNode' smart constructor.-data ClusterNode = ClusterNode'-    { _cnNodeRole         :: !(Maybe Text)-    , _cnPrivateIPAddress :: !(Maybe Text)-    , _cnPublicIPAddress  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterNode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cnNodeRole' - Whether the node is a leader node or a compute node.------ * 'cnPrivateIPAddress' - The private IP address of a node within a cluster.------ * 'cnPublicIPAddress' - The public IP address of a node within a cluster.-clusterNode-    :: ClusterNode-clusterNode =-    ClusterNode'-    { _cnNodeRole = Nothing-    , _cnPrivateIPAddress = Nothing-    , _cnPublicIPAddress = Nothing-    }---- | Whether the node is a leader node or a compute node.-cnNodeRole :: Lens' ClusterNode (Maybe Text)-cnNodeRole = lens _cnNodeRole (\ s a -> s{_cnNodeRole = a});---- | The private IP address of a node within a cluster.-cnPrivateIPAddress :: Lens' ClusterNode (Maybe Text)-cnPrivateIPAddress = lens _cnPrivateIPAddress (\ s a -> s{_cnPrivateIPAddress = a});---- | The public IP address of a node within a cluster.-cnPublicIPAddress :: Lens' ClusterNode (Maybe Text)-cnPublicIPAddress = lens _cnPublicIPAddress (\ s a -> s{_cnPublicIPAddress = a});--instance FromXML ClusterNode where-        parseXML x-          = ClusterNode' <$>-              (x .@? "NodeRole") <*> (x .@? "PrivateIPAddress") <*>-                (x .@? "PublicIPAddress")--instance Hashable ClusterNode--instance NFData ClusterNode---- | Describes a parameter group.------------ /See:/ 'clusterParameterGroup' smart constructor.-data ClusterParameterGroup = ClusterParameterGroup'-    { _cpgParameterGroupFamily :: !(Maybe Text)-    , _cpgDescription          :: !(Maybe Text)-    , _cpgTags                 :: !(Maybe [Tag])-    , _cpgParameterGroupName   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterParameterGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgParameterGroupFamily' - The name of the cluster parameter group family that this cluster parameter group is compatible with.------ * 'cpgDescription' - The description of the parameter group.------ * 'cpgTags' - The list of tags for the cluster parameter group.------ * 'cpgParameterGroupName' - The name of the cluster parameter group.-clusterParameterGroup-    :: ClusterParameterGroup-clusterParameterGroup =-    ClusterParameterGroup'-    { _cpgParameterGroupFamily = Nothing-    , _cpgDescription = Nothing-    , _cpgTags = Nothing-    , _cpgParameterGroupName = Nothing-    }---- | The name of the cluster parameter group family that this cluster parameter group is compatible with.-cpgParameterGroupFamily :: Lens' ClusterParameterGroup (Maybe Text)-cpgParameterGroupFamily = lens _cpgParameterGroupFamily (\ s a -> s{_cpgParameterGroupFamily = a});---- | The description of the parameter group.-cpgDescription :: Lens' ClusterParameterGroup (Maybe Text)-cpgDescription = lens _cpgDescription (\ s a -> s{_cpgDescription = a});---- | The list of tags for the cluster parameter group.-cpgTags :: Lens' ClusterParameterGroup [Tag]-cpgTags = lens _cpgTags (\ s a -> s{_cpgTags = a}) . _Default . _Coerce;---- | The name of the cluster parameter group.-cpgParameterGroupName :: Lens' ClusterParameterGroup (Maybe Text)-cpgParameterGroupName = lens _cpgParameterGroupName (\ s a -> s{_cpgParameterGroupName = a});--instance FromXML ClusterParameterGroup where-        parseXML x-          = ClusterParameterGroup' <$>-              (x .@? "ParameterGroupFamily") <*>-                (x .@? "Description")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))-                <*> (x .@? "ParameterGroupName")--instance Hashable ClusterParameterGroup--instance NFData ClusterParameterGroup---- |------------ /See:/ 'clusterParameterGroupNameMessage' smart constructor.-data ClusterParameterGroupNameMessage = ClusterParameterGroupNameMessage'-    { _cpgnmParameterGroupStatus :: !(Maybe Text)-    , _cpgnmParameterGroupName   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterParameterGroupNameMessage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgnmParameterGroupStatus' - The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.------ * 'cpgnmParameterGroupName' - The name of the cluster parameter group.-clusterParameterGroupNameMessage-    :: ClusterParameterGroupNameMessage-clusterParameterGroupNameMessage =-    ClusterParameterGroupNameMessage'-    { _cpgnmParameterGroupStatus = Nothing-    , _cpgnmParameterGroupName = Nothing-    }---- | The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.-cpgnmParameterGroupStatus :: Lens' ClusterParameterGroupNameMessage (Maybe Text)-cpgnmParameterGroupStatus = lens _cpgnmParameterGroupStatus (\ s a -> s{_cpgnmParameterGroupStatus = a});---- | The name of the cluster parameter group.-cpgnmParameterGroupName :: Lens' ClusterParameterGroupNameMessage (Maybe Text)-cpgnmParameterGroupName = lens _cpgnmParameterGroupName (\ s a -> s{_cpgnmParameterGroupName = a});--instance FromXML ClusterParameterGroupNameMessage-         where-        parseXML x-          = ClusterParameterGroupNameMessage' <$>-              (x .@? "ParameterGroupStatus") <*>-                (x .@? "ParameterGroupName")--instance Hashable ClusterParameterGroupNameMessage--instance NFData ClusterParameterGroupNameMessage---- | Describes the status of a parameter group.------------ /See:/ 'clusterParameterGroupStatus' smart constructor.-data ClusterParameterGroupStatus = ClusterParameterGroupStatus'-    { _cpgsClusterParameterStatusList :: !(Maybe [ClusterParameterStatus])-    , _cpgsParameterApplyStatus       :: !(Maybe Text)-    , _cpgsParameterGroupName         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterParameterGroupStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpgsClusterParameterStatusList' - The list of parameter statuses. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .------ * 'cpgsParameterApplyStatus' - The status of parameter updates.------ * 'cpgsParameterGroupName' - The name of the cluster parameter group.-clusterParameterGroupStatus-    :: ClusterParameterGroupStatus-clusterParameterGroupStatus =-    ClusterParameterGroupStatus'-    { _cpgsClusterParameterStatusList = Nothing-    , _cpgsParameterApplyStatus = Nothing-    , _cpgsParameterGroupName = Nothing-    }---- | The list of parameter statuses. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .-cpgsClusterParameterStatusList :: Lens' ClusterParameterGroupStatus [ClusterParameterStatus]-cpgsClusterParameterStatusList = lens _cpgsClusterParameterStatusList (\ s a -> s{_cpgsClusterParameterStatusList = a}) . _Default . _Coerce;---- | The status of parameter updates.-cpgsParameterApplyStatus :: Lens' ClusterParameterGroupStatus (Maybe Text)-cpgsParameterApplyStatus = lens _cpgsParameterApplyStatus (\ s a -> s{_cpgsParameterApplyStatus = a});---- | The name of the cluster parameter group.-cpgsParameterGroupName :: Lens' ClusterParameterGroupStatus (Maybe Text)-cpgsParameterGroupName = lens _cpgsParameterGroupName (\ s a -> s{_cpgsParameterGroupName = a});--instance FromXML ClusterParameterGroupStatus where-        parseXML x-          = ClusterParameterGroupStatus' <$>-              (x .@? "ClusterParameterStatusList" .!@ mempty >>=-                 may (parseXMLList "member"))-                <*> (x .@? "ParameterApplyStatus")-                <*> (x .@? "ParameterGroupName")--instance Hashable ClusterParameterGroupStatus--instance NFData ClusterParameterGroupStatus---- | Describes the status of a parameter group.------------ /See:/ 'clusterParameterStatus' smart constructor.-data ClusterParameterStatus = ClusterParameterStatus'-    { _cpsParameterApplyErrorDescription :: !(Maybe Text)-    , _cpsParameterName                  :: !(Maybe Text)-    , _cpsParameterApplyStatus           :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterParameterStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpsParameterApplyErrorDescription' - The error that prevented the parameter from being applied to the database.------ * 'cpsParameterName' - The name of the parameter.------ * 'cpsParameterApplyStatus' - The status of the parameter that indicates whether the parameter is in sync with the database, waiting for a cluster reboot, or encountered an error when being applied. The following are possible statuses and descriptions.     * @in-sync@ : The parameter value is in sync with the database.     * @pending-reboot@ : The parameter value will be applied after the cluster reboots.     * @applying@ : The parameter value is being applied to the database.     * @invalid-parameter@ : Cannot apply the parameter value because it has an invalid value or syntax.     * @apply-deferred@ : The parameter contains static property changes. The changes are deferred until the cluster reboots.     * @apply-error@ : Cannot connect to the cluster. The parameter change will be applied after the cluster reboots.     * @unknown-error@ : Cannot apply the parameter change right now. The change will be applied after the cluster reboots.-clusterParameterStatus-    :: ClusterParameterStatus-clusterParameterStatus =-    ClusterParameterStatus'-    { _cpsParameterApplyErrorDescription = Nothing-    , _cpsParameterName = Nothing-    , _cpsParameterApplyStatus = Nothing-    }---- | The error that prevented the parameter from being applied to the database.-cpsParameterApplyErrorDescription :: Lens' ClusterParameterStatus (Maybe Text)-cpsParameterApplyErrorDescription = lens _cpsParameterApplyErrorDescription (\ s a -> s{_cpsParameterApplyErrorDescription = a});---- | The name of the parameter.-cpsParameterName :: Lens' ClusterParameterStatus (Maybe Text)-cpsParameterName = lens _cpsParameterName (\ s a -> s{_cpsParameterName = a});---- | The status of the parameter that indicates whether the parameter is in sync with the database, waiting for a cluster reboot, or encountered an error when being applied. The following are possible statuses and descriptions.     * @in-sync@ : The parameter value is in sync with the database.     * @pending-reboot@ : The parameter value will be applied after the cluster reboots.     * @applying@ : The parameter value is being applied to the database.     * @invalid-parameter@ : Cannot apply the parameter value because it has an invalid value or syntax.     * @apply-deferred@ : The parameter contains static property changes. The changes are deferred until the cluster reboots.     * @apply-error@ : Cannot connect to the cluster. The parameter change will be applied after the cluster reboots.     * @unknown-error@ : Cannot apply the parameter change right now. The change will be applied after the cluster reboots.-cpsParameterApplyStatus :: Lens' ClusterParameterStatus (Maybe Text)-cpsParameterApplyStatus = lens _cpsParameterApplyStatus (\ s a -> s{_cpsParameterApplyStatus = a});--instance FromXML ClusterParameterStatus where-        parseXML x-          = ClusterParameterStatus' <$>-              (x .@? "ParameterApplyErrorDescription") <*>-                (x .@? "ParameterName")-                <*> (x .@? "ParameterApplyStatus")--instance Hashable ClusterParameterStatus--instance NFData ClusterParameterStatus---- | Describes a security group.------------ /See:/ 'clusterSecurityGroup' smart constructor.-data ClusterSecurityGroup = ClusterSecurityGroup'-    { _cluClusterSecurityGroupName :: !(Maybe Text)-    , _cluIPRanges                 :: !(Maybe [IPRange])-    , _cluEC2SecurityGroups        :: !(Maybe [EC2SecurityGroup])-    , _cluDescription              :: !(Maybe Text)-    , _cluTags                     :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterSecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cluClusterSecurityGroupName' - The name of the cluster security group to which the operation was applied.------ * 'cluIPRanges' - A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.------ * 'cluEC2SecurityGroups' - A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.------ * 'cluDescription' - A description of the security group.------ * 'cluTags' - The list of tags for the cluster security group.-clusterSecurityGroup-    :: ClusterSecurityGroup-clusterSecurityGroup =-    ClusterSecurityGroup'-    { _cluClusterSecurityGroupName = Nothing-    , _cluIPRanges = Nothing-    , _cluEC2SecurityGroups = Nothing-    , _cluDescription = Nothing-    , _cluTags = Nothing-    }---- | The name of the cluster security group to which the operation was applied.-cluClusterSecurityGroupName :: Lens' ClusterSecurityGroup (Maybe Text)-cluClusterSecurityGroupName = lens _cluClusterSecurityGroupName (\ s a -> s{_cluClusterSecurityGroupName = a});---- | A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.-cluIPRanges :: Lens' ClusterSecurityGroup [IPRange]-cluIPRanges = lens _cluIPRanges (\ s a -> s{_cluIPRanges = a}) . _Default . _Coerce;---- | A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.-cluEC2SecurityGroups :: Lens' ClusterSecurityGroup [EC2SecurityGroup]-cluEC2SecurityGroups = lens _cluEC2SecurityGroups (\ s a -> s{_cluEC2SecurityGroups = a}) . _Default . _Coerce;---- | A description of the security group.-cluDescription :: Lens' ClusterSecurityGroup (Maybe Text)-cluDescription = lens _cluDescription (\ s a -> s{_cluDescription = a});---- | The list of tags for the cluster security group.-cluTags :: Lens' ClusterSecurityGroup [Tag]-cluTags = lens _cluTags (\ s a -> s{_cluTags = a}) . _Default . _Coerce;--instance FromXML ClusterSecurityGroup where-        parseXML x-          = ClusterSecurityGroup' <$>-              (x .@? "ClusterSecurityGroupName") <*>-                (x .@? "IPRanges" .!@ mempty >>=-                   may (parseXMLList "IPRange"))-                <*>-                (x .@? "EC2SecurityGroups" .!@ mempty >>=-                   may (parseXMLList "EC2SecurityGroup"))-                <*> (x .@? "Description")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable ClusterSecurityGroup--instance NFData ClusterSecurityGroup---- | Describes a cluster security group.------------ /See:/ 'clusterSecurityGroupMembership' smart constructor.-data ClusterSecurityGroupMembership = ClusterSecurityGroupMembership'-    { _csgmStatus                   :: !(Maybe Text)-    , _csgmClusterSecurityGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterSecurityGroupMembership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgmStatus' - The status of the cluster security group.------ * 'csgmClusterSecurityGroupName' - The name of the cluster security group.-clusterSecurityGroupMembership-    :: ClusterSecurityGroupMembership-clusterSecurityGroupMembership =-    ClusterSecurityGroupMembership'-    { _csgmStatus = Nothing-    , _csgmClusterSecurityGroupName = Nothing-    }---- | The status of the cluster security group.-csgmStatus :: Lens' ClusterSecurityGroupMembership (Maybe Text)-csgmStatus = lens _csgmStatus (\ s a -> s{_csgmStatus = a});---- | The name of the cluster security group.-csgmClusterSecurityGroupName :: Lens' ClusterSecurityGroupMembership (Maybe Text)-csgmClusterSecurityGroupName = lens _csgmClusterSecurityGroupName (\ s a -> s{_csgmClusterSecurityGroupName = a});--instance FromXML ClusterSecurityGroupMembership where-        parseXML x-          = ClusterSecurityGroupMembership' <$>-              (x .@? "Status") <*>-                (x .@? "ClusterSecurityGroupName")--instance Hashable ClusterSecurityGroupMembership--instance NFData ClusterSecurityGroupMembership---- | Returns the destination region and retention period that are configured for cross-region snapshot copy.------------ /See:/ 'clusterSnapshotCopyStatus' smart constructor.-data ClusterSnapshotCopyStatus = ClusterSnapshotCopyStatus'-    { _cscsRetentionPeriod       :: !(Maybe Integer)-    , _cscsDestinationRegion     :: !(Maybe Text)-    , _cscsSnapshotCopyGrantName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterSnapshotCopyStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cscsRetentionPeriod' - The number of days that automated snapshots are retained in the destination region after they are copied from a source region.------ * 'cscsDestinationRegion' - The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.------ * 'cscsSnapshotCopyGrantName' - The name of the snapshot copy grant.-clusterSnapshotCopyStatus-    :: ClusterSnapshotCopyStatus-clusterSnapshotCopyStatus =-    ClusterSnapshotCopyStatus'-    { _cscsRetentionPeriod = Nothing-    , _cscsDestinationRegion = Nothing-    , _cscsSnapshotCopyGrantName = Nothing-    }---- | The number of days that automated snapshots are retained in the destination region after they are copied from a source region.-cscsRetentionPeriod :: Lens' ClusterSnapshotCopyStatus (Maybe Integer)-cscsRetentionPeriod = lens _cscsRetentionPeriod (\ s a -> s{_cscsRetentionPeriod = a});---- | The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.-cscsDestinationRegion :: Lens' ClusterSnapshotCopyStatus (Maybe Text)-cscsDestinationRegion = lens _cscsDestinationRegion (\ s a -> s{_cscsDestinationRegion = a});---- | The name of the snapshot copy grant.-cscsSnapshotCopyGrantName :: Lens' ClusterSnapshotCopyStatus (Maybe Text)-cscsSnapshotCopyGrantName = lens _cscsSnapshotCopyGrantName (\ s a -> s{_cscsSnapshotCopyGrantName = a});--instance FromXML ClusterSnapshotCopyStatus where-        parseXML x-          = ClusterSnapshotCopyStatus' <$>-              (x .@? "RetentionPeriod") <*>-                (x .@? "DestinationRegion")-                <*> (x .@? "SnapshotCopyGrantName")--instance Hashable ClusterSnapshotCopyStatus--instance NFData ClusterSnapshotCopyStatus---- | Describes a subnet group.------------ /See:/ 'clusterSubnetGroup' smart constructor.-data ClusterSubnetGroup = ClusterSubnetGroup'-    { _csgVPCId                  :: !(Maybe Text)-    , _csgSubnets                :: !(Maybe [Subnet])-    , _csgClusterSubnetGroupName :: !(Maybe Text)-    , _csgSubnetGroupStatus      :: !(Maybe Text)-    , _csgDescription            :: !(Maybe Text)-    , _csgTags                   :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterSubnetGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csgVPCId' - The VPC ID of the cluster subnet group.------ * 'csgSubnets' - A list of the VPC 'Subnet' elements.------ * 'csgClusterSubnetGroupName' - The name of the cluster subnet group.------ * 'csgSubnetGroupStatus' - The status of the cluster subnet group. Possible values are @Complete@ , @Incomplete@ and @Invalid@ .------ * 'csgDescription' - The description of the cluster subnet group.------ * 'csgTags' - The list of tags for the cluster subnet group.-clusterSubnetGroup-    :: ClusterSubnetGroup-clusterSubnetGroup =-    ClusterSubnetGroup'-    { _csgVPCId = Nothing-    , _csgSubnets = Nothing-    , _csgClusterSubnetGroupName = Nothing-    , _csgSubnetGroupStatus = Nothing-    , _csgDescription = Nothing-    , _csgTags = Nothing-    }---- | The VPC ID of the cluster subnet group.-csgVPCId :: Lens' ClusterSubnetGroup (Maybe Text)-csgVPCId = lens _csgVPCId (\ s a -> s{_csgVPCId = a});---- | A list of the VPC 'Subnet' elements.-csgSubnets :: Lens' ClusterSubnetGroup [Subnet]-csgSubnets = lens _csgSubnets (\ s a -> s{_csgSubnets = a}) . _Default . _Coerce;---- | The name of the cluster subnet group.-csgClusterSubnetGroupName :: Lens' ClusterSubnetGroup (Maybe Text)-csgClusterSubnetGroupName = lens _csgClusterSubnetGroupName (\ s a -> s{_csgClusterSubnetGroupName = a});---- | The status of the cluster subnet group. Possible values are @Complete@ , @Incomplete@ and @Invalid@ .-csgSubnetGroupStatus :: Lens' ClusterSubnetGroup (Maybe Text)-csgSubnetGroupStatus = lens _csgSubnetGroupStatus (\ s a -> s{_csgSubnetGroupStatus = a});---- | The description of the cluster subnet group.-csgDescription :: Lens' ClusterSubnetGroup (Maybe Text)-csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a});---- | The list of tags for the cluster subnet group.-csgTags :: Lens' ClusterSubnetGroup [Tag]-csgTags = lens _csgTags (\ s a -> s{_csgTags = a}) . _Default . _Coerce;--instance FromXML ClusterSubnetGroup where-        parseXML x-          = ClusterSubnetGroup' <$>-              (x .@? "VpcId") <*>-                (x .@? "Subnets" .!@ mempty >>=-                   may (parseXMLList "Subnet"))-                <*> (x .@? "ClusterSubnetGroupName")-                <*> (x .@? "SubnetGroupStatus")-                <*> (x .@? "Description")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable ClusterSubnetGroup--instance NFData ClusterSubnetGroup---- | Describes a cluster version, including the parameter group family and description of the version.------------ /See:/ 'clusterVersion' smart constructor.-data ClusterVersion = ClusterVersion'-    { _cvClusterParameterGroupFamily :: !(Maybe Text)-    , _cvClusterVersion              :: !(Maybe Text)-    , _cvDescription                 :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClusterVersion' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvClusterParameterGroupFamily' - The name of the cluster parameter group family for the cluster.------ * 'cvClusterVersion' - The version number used by the cluster.------ * 'cvDescription' - The description of the cluster version.-clusterVersion-    :: ClusterVersion-clusterVersion =-    ClusterVersion'-    { _cvClusterParameterGroupFamily = Nothing-    , _cvClusterVersion = Nothing-    , _cvDescription = Nothing-    }---- | The name of the cluster parameter group family for the cluster.-cvClusterParameterGroupFamily :: Lens' ClusterVersion (Maybe Text)-cvClusterParameterGroupFamily = lens _cvClusterParameterGroupFamily (\ s a -> s{_cvClusterParameterGroupFamily = a});---- | The version number used by the cluster.-cvClusterVersion :: Lens' ClusterVersion (Maybe Text)-cvClusterVersion = lens _cvClusterVersion (\ s a -> s{_cvClusterVersion = a});---- | The description of the cluster version.-cvDescription :: Lens' ClusterVersion (Maybe Text)-cvDescription = lens _cvDescription (\ s a -> s{_cvDescription = a});--instance FromXML ClusterVersion where-        parseXML x-          = ClusterVersion' <$>-              (x .@? "ClusterParameterGroupFamily") <*>-                (x .@? "ClusterVersion")-                <*> (x .@? "Description")--instance Hashable ClusterVersion--instance NFData ClusterVersion---- | Describes the default cluster parameters for a parameter group family.------------ /See:/ 'defaultClusterParameters' smart constructor.-data DefaultClusterParameters = DefaultClusterParameters'-    { _dcpMarker               :: !(Maybe Text)-    , _dcpParameters           :: !(Maybe [Parameter])-    , _dcpParameterGroupFamily :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DefaultClusterParameters' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dcpMarker' - A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request.------ * 'dcpParameters' - The list of cluster default parameters.------ * 'dcpParameterGroupFamily' - The name of the cluster parameter group family to which the engine default parameters apply.-defaultClusterParameters-    :: DefaultClusterParameters-defaultClusterParameters =-    DefaultClusterParameters'-    { _dcpMarker = Nothing-    , _dcpParameters = Nothing-    , _dcpParameterGroupFamily = Nothing-    }---- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request.-dcpMarker :: Lens' DefaultClusterParameters (Maybe Text)-dcpMarker = lens _dcpMarker (\ s a -> s{_dcpMarker = a});---- | The list of cluster default parameters.-dcpParameters :: Lens' DefaultClusterParameters [Parameter]-dcpParameters = lens _dcpParameters (\ s a -> s{_dcpParameters = a}) . _Default . _Coerce;---- | The name of the cluster parameter group family to which the engine default parameters apply.-dcpParameterGroupFamily :: Lens' DefaultClusterParameters (Maybe Text)-dcpParameterGroupFamily = lens _dcpParameterGroupFamily (\ s a -> s{_dcpParameterGroupFamily = a});--instance FromXML DefaultClusterParameters where-        parseXML x-          = DefaultClusterParameters' <$>-              (x .@? "Marker") <*>-                (x .@? "Parameters" .!@ mempty >>=-                   may (parseXMLList "Parameter"))-                <*> (x .@? "ParameterGroupFamily")--instance Hashable DefaultClusterParameters--instance NFData DefaultClusterParameters---- | Describes an Amazon EC2 security group.------------ /See:/ 'ec2SecurityGroup' smart constructor.-data EC2SecurityGroup = EC2SecurityGroup'-    { _esgStatus                  :: !(Maybe Text)-    , _esgEC2SecurityGroupOwnerId :: !(Maybe Text)-    , _esgEC2SecurityGroupName    :: !(Maybe Text)-    , _esgTags                    :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EC2SecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'esgStatus' - The status of the EC2 security group.------ * 'esgEC2SecurityGroupOwnerId' - The AWS ID of the owner of the EC2 security group specified in the @EC2SecurityGroupName@ field.------ * 'esgEC2SecurityGroupName' - The name of the EC2 Security Group.------ * 'esgTags' - The list of tags for the EC2 security group.-ec2SecurityGroup-    :: EC2SecurityGroup-ec2SecurityGroup =-    EC2SecurityGroup'-    { _esgStatus = Nothing-    , _esgEC2SecurityGroupOwnerId = Nothing-    , _esgEC2SecurityGroupName = Nothing-    , _esgTags = Nothing-    }---- | The status of the EC2 security group.-esgStatus :: Lens' EC2SecurityGroup (Maybe Text)-esgStatus = lens _esgStatus (\ s a -> s{_esgStatus = a});---- | The AWS ID of the owner of the EC2 security group specified in the @EC2SecurityGroupName@ field.-esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)-esgEC2SecurityGroupOwnerId = lens _esgEC2SecurityGroupOwnerId (\ s a -> s{_esgEC2SecurityGroupOwnerId = a});---- | The name of the EC2 Security Group.-esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)-esgEC2SecurityGroupName = lens _esgEC2SecurityGroupName (\ s a -> s{_esgEC2SecurityGroupName = a});---- | The list of tags for the EC2 security group.-esgTags :: Lens' EC2SecurityGroup [Tag]-esgTags = lens _esgTags (\ s a -> s{_esgTags = a}) . _Default . _Coerce;--instance FromXML EC2SecurityGroup where-        parseXML x-          = EC2SecurityGroup' <$>-              (x .@? "Status") <*>-                (x .@? "EC2SecurityGroupOwnerId")-                <*> (x .@? "EC2SecurityGroupName")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable EC2SecurityGroup--instance NFData EC2SecurityGroup---- | Describes the status of the elastic IP (EIP) address.------------ /See:/ 'elasticIPStatus' smart constructor.-data ElasticIPStatus = ElasticIPStatus'-    { _eisStatus    :: !(Maybe Text)-    , _eisElasticIP :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ElasticIPStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eisStatus' - The status of the elastic IP (EIP) address.------ * 'eisElasticIP' - The elastic IP (EIP) address for the cluster.-elasticIPStatus-    :: ElasticIPStatus-elasticIPStatus =-    ElasticIPStatus'-    { _eisStatus = Nothing-    , _eisElasticIP = Nothing-    }---- | The status of the elastic IP (EIP) address.-eisStatus :: Lens' ElasticIPStatus (Maybe Text)-eisStatus = lens _eisStatus (\ s a -> s{_eisStatus = a});---- | The elastic IP (EIP) address for the cluster.-eisElasticIP :: Lens' ElasticIPStatus (Maybe Text)-eisElasticIP = lens _eisElasticIP (\ s a -> s{_eisElasticIP = a});--instance FromXML ElasticIPStatus where-        parseXML x-          = ElasticIPStatus' <$>-              (x .@? "Status") <*> (x .@? "ElasticIp")--instance Hashable ElasticIPStatus--instance NFData ElasticIPStatus---- | Describes a connection endpoint.------------ /See:/ 'endpoint' smart constructor.-data Endpoint = Endpoint'-    { _eAddress :: !(Maybe Text)-    , _ePort    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Endpoint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eAddress' - The DNS address of the Cluster.------ * 'ePort' - The port that the database engine is listening on.-endpoint-    :: Endpoint-endpoint =-    Endpoint'-    { _eAddress = Nothing-    , _ePort = Nothing-    }---- | The DNS address of the Cluster.-eAddress :: Lens' Endpoint (Maybe Text)-eAddress = lens _eAddress (\ s a -> s{_eAddress = a});---- | The port that the database engine is listening on.-ePort :: Lens' Endpoint (Maybe Int)-ePort = lens _ePort (\ s a -> s{_ePort = a});--instance FromXML Endpoint where-        parseXML x-          = Endpoint' <$> (x .@? "Address") <*> (x .@? "Port")--instance Hashable Endpoint--instance NFData Endpoint---- | Describes an event.------------ /See:/ 'event' smart constructor.-data Event = Event'-    { _eSourceType       :: !(Maybe SourceType)-    , _eSeverity         :: !(Maybe Text)-    , _eSourceIdentifier :: !(Maybe Text)-    , _eDate             :: !(Maybe ISO8601)-    , _eEventCategories  :: !(Maybe [Text])-    , _eMessage          :: !(Maybe Text)-    , _eEventId          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Event' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eSourceType' - The source type for this event.------ * 'eSeverity' - The severity of the event. Values: ERROR, INFO------ * 'eSourceIdentifier' - The identifier for the source of the event.------ * 'eDate' - The date and time of the event.------ * 'eEventCategories' - A list of the event categories. Values: Configuration, Management, Monitoring, Security------ * 'eMessage' - The text of this event.------ * 'eEventId' - The identifier of the event.-event-    :: Event-event =-    Event'-    { _eSourceType = Nothing-    , _eSeverity = Nothing-    , _eSourceIdentifier = Nothing-    , _eDate = Nothing-    , _eEventCategories = Nothing-    , _eMessage = Nothing-    , _eEventId = Nothing-    }---- | The source type for this event.-eSourceType :: Lens' Event (Maybe SourceType)-eSourceType = lens _eSourceType (\ s a -> s{_eSourceType = a});---- | The severity of the event. Values: ERROR, INFO-eSeverity :: Lens' Event (Maybe Text)-eSeverity = lens _eSeverity (\ s a -> s{_eSeverity = a});---- | The identifier for the source of the event.-eSourceIdentifier :: Lens' Event (Maybe Text)-eSourceIdentifier = lens _eSourceIdentifier (\ s a -> s{_eSourceIdentifier = a});---- | The date and time of the event.-eDate :: Lens' Event (Maybe UTCTime)-eDate = lens _eDate (\ s a -> s{_eDate = a}) . mapping _Time;---- | A list of the event categories. Values: Configuration, Management, Monitoring, Security-eEventCategories :: Lens' Event [Text]-eEventCategories = lens _eEventCategories (\ s a -> s{_eEventCategories = a}) . _Default . _Coerce;---- | The text of this event.-eMessage :: Lens' Event (Maybe Text)-eMessage = lens _eMessage (\ s a -> s{_eMessage = a});---- | The identifier of the event.-eEventId :: Lens' Event (Maybe Text)-eEventId = lens _eEventId (\ s a -> s{_eEventId = a});--instance FromXML Event where-        parseXML x-          = Event' <$>-              (x .@? "SourceType") <*> (x .@? "Severity") <*>-                (x .@? "SourceIdentifier")-                <*> (x .@? "Date")-                <*>-                (x .@? "EventCategories" .!@ mempty >>=-                   may (parseXMLList "EventCategory"))-                <*> (x .@? "Message")-                <*> (x .@? "EventId")--instance Hashable Event--instance NFData Event---- | Describes event categories.------------ /See:/ 'eventCategoriesMap' smart constructor.-data EventCategoriesMap = EventCategoriesMap'-    { _ecmSourceType :: !(Maybe Text)-    , _ecmEvents     :: !(Maybe [EventInfoMap])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EventCategoriesMap' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ecmSourceType' - The source type, such as cluster or cluster-snapshot, that the returned categories belong to.------ * 'ecmEvents' - The events in the event category.-eventCategoriesMap-    :: EventCategoriesMap-eventCategoriesMap =-    EventCategoriesMap'-    { _ecmSourceType = Nothing-    , _ecmEvents = Nothing-    }---- | The source type, such as cluster or cluster-snapshot, that the returned categories belong to.-ecmSourceType :: Lens' EventCategoriesMap (Maybe Text)-ecmSourceType = lens _ecmSourceType (\ s a -> s{_ecmSourceType = a});---- | The events in the event category.-ecmEvents :: Lens' EventCategoriesMap [EventInfoMap]-ecmEvents = lens _ecmEvents (\ s a -> s{_ecmEvents = a}) . _Default . _Coerce;--instance FromXML EventCategoriesMap where-        parseXML x-          = EventCategoriesMap' <$>-              (x .@? "SourceType") <*>-                (x .@? "Events" .!@ mempty >>=-                   may (parseXMLList "EventInfoMap"))--instance Hashable EventCategoriesMap--instance NFData EventCategoriesMap---- | Describes event information.------------ /See:/ 'eventInfoMap' smart constructor.-data EventInfoMap = EventInfoMap'-    { _eimEventDescription :: !(Maybe Text)-    , _eimSeverity         :: !(Maybe Text)-    , _eimEventCategories  :: !(Maybe [Text])-    , _eimEventId          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EventInfoMap' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eimEventDescription' - The description of an Amazon Redshift event.------ * 'eimSeverity' - The severity of the event. Values: ERROR, INFO------ * 'eimEventCategories' - The category of an Amazon Redshift event.------ * 'eimEventId' - The identifier of an Amazon Redshift event.-eventInfoMap-    :: EventInfoMap-eventInfoMap =-    EventInfoMap'-    { _eimEventDescription = Nothing-    , _eimSeverity = Nothing-    , _eimEventCategories = Nothing-    , _eimEventId = Nothing-    }---- | The description of an Amazon Redshift event.-eimEventDescription :: Lens' EventInfoMap (Maybe Text)-eimEventDescription = lens _eimEventDescription (\ s a -> s{_eimEventDescription = a});---- | The severity of the event. Values: ERROR, INFO-eimSeverity :: Lens' EventInfoMap (Maybe Text)-eimSeverity = lens _eimSeverity (\ s a -> s{_eimSeverity = a});---- | The category of an Amazon Redshift event.-eimEventCategories :: Lens' EventInfoMap [Text]-eimEventCategories = lens _eimEventCategories (\ s a -> s{_eimEventCategories = a}) . _Default . _Coerce;---- | The identifier of an Amazon Redshift event.-eimEventId :: Lens' EventInfoMap (Maybe Text)-eimEventId = lens _eimEventId (\ s a -> s{_eimEventId = a});--instance FromXML EventInfoMap where-        parseXML x-          = EventInfoMap' <$>-              (x .@? "EventDescription") <*> (x .@? "Severity") <*>-                (x .@? "EventCategories" .!@ mempty >>=-                   may (parseXMLList "EventCategory"))-                <*> (x .@? "EventId")--instance Hashable EventInfoMap--instance NFData EventInfoMap---- | Describes event subscriptions.------------ /See:/ 'eventSubscription' smart constructor.-data EventSubscription = EventSubscription'-    { _esStatus                   :: !(Maybe Text)-    , _esCustomerAWSId            :: !(Maybe Text)-    , _esCustSubscriptionId       :: !(Maybe Text)-    , _esSNSTopicARN              :: !(Maybe Text)-    , _esEnabled                  :: !(Maybe Bool)-    , _esSourceType               :: !(Maybe Text)-    , _esSeverity                 :: !(Maybe Text)-    , _esSubscriptionCreationTime :: !(Maybe ISO8601)-    , _esEventCategoriesList      :: !(Maybe [Text])-    , _esTags                     :: !(Maybe [Tag])-    , _esSourceIdsList            :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EventSubscription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'esStatus' - The status of the Amazon Redshift event notification subscription. Constraints:     * Can be one of the following: active | no-permission | topic-not-exist     * The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.------ * 'esCustomerAWSId' - The AWS customer account associated with the Amazon Redshift event notification subscription.------ * 'esCustSubscriptionId' - The name of the Amazon Redshift event notification subscription.------ * 'esSNSTopicARN' - The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.------ * 'esEnabled' - A Boolean value indicating whether the subscription is enabled. @true@ indicates the subscription is enabled.------ * 'esSourceType' - The source type of the events returned the Amazon Redshift event notification, such as cluster, or cluster-snapshot.------ * 'esSeverity' - The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO------ * 'esSubscriptionCreationTime' - The date and time the Amazon Redshift event notification subscription was created.------ * 'esEventCategoriesList' - The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security------ * 'esTags' - The list of tags for the event subscription.------ * 'esSourceIdsList' - A list of the sources that publish events to the Amazon Redshift event notification subscription.-eventSubscription-    :: EventSubscription-eventSubscription =-    EventSubscription'-    { _esStatus = Nothing-    , _esCustomerAWSId = Nothing-    , _esCustSubscriptionId = Nothing-    , _esSNSTopicARN = Nothing-    , _esEnabled = Nothing-    , _esSourceType = Nothing-    , _esSeverity = Nothing-    , _esSubscriptionCreationTime = Nothing-    , _esEventCategoriesList = Nothing-    , _esTags = Nothing-    , _esSourceIdsList = Nothing-    }---- | The status of the Amazon Redshift event notification subscription. Constraints:     * Can be one of the following: active | no-permission | topic-not-exist     * The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.-esStatus :: Lens' EventSubscription (Maybe Text)-esStatus = lens _esStatus (\ s a -> s{_esStatus = a});---- | The AWS customer account associated with the Amazon Redshift event notification subscription.-esCustomerAWSId :: Lens' EventSubscription (Maybe Text)-esCustomerAWSId = lens _esCustomerAWSId (\ s a -> s{_esCustomerAWSId = a});---- | The name of the Amazon Redshift event notification subscription.-esCustSubscriptionId :: Lens' EventSubscription (Maybe Text)-esCustSubscriptionId = lens _esCustSubscriptionId (\ s a -> s{_esCustSubscriptionId = a});---- | The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.-esSNSTopicARN :: Lens' EventSubscription (Maybe Text)-esSNSTopicARN = lens _esSNSTopicARN (\ s a -> s{_esSNSTopicARN = a});---- | A Boolean value indicating whether the subscription is enabled. @true@ indicates the subscription is enabled.-esEnabled :: Lens' EventSubscription (Maybe Bool)-esEnabled = lens _esEnabled (\ s a -> s{_esEnabled = a});---- | The source type of the events returned the Amazon Redshift event notification, such as cluster, or cluster-snapshot.-esSourceType :: Lens' EventSubscription (Maybe Text)-esSourceType = lens _esSourceType (\ s a -> s{_esSourceType = a});---- | The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO-esSeverity :: Lens' EventSubscription (Maybe Text)-esSeverity = lens _esSeverity (\ s a -> s{_esSeverity = a});---- | The date and time the Amazon Redshift event notification subscription was created.-esSubscriptionCreationTime :: Lens' EventSubscription (Maybe UTCTime)-esSubscriptionCreationTime = lens _esSubscriptionCreationTime (\ s a -> s{_esSubscriptionCreationTime = a}) . mapping _Time;---- | The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security-esEventCategoriesList :: Lens' EventSubscription [Text]-esEventCategoriesList = lens _esEventCategoriesList (\ s a -> s{_esEventCategoriesList = a}) . _Default . _Coerce;---- | The list of tags for the event subscription.-esTags :: Lens' EventSubscription [Tag]-esTags = lens _esTags (\ s a -> s{_esTags = a}) . _Default . _Coerce;---- | A list of the sources that publish events to the Amazon Redshift event notification subscription.-esSourceIdsList :: Lens' EventSubscription [Text]-esSourceIdsList = lens _esSourceIdsList (\ s a -> s{_esSourceIdsList = a}) . _Default . _Coerce;--instance FromXML EventSubscription where-        parseXML x-          = EventSubscription' <$>-              (x .@? "Status") <*> (x .@? "CustomerAwsId") <*>-                (x .@? "CustSubscriptionId")-                <*> (x .@? "SnsTopicArn")-                <*> (x .@? "Enabled")-                <*> (x .@? "SourceType")-                <*> (x .@? "Severity")-                <*> (x .@? "SubscriptionCreationTime")-                <*>-                (x .@? "EventCategoriesList" .!@ mempty >>=-                   may (parseXMLList "EventCategory"))-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))-                <*>-                (x .@? "SourceIdsList" .!@ mempty >>=-                   may (parseXMLList "SourceId"))--instance Hashable EventSubscription--instance NFData EventSubscription---- | Returns information about an HSM client certificate. The certificate is stored in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift cluster to encrypt data files.------------ /See:/ 'hsmClientCertificate' smart constructor.-data HSMClientCertificate = HSMClientCertificate'-    { _hccHSMClientCertificateIdentifier :: !(Maybe Text)-    , _hccHSMClientCertificatePublicKey  :: !(Maybe Text)-    , _hccTags                           :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HSMClientCertificate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hccHSMClientCertificateIdentifier' - The identifier of the HSM client certificate.------ * 'hccHSMClientCertificatePublicKey' - The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.------ * 'hccTags' - The list of tags for the HSM client certificate.-hsmClientCertificate-    :: HSMClientCertificate-hsmClientCertificate =-    HSMClientCertificate'-    { _hccHSMClientCertificateIdentifier = Nothing-    , _hccHSMClientCertificatePublicKey = Nothing-    , _hccTags = Nothing-    }---- | The identifier of the HSM client certificate.-hccHSMClientCertificateIdentifier :: Lens' HSMClientCertificate (Maybe Text)-hccHSMClientCertificateIdentifier = lens _hccHSMClientCertificateIdentifier (\ s a -> s{_hccHSMClientCertificateIdentifier = a});---- | The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.-hccHSMClientCertificatePublicKey :: Lens' HSMClientCertificate (Maybe Text)-hccHSMClientCertificatePublicKey = lens _hccHSMClientCertificatePublicKey (\ s a -> s{_hccHSMClientCertificatePublicKey = a});---- | The list of tags for the HSM client certificate.-hccTags :: Lens' HSMClientCertificate [Tag]-hccTags = lens _hccTags (\ s a -> s{_hccTags = a}) . _Default . _Coerce;--instance FromXML HSMClientCertificate where-        parseXML x-          = HSMClientCertificate' <$>-              (x .@? "HsmClientCertificateIdentifier") <*>-                (x .@? "HsmClientCertificatePublicKey")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable HSMClientCertificate--instance NFData HSMClientCertificate---- | Returns information about an HSM configuration, which is an object that describes to Amazon Redshift clusters the information they require to connect to an HSM where they can store database encryption keys.------------ /See:/ 'hsmConfiguration' smart constructor.-data HSMConfiguration = HSMConfiguration'-    { _hcHSMConfigurationIdentifier :: !(Maybe Text)-    , _hcHSMPartitionName           :: !(Maybe Text)-    , _hcDescription                :: !(Maybe Text)-    , _hcTags                       :: !(Maybe [Tag])-    , _hcHSMIPAddress               :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HSMConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hcHSMConfigurationIdentifier' - The name of the Amazon Redshift HSM configuration.------ * 'hcHSMPartitionName' - The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.------ * 'hcDescription' - A text description of the HSM configuration.------ * 'hcTags' - The list of tags for the HSM configuration.------ * 'hcHSMIPAddress' - The IP address that the Amazon Redshift cluster must use to access the HSM.-hsmConfiguration-    :: HSMConfiguration-hsmConfiguration =-    HSMConfiguration'-    { _hcHSMConfigurationIdentifier = Nothing-    , _hcHSMPartitionName = Nothing-    , _hcDescription = Nothing-    , _hcTags = Nothing-    , _hcHSMIPAddress = Nothing-    }---- | The name of the Amazon Redshift HSM configuration.-hcHSMConfigurationIdentifier :: Lens' HSMConfiguration (Maybe Text)-hcHSMConfigurationIdentifier = lens _hcHSMConfigurationIdentifier (\ s a -> s{_hcHSMConfigurationIdentifier = a});---- | The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.-hcHSMPartitionName :: Lens' HSMConfiguration (Maybe Text)-hcHSMPartitionName = lens _hcHSMPartitionName (\ s a -> s{_hcHSMPartitionName = a});---- | A text description of the HSM configuration.-hcDescription :: Lens' HSMConfiguration (Maybe Text)-hcDescription = lens _hcDescription (\ s a -> s{_hcDescription = a});---- | The list of tags for the HSM configuration.-hcTags :: Lens' HSMConfiguration [Tag]-hcTags = lens _hcTags (\ s a -> s{_hcTags = a}) . _Default . _Coerce;---- | The IP address that the Amazon Redshift cluster must use to access the HSM.-hcHSMIPAddress :: Lens' HSMConfiguration (Maybe Text)-hcHSMIPAddress = lens _hcHSMIPAddress (\ s a -> s{_hcHSMIPAddress = a});--instance FromXML HSMConfiguration where-        parseXML x-          = HSMConfiguration' <$>-              (x .@? "HsmConfigurationIdentifier") <*>-                (x .@? "HsmPartitionName")-                <*> (x .@? "Description")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))-                <*> (x .@? "HsmIpAddress")--instance Hashable HSMConfiguration--instance NFData HSMConfiguration---- | Describes the status of changes to HSM settings.------------ /See:/ 'hsmStatus' smart constructor.-data HSMStatus = HSMStatus'-    { _hsStatus                         :: !(Maybe Text)-    , _hsHSMConfigurationIdentifier     :: !(Maybe Text)-    , _hsHSMClientCertificateIdentifier :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HSMStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hsStatus' - Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying------ * 'hsHSMConfigurationIdentifier' - 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.------ * 'hsHSMClientCertificateIdentifier' - Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.-hsmStatus-    :: HSMStatus-hsmStatus =-    HSMStatus'-    { _hsStatus = Nothing-    , _hsHSMConfigurationIdentifier = Nothing-    , _hsHSMClientCertificateIdentifier = Nothing-    }---- | Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying-hsStatus :: Lens' HSMStatus (Maybe Text)-hsStatus = lens _hsStatus (\ s a -> s{_hsStatus = a});---- | 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.-hsHSMConfigurationIdentifier :: Lens' HSMStatus (Maybe Text)-hsHSMConfigurationIdentifier = lens _hsHSMConfigurationIdentifier (\ s a -> s{_hsHSMConfigurationIdentifier = a});---- | Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.-hsHSMClientCertificateIdentifier :: Lens' HSMStatus (Maybe Text)-hsHSMClientCertificateIdentifier = lens _hsHSMClientCertificateIdentifier (\ s a -> s{_hsHSMClientCertificateIdentifier = a});--instance FromXML HSMStatus where-        parseXML x-          = HSMStatus' <$>-              (x .@? "Status") <*>-                (x .@? "HsmConfigurationIdentifier")-                <*> (x .@? "HsmClientCertificateIdentifier")--instance Hashable HSMStatus--instance NFData HSMStatus---- | Describes an IP range used in a security group.------------ /See:/ 'ipRange' smart constructor.-data IPRange = IPRange'-    { _irStatus :: !(Maybe Text)-    , _irCIdRIP :: !(Maybe Text)-    , _irTags   :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'irStatus' - The status of the IP range, for example, "authorized".------ * 'irCIdRIP' - The IP range in Classless Inter-Domain Routing (CIDR) notation.------ * 'irTags' - The list of tags for the IP range.-ipRange-    :: IPRange-ipRange =-    IPRange'-    { _irStatus = Nothing-    , _irCIdRIP = Nothing-    , _irTags = Nothing-    }---- | The status of the IP range, for example, "authorized".-irStatus :: Lens' IPRange (Maybe Text)-irStatus = lens _irStatus (\ s a -> s{_irStatus = a});---- | The IP range in Classless Inter-Domain Routing (CIDR) notation.-irCIdRIP :: Lens' IPRange (Maybe Text)-irCIdRIP = lens _irCIdRIP (\ s a -> s{_irCIdRIP = a});---- | The list of tags for the IP range.-irTags :: Lens' IPRange [Tag]-irTags = lens _irTags (\ s a -> s{_irTags = a}) . _Default . _Coerce;--instance FromXML IPRange where-        parseXML x-          = IPRange' <$>-              (x .@? "Status") <*> (x .@? "CIDRIP") <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable IPRange--instance NFData IPRange---- | Describes the status of logging for a cluster.------------ /See:/ 'loggingStatus' smart constructor.-data LoggingStatus = LoggingStatus'-    { _lsLastFailureTime            :: !(Maybe ISO8601)-    , _lsLastSuccessfulDeliveryTime :: !(Maybe ISO8601)-    , _lsS3KeyPrefix                :: !(Maybe Text)-    , _lsBucketName                 :: !(Maybe Text)-    , _lsLoggingEnabled             :: !(Maybe Bool)-    , _lsLastFailureMessage         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LoggingStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsLastFailureTime' - The last time when logs failed to be delivered.------ * 'lsLastSuccessfulDeliveryTime' - The last time that logs were delivered.------ * 'lsS3KeyPrefix' - The prefix applied to the log file names.------ * 'lsBucketName' - The name of the S3 bucket where the log files are stored.------ * 'lsLoggingEnabled' - @true@ if logging is on, @false@ if logging is off.------ * 'lsLastFailureMessage' - The message indicating that logs failed to be delivered.-loggingStatus-    :: LoggingStatus-loggingStatus =-    LoggingStatus'-    { _lsLastFailureTime = Nothing-    , _lsLastSuccessfulDeliveryTime = Nothing-    , _lsS3KeyPrefix = Nothing-    , _lsBucketName = Nothing-    , _lsLoggingEnabled = Nothing-    , _lsLastFailureMessage = Nothing-    }---- | The last time when logs failed to be delivered.-lsLastFailureTime :: Lens' LoggingStatus (Maybe UTCTime)-lsLastFailureTime = lens _lsLastFailureTime (\ s a -> s{_lsLastFailureTime = a}) . mapping _Time;---- | The last time that logs were delivered.-lsLastSuccessfulDeliveryTime :: Lens' LoggingStatus (Maybe UTCTime)-lsLastSuccessfulDeliveryTime = lens _lsLastSuccessfulDeliveryTime (\ s a -> s{_lsLastSuccessfulDeliveryTime = a}) . mapping _Time;---- | The prefix applied to the log file names.-lsS3KeyPrefix :: Lens' LoggingStatus (Maybe Text)-lsS3KeyPrefix = lens _lsS3KeyPrefix (\ s a -> s{_lsS3KeyPrefix = a});---- | The name of the S3 bucket where the log files are stored.-lsBucketName :: Lens' LoggingStatus (Maybe Text)-lsBucketName = lens _lsBucketName (\ s a -> s{_lsBucketName = a});---- | @true@ if logging is on, @false@ if logging is off.-lsLoggingEnabled :: Lens' LoggingStatus (Maybe Bool)-lsLoggingEnabled = lens _lsLoggingEnabled (\ s a -> s{_lsLoggingEnabled = a});---- | The message indicating that logs failed to be delivered.-lsLastFailureMessage :: Lens' LoggingStatus (Maybe Text)-lsLastFailureMessage = lens _lsLastFailureMessage (\ s a -> s{_lsLastFailureMessage = a});--instance FromXML LoggingStatus where-        parseXML x-          = LoggingStatus' <$>-              (x .@? "LastFailureTime") <*>-                (x .@? "LastSuccessfulDeliveryTime")-                <*> (x .@? "S3KeyPrefix")-                <*> (x .@? "BucketName")-                <*> (x .@? "LoggingEnabled")-                <*> (x .@? "LastFailureMessage")--instance Hashable LoggingStatus--instance NFData LoggingStatus---- | Describes an orderable cluster option.------------ /See:/ 'orderableClusterOption' smart constructor.-data OrderableClusterOption = OrderableClusterOption'-    { _ocoAvailabilityZones :: !(Maybe [AvailabilityZone])-    , _ocoClusterType       :: !(Maybe Text)-    , _ocoClusterVersion    :: !(Maybe Text)-    , _ocoNodeType          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'OrderableClusterOption' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ocoAvailabilityZones' - A list of availability zones for the orderable cluster.------ * 'ocoClusterType' - The cluster type, for example @multi-node@ .------ * 'ocoClusterVersion' - The version of the orderable cluster.------ * 'ocoNodeType' - The node type for the orderable cluster.-orderableClusterOption-    :: OrderableClusterOption-orderableClusterOption =-    OrderableClusterOption'-    { _ocoAvailabilityZones = Nothing-    , _ocoClusterType = Nothing-    , _ocoClusterVersion = Nothing-    , _ocoNodeType = Nothing-    }---- | A list of availability zones for the orderable cluster.-ocoAvailabilityZones :: Lens' OrderableClusterOption [AvailabilityZone]-ocoAvailabilityZones = lens _ocoAvailabilityZones (\ s a -> s{_ocoAvailabilityZones = a}) . _Default . _Coerce;---- | The cluster type, for example @multi-node@ .-ocoClusterType :: Lens' OrderableClusterOption (Maybe Text)-ocoClusterType = lens _ocoClusterType (\ s a -> s{_ocoClusterType = a});---- | The version of the orderable cluster.-ocoClusterVersion :: Lens' OrderableClusterOption (Maybe Text)-ocoClusterVersion = lens _ocoClusterVersion (\ s a -> s{_ocoClusterVersion = a});---- | The node type for the orderable cluster.-ocoNodeType :: Lens' OrderableClusterOption (Maybe Text)-ocoNodeType = lens _ocoNodeType (\ s a -> s{_ocoNodeType = a});--instance FromXML OrderableClusterOption where-        parseXML x-          = OrderableClusterOption' <$>-              (x .@? "AvailabilityZones" .!@ mempty >>=-                 may (parseXMLList "AvailabilityZone"))-                <*> (x .@? "ClusterType")-                <*> (x .@? "ClusterVersion")-                <*> (x .@? "NodeType")--instance Hashable OrderableClusterOption--instance NFData OrderableClusterOption---- | Describes a parameter in a cluster parameter group.------------ /See:/ 'parameter' smart constructor.-data Parameter = Parameter'-    { _pApplyType            :: !(Maybe ParameterApplyType)-    , _pParameterValue       :: !(Maybe Text)-    , _pMinimumEngineVersion :: !(Maybe Text)-    , _pSource               :: !(Maybe Text)-    , _pIsModifiable         :: !(Maybe Bool)-    , _pDataType             :: !(Maybe Text)-    , _pAllowedValues        :: !(Maybe Text)-    , _pParameterName        :: !(Maybe Text)-    , _pDescription          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Parameter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pApplyType' - Specifies how to apply the WLM configuration parameter. Some properties can be applied dynamically, while other properties require that any associated clusters be rebooted for the configuration changes to be applied. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .------ * 'pParameterValue' - The value of the parameter.------ * 'pMinimumEngineVersion' - The earliest engine version to which the parameter can apply.------ * 'pSource' - The source of the parameter value, such as "engine-default" or "user".------ * 'pIsModifiable' - If @true@ , the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.------ * 'pDataType' - The data type of the parameter.------ * 'pAllowedValues' - The valid range of values for the parameter.------ * 'pParameterName' - The name of the parameter.------ * 'pDescription' - A description of the parameter.-parameter-    :: Parameter-parameter =-    Parameter'-    { _pApplyType = Nothing-    , _pParameterValue = Nothing-    , _pMinimumEngineVersion = Nothing-    , _pSource = Nothing-    , _pIsModifiable = Nothing-    , _pDataType = Nothing-    , _pAllowedValues = Nothing-    , _pParameterName = Nothing-    , _pDescription = Nothing-    }---- | Specifies how to apply the WLM configuration parameter. Some properties can be applied dynamically, while other properties require that any associated clusters be rebooted for the configuration changes to be applied. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .-pApplyType :: Lens' Parameter (Maybe ParameterApplyType)-pApplyType = lens _pApplyType (\ s a -> s{_pApplyType = a});---- | The value of the parameter.-pParameterValue :: Lens' Parameter (Maybe Text)-pParameterValue = lens _pParameterValue (\ s a -> s{_pParameterValue = a});---- | The earliest engine version to which the parameter can apply.-pMinimumEngineVersion :: Lens' Parameter (Maybe Text)-pMinimumEngineVersion = lens _pMinimumEngineVersion (\ s a -> s{_pMinimumEngineVersion = a});---- | The source of the parameter value, such as "engine-default" or "user".-pSource :: Lens' Parameter (Maybe Text)-pSource = lens _pSource (\ s a -> s{_pSource = a});---- | If @true@ , the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.-pIsModifiable :: Lens' Parameter (Maybe Bool)-pIsModifiable = lens _pIsModifiable (\ s a -> s{_pIsModifiable = a});---- | The data type of the parameter.-pDataType :: Lens' Parameter (Maybe Text)-pDataType = lens _pDataType (\ s a -> s{_pDataType = a});---- | The valid range of values for the parameter.-pAllowedValues :: Lens' Parameter (Maybe Text)-pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});---- | The name of the parameter.-pParameterName :: Lens' Parameter (Maybe Text)-pParameterName = lens _pParameterName (\ s a -> s{_pParameterName = a});---- | A description of the parameter.-pDescription :: Lens' Parameter (Maybe Text)-pDescription = lens _pDescription (\ s a -> s{_pDescription = a});--instance FromXML Parameter where-        parseXML x-          = Parameter' <$>-              (x .@? "ApplyType") <*> (x .@? "ParameterValue") <*>-                (x .@? "MinimumEngineVersion")-                <*> (x .@? "Source")-                <*> (x .@? "IsModifiable")-                <*> (x .@? "DataType")-                <*> (x .@? "AllowedValues")-                <*> (x .@? "ParameterName")-                <*> (x .@? "Description")--instance Hashable Parameter--instance NFData Parameter--instance ToQuery Parameter where-        toQuery Parameter'{..}-          = mconcat-              ["ApplyType" =: _pApplyType,-               "ParameterValue" =: _pParameterValue,-               "MinimumEngineVersion" =: _pMinimumEngineVersion,-               "Source" =: _pSource,-               "IsModifiable" =: _pIsModifiable,-               "DataType" =: _pDataType,-               "AllowedValues" =: _pAllowedValues,-               "ParameterName" =: _pParameterName,-               "Description" =: _pDescription]---- | Describes cluster attributes that are in a pending state. A change to one or more the attributes was requested and is in progress or will be applied.------------ /See:/ 'pendingModifiedValues' smart constructor.-data PendingModifiedValues = PendingModifiedValues'-    { _pmvEnhancedVPCRouting               :: !(Maybe Bool)-    , _pmvMasterUserPassword               :: !(Maybe Text)-    , _pmvPubliclyAccessible               :: !(Maybe Bool)-    , _pmvAutomatedSnapshotRetentionPeriod :: !(Maybe Int)-    , _pmvClusterIdentifier                :: !(Maybe Text)-    , _pmvNumberOfNodes                    :: !(Maybe Int)-    , _pmvClusterType                      :: !(Maybe Text)-    , _pmvClusterVersion                   :: !(Maybe Text)-    , _pmvNodeType                         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PendingModifiedValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pmvEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false------ * 'pmvMasterUserPassword' - The pending or in-progress change of the master user password for the cluster.------ * 'pmvPubliclyAccessible' - The pending or in-progress change of the ability to connect to the cluster from the public network.------ * 'pmvAutomatedSnapshotRetentionPeriod' - The pending or in-progress change of the automated snapshot retention period.------ * 'pmvClusterIdentifier' - The pending or in-progress change of the new identifier for the cluster.------ * 'pmvNumberOfNodes' - The pending or in-progress change of the number of nodes in the cluster.------ * 'pmvClusterType' - The pending or in-progress change of the cluster type.------ * 'pmvClusterVersion' - The pending or in-progress change of the service version.------ * 'pmvNodeType' - The pending or in-progress change of the cluster's node type.-pendingModifiedValues-    :: PendingModifiedValues-pendingModifiedValues =-    PendingModifiedValues'-    { _pmvEnhancedVPCRouting = Nothing-    , _pmvMasterUserPassword = Nothing-    , _pmvPubliclyAccessible = Nothing-    , _pmvAutomatedSnapshotRetentionPeriod = Nothing-    , _pmvClusterIdentifier = Nothing-    , _pmvNumberOfNodes = Nothing-    , _pmvClusterType = Nothing-    , _pmvClusterVersion = Nothing-    , _pmvNodeType = Nothing-    }---- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false-pmvEnhancedVPCRouting :: Lens' PendingModifiedValues (Maybe Bool)-pmvEnhancedVPCRouting = lens _pmvEnhancedVPCRouting (\ s a -> s{_pmvEnhancedVPCRouting = a});---- | The pending or in-progress change of the master user password for the cluster.-pmvMasterUserPassword :: Lens' PendingModifiedValues (Maybe Text)-pmvMasterUserPassword = lens _pmvMasterUserPassword (\ s a -> s{_pmvMasterUserPassword = a});---- | The pending or in-progress change of the ability to connect to the cluster from the public network.-pmvPubliclyAccessible :: Lens' PendingModifiedValues (Maybe Bool)-pmvPubliclyAccessible = lens _pmvPubliclyAccessible (\ s a -> s{_pmvPubliclyAccessible = a});---- | The pending or in-progress change of the automated snapshot retention period.-pmvAutomatedSnapshotRetentionPeriod :: Lens' PendingModifiedValues (Maybe Int)-pmvAutomatedSnapshotRetentionPeriod = lens _pmvAutomatedSnapshotRetentionPeriod (\ s a -> s{_pmvAutomatedSnapshotRetentionPeriod = a});---- | The pending or in-progress change of the new identifier for the cluster.-pmvClusterIdentifier :: Lens' PendingModifiedValues (Maybe Text)-pmvClusterIdentifier = lens _pmvClusterIdentifier (\ s a -> s{_pmvClusterIdentifier = a});---- | The pending or in-progress change of the number of nodes in the cluster.-pmvNumberOfNodes :: Lens' PendingModifiedValues (Maybe Int)-pmvNumberOfNodes = lens _pmvNumberOfNodes (\ s a -> s{_pmvNumberOfNodes = a});---- | The pending or in-progress change of the cluster type.-pmvClusterType :: Lens' PendingModifiedValues (Maybe Text)-pmvClusterType = lens _pmvClusterType (\ s a -> s{_pmvClusterType = a});---- | The pending or in-progress change of the service version.-pmvClusterVersion :: Lens' PendingModifiedValues (Maybe Text)-pmvClusterVersion = lens _pmvClusterVersion (\ s a -> s{_pmvClusterVersion = a});---- | The pending or in-progress change of the cluster's node type.-pmvNodeType :: Lens' PendingModifiedValues (Maybe Text)-pmvNodeType = lens _pmvNodeType (\ s a -> s{_pmvNodeType = a});--instance FromXML PendingModifiedValues where-        parseXML x-          = PendingModifiedValues' <$>-              (x .@? "EnhancedVpcRouting") <*>-                (x .@? "MasterUserPassword")-                <*> (x .@? "PubliclyAccessible")-                <*> (x .@? "AutomatedSnapshotRetentionPeriod")-                <*> (x .@? "ClusterIdentifier")-                <*> (x .@? "NumberOfNodes")-                <*> (x .@? "ClusterType")-                <*> (x .@? "ClusterVersion")-                <*> (x .@? "NodeType")--instance Hashable PendingModifiedValues--instance NFData PendingModifiedValues---- | Describes a recurring charge.------------ /See:/ 'recurringCharge' smart constructor.-data RecurringCharge = RecurringCharge'-    { _rcRecurringChargeFrequency :: !(Maybe Text)-    , _rcRecurringChargeAmount    :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcRecurringChargeFrequency' - The frequency at which the recurring charge amount is applied.------ * 'rcRecurringChargeAmount' - The amount charged per the period of time specified by the recurring charge frequency.-recurringCharge-    :: RecurringCharge-recurringCharge =-    RecurringCharge'-    { _rcRecurringChargeFrequency = Nothing-    , _rcRecurringChargeAmount = Nothing-    }---- | The frequency at which the recurring charge amount is applied.-rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)-rcRecurringChargeFrequency = lens _rcRecurringChargeFrequency (\ s a -> s{_rcRecurringChargeFrequency = a});---- | The amount charged per the period of time specified by the recurring charge frequency.-rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)-rcRecurringChargeAmount = lens _rcRecurringChargeAmount (\ s a -> s{_rcRecurringChargeAmount = a});--instance FromXML RecurringCharge where-        parseXML x-          = RecurringCharge' <$>-              (x .@? "RecurringChargeFrequency") <*>-                (x .@? "RecurringChargeAmount")--instance Hashable RecurringCharge--instance NFData RecurringCharge---- | Describes a reserved node. You can call the 'DescribeReservedNodeOfferings' API to obtain the available reserved node offerings.------------ /See:/ 'reservedNode' smart constructor.-data ReservedNode = ReservedNode'-    { _rnState                  :: !(Maybe Text)-    , _rnCurrencyCode           :: !(Maybe Text)-    , _rnStartTime              :: !(Maybe ISO8601)-    , _rnNodeCount              :: !(Maybe Int)-    , _rnReservedNodeId         :: !(Maybe Text)-    , _rnReservedNodeOfferingId :: !(Maybe Text)-    , _rnRecurringCharges       :: !(Maybe [RecurringCharge])-    , _rnOfferingType           :: !(Maybe Text)-    , _rnUsagePrice             :: !(Maybe Double)-    , _rnNodeType               :: !(Maybe Text)-    , _rnFixedPrice             :: !(Maybe Double)-    , _rnDuration               :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedNode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rnState' - The state of the reserved compute node. Possible Values:     * pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed.     * active-This reserved node is owned by the caller and is available for use.     * payment-failed-Payment failed for the purchase attempt.------ * 'rnCurrencyCode' - The currency code for the reserved cluster.------ * 'rnStartTime' - The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.------ * 'rnNodeCount' - The number of reserved compute nodes.------ * 'rnReservedNodeId' - The unique identifier for the reservation.------ * 'rnReservedNodeOfferingId' - The identifier for the reserved node offering.------ * 'rnRecurringCharges' - The recurring charges for the reserved node.------ * 'rnOfferingType' - The anticipated utilization of the reserved node, as defined in the reserved node offering.------ * 'rnUsagePrice' - The hourly rate Amazon Redshift charges you for this reserved node.------ * 'rnNodeType' - The node type of the reserved node.------ * 'rnFixedPrice' - The fixed cost Amazon Redshift charges you for this reserved node.------ * 'rnDuration' - The duration of the node reservation in seconds.-reservedNode-    :: ReservedNode-reservedNode =-    ReservedNode'-    { _rnState = Nothing-    , _rnCurrencyCode = Nothing-    , _rnStartTime = Nothing-    , _rnNodeCount = Nothing-    , _rnReservedNodeId = Nothing-    , _rnReservedNodeOfferingId = Nothing-    , _rnRecurringCharges = Nothing-    , _rnOfferingType = Nothing-    , _rnUsagePrice = Nothing-    , _rnNodeType = Nothing-    , _rnFixedPrice = Nothing-    , _rnDuration = Nothing-    }---- | The state of the reserved compute node. Possible Values:     * pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed.     * active-This reserved node is owned by the caller and is available for use.     * payment-failed-Payment failed for the purchase attempt.-rnState :: Lens' ReservedNode (Maybe Text)-rnState = lens _rnState (\ s a -> s{_rnState = a});---- | The currency code for the reserved cluster.-rnCurrencyCode :: Lens' ReservedNode (Maybe Text)-rnCurrencyCode = lens _rnCurrencyCode (\ s a -> s{_rnCurrencyCode = a});---- | The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.-rnStartTime :: Lens' ReservedNode (Maybe UTCTime)-rnStartTime = lens _rnStartTime (\ s a -> s{_rnStartTime = a}) . mapping _Time;---- | The number of reserved compute nodes.-rnNodeCount :: Lens' ReservedNode (Maybe Int)-rnNodeCount = lens _rnNodeCount (\ s a -> s{_rnNodeCount = a});---- | The unique identifier for the reservation.-rnReservedNodeId :: Lens' ReservedNode (Maybe Text)-rnReservedNodeId = lens _rnReservedNodeId (\ s a -> s{_rnReservedNodeId = a});---- | The identifier for the reserved node offering.-rnReservedNodeOfferingId :: Lens' ReservedNode (Maybe Text)-rnReservedNodeOfferingId = lens _rnReservedNodeOfferingId (\ s a -> s{_rnReservedNodeOfferingId = a});---- | The recurring charges for the reserved node.-rnRecurringCharges :: Lens' ReservedNode [RecurringCharge]-rnRecurringCharges = lens _rnRecurringCharges (\ s a -> s{_rnRecurringCharges = a}) . _Default . _Coerce;---- | The anticipated utilization of the reserved node, as defined in the reserved node offering.-rnOfferingType :: Lens' ReservedNode (Maybe Text)-rnOfferingType = lens _rnOfferingType (\ s a -> s{_rnOfferingType = a});---- | The hourly rate Amazon Redshift charges you for this reserved node.-rnUsagePrice :: Lens' ReservedNode (Maybe Double)-rnUsagePrice = lens _rnUsagePrice (\ s a -> s{_rnUsagePrice = a});---- | The node type of the reserved node.-rnNodeType :: Lens' ReservedNode (Maybe Text)-rnNodeType = lens _rnNodeType (\ s a -> s{_rnNodeType = a});---- | The fixed cost Amazon Redshift charges you for this reserved node.-rnFixedPrice :: Lens' ReservedNode (Maybe Double)-rnFixedPrice = lens _rnFixedPrice (\ s a -> s{_rnFixedPrice = a});---- | The duration of the node reservation in seconds.-rnDuration :: Lens' ReservedNode (Maybe Int)-rnDuration = lens _rnDuration (\ s a -> s{_rnDuration = a});--instance FromXML ReservedNode where-        parseXML x-          = ReservedNode' <$>-              (x .@? "State") <*> (x .@? "CurrencyCode") <*>-                (x .@? "StartTime")-                <*> (x .@? "NodeCount")-                <*> (x .@? "ReservedNodeId")-                <*> (x .@? "ReservedNodeOfferingId")-                <*>-                (x .@? "RecurringCharges" .!@ mempty >>=-                   may (parseXMLList "RecurringCharge"))-                <*> (x .@? "OfferingType")-                <*> (x .@? "UsagePrice")-                <*> (x .@? "NodeType")-                <*> (x .@? "FixedPrice")-                <*> (x .@? "Duration")--instance Hashable ReservedNode--instance NFData ReservedNode---- | Describes a reserved node offering.------------ /See:/ 'reservedNodeOffering' smart constructor.-data ReservedNodeOffering = ReservedNodeOffering'-    { _rnoCurrencyCode           :: !(Maybe Text)-    , _rnoReservedNodeOfferingId :: !(Maybe Text)-    , _rnoRecurringCharges       :: !(Maybe [RecurringCharge])-    , _rnoOfferingType           :: !(Maybe Text)-    , _rnoUsagePrice             :: !(Maybe Double)-    , _rnoNodeType               :: !(Maybe Text)-    , _rnoFixedPrice             :: !(Maybe Double)-    , _rnoDuration               :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedNodeOffering' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rnoCurrencyCode' - The currency code for the compute nodes offering.------ * 'rnoReservedNodeOfferingId' - The offering identifier.------ * 'rnoRecurringCharges' - The charge to your account regardless of whether you are creating any clusters using the node offering. Recurring charges are only in effect for heavy-utilization reserved nodes.------ * 'rnoOfferingType' - The anticipated utilization of the reserved node, as defined in the reserved node offering.------ * 'rnoUsagePrice' - The rate you are charged for each hour the cluster that is using the offering is running.------ * 'rnoNodeType' - The node type offered by the reserved node offering.------ * 'rnoFixedPrice' - The upfront fixed charge you will pay to purchase the specific reserved node offering.------ * 'rnoDuration' - The duration, in seconds, for which the offering will reserve the node.-reservedNodeOffering-    :: ReservedNodeOffering-reservedNodeOffering =-    ReservedNodeOffering'-    { _rnoCurrencyCode = Nothing-    , _rnoReservedNodeOfferingId = Nothing-    , _rnoRecurringCharges = Nothing-    , _rnoOfferingType = Nothing-    , _rnoUsagePrice = Nothing-    , _rnoNodeType = Nothing-    , _rnoFixedPrice = Nothing-    , _rnoDuration = Nothing-    }---- | The currency code for the compute nodes offering.-rnoCurrencyCode :: Lens' ReservedNodeOffering (Maybe Text)-rnoCurrencyCode = lens _rnoCurrencyCode (\ s a -> s{_rnoCurrencyCode = a});---- | The offering identifier.-rnoReservedNodeOfferingId :: Lens' ReservedNodeOffering (Maybe Text)-rnoReservedNodeOfferingId = lens _rnoReservedNodeOfferingId (\ s a -> s{_rnoReservedNodeOfferingId = a});---- | The charge to your account regardless of whether you are creating any clusters using the node offering. Recurring charges are only in effect for heavy-utilization reserved nodes.-rnoRecurringCharges :: Lens' ReservedNodeOffering [RecurringCharge]-rnoRecurringCharges = lens _rnoRecurringCharges (\ s a -> s{_rnoRecurringCharges = a}) . _Default . _Coerce;---- | The anticipated utilization of the reserved node, as defined in the reserved node offering.-rnoOfferingType :: Lens' ReservedNodeOffering (Maybe Text)-rnoOfferingType = lens _rnoOfferingType (\ s a -> s{_rnoOfferingType = a});---- | The rate you are charged for each hour the cluster that is using the offering is running.-rnoUsagePrice :: Lens' ReservedNodeOffering (Maybe Double)-rnoUsagePrice = lens _rnoUsagePrice (\ s a -> s{_rnoUsagePrice = a});---- | The node type offered by the reserved node offering.-rnoNodeType :: Lens' ReservedNodeOffering (Maybe Text)-rnoNodeType = lens _rnoNodeType (\ s a -> s{_rnoNodeType = a});---- | The upfront fixed charge you will pay to purchase the specific reserved node offering.-rnoFixedPrice :: Lens' ReservedNodeOffering (Maybe Double)-rnoFixedPrice = lens _rnoFixedPrice (\ s a -> s{_rnoFixedPrice = a});---- | The duration, in seconds, for which the offering will reserve the node.-rnoDuration :: Lens' ReservedNodeOffering (Maybe Int)-rnoDuration = lens _rnoDuration (\ s a -> s{_rnoDuration = a});--instance FromXML ReservedNodeOffering where-        parseXML x-          = ReservedNodeOffering' <$>-              (x .@? "CurrencyCode") <*>-                (x .@? "ReservedNodeOfferingId")-                <*>-                (x .@? "RecurringCharges" .!@ mempty >>=-                   may (parseXMLList "RecurringCharge"))-                <*> (x .@? "OfferingType")-                <*> (x .@? "UsagePrice")-                <*> (x .@? "NodeType")-                <*> (x .@? "FixedPrice")-                <*> (x .@? "Duration")--instance Hashable ReservedNodeOffering--instance NFData ReservedNodeOffering---- | Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.------------ /See:/ 'restoreStatus' smart constructor.-data RestoreStatus = RestoreStatus'-    { _rsStatus                                 :: !(Maybe Text)-    , _rsEstimatedTimeToCompletionInSeconds     :: !(Maybe Integer)-    , _rsCurrentRestoreRateInMegaBytesPerSecond :: !(Maybe Double)-    , _rsProgressInMegaBytes                    :: !(Maybe Integer)-    , _rsElapsedTimeInSeconds                   :: !(Maybe Integer)-    , _rsSnapshotSizeInMegaBytes                :: !(Maybe Integer)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RestoreStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rsStatus' - The status of the restore action. Returns starting, restoring, completed, or failed.------ * 'rsEstimatedTimeToCompletionInSeconds' - The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.------ * 'rsCurrentRestoreRateInMegaBytesPerSecond' - The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.------ * 'rsProgressInMegaBytes' - The number of megabytes that have been transferred from snapshot storage.------ * 'rsElapsedTimeInSeconds' - The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.------ * 'rsSnapshotSizeInMegaBytes' - The size of the set of snapshot data used to restore the cluster.-restoreStatus-    :: RestoreStatus-restoreStatus =-    RestoreStatus'-    { _rsStatus = Nothing-    , _rsEstimatedTimeToCompletionInSeconds = Nothing-    , _rsCurrentRestoreRateInMegaBytesPerSecond = Nothing-    , _rsProgressInMegaBytes = Nothing-    , _rsElapsedTimeInSeconds = Nothing-    , _rsSnapshotSizeInMegaBytes = Nothing-    }---- | The status of the restore action. Returns starting, restoring, completed, or failed.-rsStatus :: Lens' RestoreStatus (Maybe Text)-rsStatus = lens _rsStatus (\ s a -> s{_rsStatus = a});---- | The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.-rsEstimatedTimeToCompletionInSeconds :: Lens' RestoreStatus (Maybe Integer)-rsEstimatedTimeToCompletionInSeconds = lens _rsEstimatedTimeToCompletionInSeconds (\ s a -> s{_rsEstimatedTimeToCompletionInSeconds = a});---- | The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.-rsCurrentRestoreRateInMegaBytesPerSecond :: Lens' RestoreStatus (Maybe Double)-rsCurrentRestoreRateInMegaBytesPerSecond = lens _rsCurrentRestoreRateInMegaBytesPerSecond (\ s a -> s{_rsCurrentRestoreRateInMegaBytesPerSecond = a});---- | The number of megabytes that have been transferred from snapshot storage.-rsProgressInMegaBytes :: Lens' RestoreStatus (Maybe Integer)-rsProgressInMegaBytes = lens _rsProgressInMegaBytes (\ s a -> s{_rsProgressInMegaBytes = a});---- | The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.-rsElapsedTimeInSeconds :: Lens' RestoreStatus (Maybe Integer)-rsElapsedTimeInSeconds = lens _rsElapsedTimeInSeconds (\ s a -> s{_rsElapsedTimeInSeconds = a});---- | The size of the set of snapshot data used to restore the cluster.-rsSnapshotSizeInMegaBytes :: Lens' RestoreStatus (Maybe Integer)-rsSnapshotSizeInMegaBytes = lens _rsSnapshotSizeInMegaBytes (\ s a -> s{_rsSnapshotSizeInMegaBytes = a});--instance FromXML RestoreStatus where-        parseXML x-          = RestoreStatus' <$>-              (x .@? "Status") <*>-                (x .@? "EstimatedTimeToCompletionInSeconds")-                <*> (x .@? "CurrentRestoreRateInMegaBytesPerSecond")-                <*> (x .@? "ProgressInMegaBytes")-                <*> (x .@? "ElapsedTimeInSeconds")-                <*> (x .@? "SnapshotSizeInMegaBytes")--instance Hashable RestoreStatus--instance NFData RestoreStatus---- | Describes a snapshot.------------ /See:/ 'snapshot' smart constructor.-data Snapshot = Snapshot'-    { _sStatus                                 :: !(Maybe Text)-    , _sRestorableNodeTypes                    :: !(Maybe [Text])-    , _sAccountsWithRestoreAccess              :: !(Maybe [AccountWithRestoreAccess])-    , _sEnhancedVPCRouting                     :: !(Maybe Bool)-    , _sSnapshotIdentifier                     :: !(Maybe Text)-    , _sEncryptedWithHSM                       :: !(Maybe Bool)-    , _sMasterUsername                         :: !(Maybe Text)-    , _sSourceRegion                           :: !(Maybe Text)-    , _sVPCId                                  :: !(Maybe Text)-    , _sBackupProgressInMegaBytes              :: !(Maybe Double)-    , _sEncrypted                              :: !(Maybe Bool)-    , _sClusterIdentifier                      :: !(Maybe Text)-    , _sNumberOfNodes                          :: !(Maybe Int)-    , _sSnapshotType                           :: !(Maybe Text)-    , _sKMSKeyId                               :: !(Maybe Text)-    , _sAvailabilityZone                       :: !(Maybe Text)-    , _sCurrentBackupRateInMegaBytesPerSecond  :: !(Maybe Double)-    , _sSnapshotCreateTime                     :: !(Maybe ISO8601)-    , _sClusterVersion                         :: !(Maybe Text)-    , _sOwnerAccount                           :: !(Maybe Text)-    , _sNodeType                               :: !(Maybe Text)-    , _sElapsedTimeInSeconds                   :: !(Maybe Integer)-    , _sClusterCreateTime                      :: !(Maybe ISO8601)-    , _sEstimatedSecondsToCompletion           :: !(Maybe Integer)-    , _sActualIncrementalBackupSizeInMegaBytes :: !(Maybe Double)-    , _sTags                                   :: !(Maybe [Tag])-    , _sPort                                   :: !(Maybe Int)-    , _sTotalBackupSizeInMegaBytes             :: !(Maybe Double)-    , _sDBName                                 :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Snapshot' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sStatus' - The snapshot status. The value of the status depends on the API operation used.      * 'CreateClusterSnapshot' and 'CopyClusterSnapshot' returns status as "creating".      * 'DescribeClusterSnapshots' returns status as "creating", "available", "final snapshot", or "failed".     * 'DeleteClusterSnapshot' returns status as "deleted".------ * 'sRestorableNodeTypes' - The list of node types that this cluster snapshot is able to restore into.------ * 'sAccountsWithRestoreAccess' - A list of the AWS customer accounts authorized to restore the snapshot. Returns @null@ if no accounts are authorized. Visible only to the snapshot owner.------ * 'sEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false------ * 'sSnapshotIdentifier' - The snapshot identifier that is provided in the request.------ * 'sEncryptedWithHSM' - A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. @true@ indicates that the data is encrypted using HSM keys.------ * 'sMasterUsername' - The master user name for the cluster.------ * 'sSourceRegion' - The source region from which the snapshot was copied.------ * 'sVPCId' - The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.------ * 'sBackupProgressInMegaBytes' - The number of megabytes that have been transferred to the snapshot backup.------ * 'sEncrypted' - If @true@ , the data in the snapshot is encrypted at rest.------ * 'sClusterIdentifier' - The identifier of the cluster for which the snapshot was taken.------ * 'sNumberOfNodes' - The number of nodes in the cluster.------ * 'sSnapshotType' - The snapshot type. Snapshots created using 'CreateClusterSnapshot' and 'CopyClusterSnapshot' will be of type "manual".------ * 'sKMSKeyId' - The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.------ * 'sAvailabilityZone' - The Availability Zone in which the cluster was created.------ * 'sCurrentBackupRateInMegaBytesPerSecond' - The number of megabytes per second being transferred to the snapshot backup. Returns @0@ for a completed backup.------ * 'sSnapshotCreateTime' - The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.------ * 'sClusterVersion' - The version ID of the Amazon Redshift engine that is running on the cluster.------ * 'sOwnerAccount' - For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.------ * 'sNodeType' - The node type of the nodes in the cluster.------ * 'sElapsedTimeInSeconds' - The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.------ * 'sClusterCreateTime' - The time (UTC) when the cluster was originally created.------ * 'sEstimatedSecondsToCompletion' - The estimate of the time remaining before the snapshot backup will complete. Returns @0@ for a completed backup.------ * 'sActualIncrementalBackupSizeInMegaBytes' - The size of the incremental backup.------ * 'sTags' - The list of tags for the cluster snapshot.------ * 'sPort' - The port that the cluster is listening on.------ * 'sTotalBackupSizeInMegaBytes' - The size of the complete set of backup data that would be used to restore the cluster.------ * 'sDBName' - The name of the database that was created when the cluster was created.-snapshot-    :: Snapshot-snapshot =-    Snapshot'-    { _sStatus = Nothing-    , _sRestorableNodeTypes = Nothing-    , _sAccountsWithRestoreAccess = Nothing-    , _sEnhancedVPCRouting = Nothing-    , _sSnapshotIdentifier = Nothing-    , _sEncryptedWithHSM = Nothing-    , _sMasterUsername = Nothing-    , _sSourceRegion = Nothing-    , _sVPCId = Nothing-    , _sBackupProgressInMegaBytes = Nothing-    , _sEncrypted = Nothing-    , _sClusterIdentifier = Nothing-    , _sNumberOfNodes = Nothing-    , _sSnapshotType = Nothing-    , _sKMSKeyId = Nothing-    , _sAvailabilityZone = Nothing-    , _sCurrentBackupRateInMegaBytesPerSecond = Nothing-    , _sSnapshotCreateTime = Nothing-    , _sClusterVersion = Nothing-    , _sOwnerAccount = Nothing-    , _sNodeType = Nothing-    , _sElapsedTimeInSeconds = Nothing-    , _sClusterCreateTime = Nothing-    , _sEstimatedSecondsToCompletion = Nothing-    , _sActualIncrementalBackupSizeInMegaBytes = Nothing-    , _sTags = Nothing-    , _sPort = Nothing-    , _sTotalBackupSizeInMegaBytes = Nothing-    , _sDBName = Nothing-    }---- | The snapshot status. The value of the status depends on the API operation used.      * 'CreateClusterSnapshot' and 'CopyClusterSnapshot' returns status as "creating".      * 'DescribeClusterSnapshots' returns status as "creating", "available", "final snapshot", or "failed".     * 'DeleteClusterSnapshot' returns status as "deleted".-sStatus :: Lens' Snapshot (Maybe Text)-sStatus = lens _sStatus (\ s a -> s{_sStatus = a});---- | The list of node types that this cluster snapshot is able to restore into.-sRestorableNodeTypes :: Lens' Snapshot [Text]-sRestorableNodeTypes = lens _sRestorableNodeTypes (\ s a -> s{_sRestorableNodeTypes = a}) . _Default . _Coerce;---- | A list of the AWS customer accounts authorized to restore the snapshot. Returns @null@ if no accounts are authorized. Visible only to the snapshot owner.-sAccountsWithRestoreAccess :: Lens' Snapshot [AccountWithRestoreAccess]-sAccountsWithRestoreAccess = lens _sAccountsWithRestoreAccess (\ s a -> s{_sAccountsWithRestoreAccess = a}) . _Default . _Coerce;---- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false-sEnhancedVPCRouting :: Lens' Snapshot (Maybe Bool)-sEnhancedVPCRouting = lens _sEnhancedVPCRouting (\ s a -> s{_sEnhancedVPCRouting = a});---- | The snapshot identifier that is provided in the request.-sSnapshotIdentifier :: Lens' Snapshot (Maybe Text)-sSnapshotIdentifier = lens _sSnapshotIdentifier (\ s a -> s{_sSnapshotIdentifier = a});---- | A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. @true@ indicates that the data is encrypted using HSM keys.-sEncryptedWithHSM :: Lens' Snapshot (Maybe Bool)-sEncryptedWithHSM = lens _sEncryptedWithHSM (\ s a -> s{_sEncryptedWithHSM = a});---- | The master user name for the cluster.-sMasterUsername :: Lens' Snapshot (Maybe Text)-sMasterUsername = lens _sMasterUsername (\ s a -> s{_sMasterUsername = a});---- | The source region from which the snapshot was copied.-sSourceRegion :: Lens' Snapshot (Maybe Text)-sSourceRegion = lens _sSourceRegion (\ s a -> s{_sSourceRegion = a});---- | The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.-sVPCId :: Lens' Snapshot (Maybe Text)-sVPCId = lens _sVPCId (\ s a -> s{_sVPCId = a});---- | The number of megabytes that have been transferred to the snapshot backup.-sBackupProgressInMegaBytes :: Lens' Snapshot (Maybe Double)-sBackupProgressInMegaBytes = lens _sBackupProgressInMegaBytes (\ s a -> s{_sBackupProgressInMegaBytes = a});---- | If @true@ , the data in the snapshot is encrypted at rest.-sEncrypted :: Lens' Snapshot (Maybe Bool)-sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});---- | The identifier of the cluster for which the snapshot was taken.-sClusterIdentifier :: Lens' Snapshot (Maybe Text)-sClusterIdentifier = lens _sClusterIdentifier (\ s a -> s{_sClusterIdentifier = a});---- | The number of nodes in the cluster.-sNumberOfNodes :: Lens' Snapshot (Maybe Int)-sNumberOfNodes = lens _sNumberOfNodes (\ s a -> s{_sNumberOfNodes = a});---- | The snapshot type. Snapshots created using 'CreateClusterSnapshot' and 'CopyClusterSnapshot' will be of type "manual".-sSnapshotType :: Lens' Snapshot (Maybe Text)-sSnapshotType = lens _sSnapshotType (\ s a -> s{_sSnapshotType = a});---- | The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.-sKMSKeyId :: Lens' Snapshot (Maybe Text)-sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});---- | The Availability Zone in which the cluster was created.-sAvailabilityZone :: Lens' Snapshot (Maybe Text)-sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});---- | The number of megabytes per second being transferred to the snapshot backup. Returns @0@ for a completed backup.-sCurrentBackupRateInMegaBytesPerSecond :: Lens' Snapshot (Maybe Double)-sCurrentBackupRateInMegaBytesPerSecond = lens _sCurrentBackupRateInMegaBytesPerSecond (\ s a -> s{_sCurrentBackupRateInMegaBytesPerSecond = a});---- | The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.-sSnapshotCreateTime :: Lens' Snapshot (Maybe UTCTime)-sSnapshotCreateTime = lens _sSnapshotCreateTime (\ s a -> s{_sSnapshotCreateTime = a}) . mapping _Time;---- | The version ID of the Amazon Redshift engine that is running on the cluster.-sClusterVersion :: Lens' Snapshot (Maybe Text)-sClusterVersion = lens _sClusterVersion (\ s a -> s{_sClusterVersion = a});---- | For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.-sOwnerAccount :: Lens' Snapshot (Maybe Text)-sOwnerAccount = lens _sOwnerAccount (\ s a -> s{_sOwnerAccount = a});---- | The node type of the nodes in the cluster.-sNodeType :: Lens' Snapshot (Maybe Text)-sNodeType = lens _sNodeType (\ s a -> s{_sNodeType = a});---- | The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.-sElapsedTimeInSeconds :: Lens' Snapshot (Maybe Integer)-sElapsedTimeInSeconds = lens _sElapsedTimeInSeconds (\ s a -> s{_sElapsedTimeInSeconds = a});---- | The time (UTC) when the cluster was originally created.-sClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)-sClusterCreateTime = lens _sClusterCreateTime (\ s a -> s{_sClusterCreateTime = a}) . mapping _Time;---- | The estimate of the time remaining before the snapshot backup will complete. Returns @0@ for a completed backup.-sEstimatedSecondsToCompletion :: Lens' Snapshot (Maybe Integer)-sEstimatedSecondsToCompletion = lens _sEstimatedSecondsToCompletion (\ s a -> s{_sEstimatedSecondsToCompletion = a});---- | The size of the incremental backup.-sActualIncrementalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)-sActualIncrementalBackupSizeInMegaBytes = lens _sActualIncrementalBackupSizeInMegaBytes (\ s a -> s{_sActualIncrementalBackupSizeInMegaBytes = a});---- | The list of tags for the cluster snapshot.-sTags :: Lens' Snapshot [Tag]-sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;---- | The port that the cluster is listening on.-sPort :: Lens' Snapshot (Maybe Int)-sPort = lens _sPort (\ s a -> s{_sPort = a});---- | The size of the complete set of backup data that would be used to restore the cluster.-sTotalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)-sTotalBackupSizeInMegaBytes = lens _sTotalBackupSizeInMegaBytes (\ s a -> s{_sTotalBackupSizeInMegaBytes = a});---- | The name of the database that was created when the cluster was created.-sDBName :: Lens' Snapshot (Maybe Text)-sDBName = lens _sDBName (\ s a -> s{_sDBName = a});--instance FromXML Snapshot where-        parseXML x-          = Snapshot' <$>-              (x .@? "Status") <*>-                (x .@? "RestorableNodeTypes" .!@ mempty >>=-                   may (parseXMLList "NodeType"))-                <*>-                (x .@? "AccountsWithRestoreAccess" .!@ mempty >>=-                   may (parseXMLList "AccountWithRestoreAccess"))-                <*> (x .@? "EnhancedVpcRouting")-                <*> (x .@? "SnapshotIdentifier")-                <*> (x .@? "EncryptedWithHSM")-                <*> (x .@? "MasterUsername")-                <*> (x .@? "SourceRegion")-                <*> (x .@? "VpcId")-                <*> (x .@? "BackupProgressInMegaBytes")-                <*> (x .@? "Encrypted")-                <*> (x .@? "ClusterIdentifier")-                <*> (x .@? "NumberOfNodes")-                <*> (x .@? "SnapshotType")-                <*> (x .@? "KmsKeyId")-                <*> (x .@? "AvailabilityZone")-                <*> (x .@? "CurrentBackupRateInMegaBytesPerSecond")-                <*> (x .@? "SnapshotCreateTime")-                <*> (x .@? "ClusterVersion")-                <*> (x .@? "OwnerAccount")-                <*> (x .@? "NodeType")-                <*> (x .@? "ElapsedTimeInSeconds")-                <*> (x .@? "ClusterCreateTime")-                <*> (x .@? "EstimatedSecondsToCompletion")-                <*> (x .@? "ActualIncrementalBackupSizeInMegaBytes")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))-                <*> (x .@? "Port")-                <*> (x .@? "TotalBackupSizeInMegaBytes")-                <*> (x .@? "DBName")--instance Hashable Snapshot--instance NFData Snapshot---- | The snapshot copy grant that grants Amazon Redshift permission to encrypt copied snapshots with the specified customer master key (CMK) from AWS KMS in the destination region.--------- For more information about managing snapshot copy grants, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html Amazon Redshift Database Encryption> in the /Amazon Redshift Cluster Management Guide/ .--------- /See:/ 'snapshotCopyGrant' smart constructor.-data SnapshotCopyGrant = SnapshotCopyGrant'-    { _scgKMSKeyId              :: !(Maybe Text)-    , _scgSnapshotCopyGrantName :: !(Maybe Text)-    , _scgTags                  :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotCopyGrant' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scgKMSKeyId' - The unique identifier of the customer master key (CMK) in AWS KMS to which Amazon Redshift is granted permission.------ * 'scgSnapshotCopyGrantName' - The name of the snapshot copy grant.------ * 'scgTags' - A list of tag instances.-snapshotCopyGrant-    :: SnapshotCopyGrant-snapshotCopyGrant =-    SnapshotCopyGrant'-    { _scgKMSKeyId = Nothing-    , _scgSnapshotCopyGrantName = Nothing-    , _scgTags = Nothing-    }---- | The unique identifier of the customer master key (CMK) in AWS KMS to which Amazon Redshift is granted permission.-scgKMSKeyId :: Lens' SnapshotCopyGrant (Maybe Text)-scgKMSKeyId = lens _scgKMSKeyId (\ s a -> s{_scgKMSKeyId = a});---- | The name of the snapshot copy grant.-scgSnapshotCopyGrantName :: Lens' SnapshotCopyGrant (Maybe Text)-scgSnapshotCopyGrantName = lens _scgSnapshotCopyGrantName (\ s a -> s{_scgSnapshotCopyGrantName = a});---- | A list of tag instances.-scgTags :: Lens' SnapshotCopyGrant [Tag]-scgTags = lens _scgTags (\ s a -> s{_scgTags = a}) . _Default . _Coerce;--instance FromXML SnapshotCopyGrant where-        parseXML x-          = SnapshotCopyGrant' <$>-              (x .@? "KmsKeyId") <*>-                (x .@? "SnapshotCopyGrantName")-                <*>-                (x .@? "Tags" .!@ mempty >>=-                   may (parseXMLList "Tag"))--instance Hashable SnapshotCopyGrant--instance NFData SnapshotCopyGrant---- | Describes a subnet.------------ /See:/ 'subnet' smart constructor.-data Subnet = Subnet'-    { _sSubnetStatus           :: !(Maybe Text)-    , _sSubnetIdentifier       :: !(Maybe Text)-    , _sSubnetAvailabilityZone :: !(Maybe AvailabilityZone)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Subnet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sSubnetStatus' - The status of the subnet.------ * 'sSubnetIdentifier' - The identifier of the subnet.------ * 'sSubnetAvailabilityZone' - Undocumented member.-subnet-    :: Subnet-subnet =-    Subnet'-    { _sSubnetStatus = Nothing-    , _sSubnetIdentifier = Nothing-    , _sSubnetAvailabilityZone = Nothing-    }---- | The status of the subnet.-sSubnetStatus :: Lens' Subnet (Maybe Text)-sSubnetStatus = lens _sSubnetStatus (\ s a -> s{_sSubnetStatus = a});---- | The identifier of the subnet.-sSubnetIdentifier :: Lens' Subnet (Maybe Text)-sSubnetIdentifier = lens _sSubnetIdentifier (\ s a -> s{_sSubnetIdentifier = a});---- | Undocumented member.-sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)-sSubnetAvailabilityZone = lens _sSubnetAvailabilityZone (\ s a -> s{_sSubnetAvailabilityZone = a});--instance FromXML Subnet where-        parseXML x-          = Subnet' <$>-              (x .@? "SubnetStatus") <*> (x .@? "SubnetIdentifier")-                <*> (x .@? "SubnetAvailabilityZone")--instance Hashable Subnet--instance NFData Subnet---- | Describes the status of a 'RestoreTableFromClusterSnapshot' operation.------------ /See:/ 'tableRestoreStatus' smart constructor.-data TableRestoreStatus = TableRestoreStatus'-    { _trsStatus                :: !(Maybe TableRestoreStatusType)-    , _trsTargetSchemaName      :: !(Maybe Text)-    , _trsSnapshotIdentifier    :: !(Maybe Text)-    , _trsSourceDatabaseName    :: !(Maybe Text)-    , _trsTableRestoreRequestId :: !(Maybe Text)-    , _trsNewTableName          :: !(Maybe Text)-    , _trsTargetDatabaseName    :: !(Maybe Text)-    , _trsSourceSchemaName      :: !(Maybe Text)-    , _trsClusterIdentifier     :: !(Maybe Text)-    , _trsRequestTime           :: !(Maybe ISO8601)-    , _trsSourceTableName       :: !(Maybe Text)-    , _trsTotalDataInMegaBytes  :: !(Maybe Integer)-    , _trsProgressInMegaBytes   :: !(Maybe Integer)-    , _trsMessage               :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TableRestoreStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trsStatus' - A value that describes the current state of the table restore request. Valid Values: @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@------ * 'trsTargetSchemaName' - The name of the schema to restore the table to.------ * 'trsSnapshotIdentifier' - The identifier of the snapshot that the table is being restored from.------ * 'trsSourceDatabaseName' - The name of the source database that contains the table being restored.------ * 'trsTableRestoreRequestId' - The unique identifier for the table restore request.------ * 'trsNewTableName' - The name of the table to create as a result of the table restore request.------ * 'trsTargetDatabaseName' - The name of the database to restore the table to.------ * 'trsSourceSchemaName' - The name of the source schema that contains the table being restored.------ * 'trsClusterIdentifier' - The identifier of the Amazon Redshift cluster that the table is being restored to.------ * 'trsRequestTime' - The time that the table restore request was made, in Universal Coordinated Time (UTC).------ * 'trsSourceTableName' - The name of the source table being restored.------ * 'trsTotalDataInMegaBytes' - The total amount of data to restore to the new table, in megabytes (MB).------ * 'trsProgressInMegaBytes' - The amount of data restored to the new table so far, in megabytes (MB).------ * 'trsMessage' - A description of the status of the table restore request. Status values include @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@ .-tableRestoreStatus-    :: TableRestoreStatus-tableRestoreStatus =-    TableRestoreStatus'-    { _trsStatus = Nothing-    , _trsTargetSchemaName = Nothing-    , _trsSnapshotIdentifier = Nothing-    , _trsSourceDatabaseName = Nothing-    , _trsTableRestoreRequestId = Nothing-    , _trsNewTableName = Nothing-    , _trsTargetDatabaseName = Nothing-    , _trsSourceSchemaName = Nothing-    , _trsClusterIdentifier = Nothing-    , _trsRequestTime = Nothing-    , _trsSourceTableName = Nothing-    , _trsTotalDataInMegaBytes = Nothing-    , _trsProgressInMegaBytes = Nothing-    , _trsMessage = Nothing-    }---- | A value that describes the current state of the table restore request. Valid Values: @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@-trsStatus :: Lens' TableRestoreStatus (Maybe TableRestoreStatusType)-trsStatus = lens _trsStatus (\ s a -> s{_trsStatus = a});---- | The name of the schema to restore the table to.-trsTargetSchemaName :: Lens' TableRestoreStatus (Maybe Text)-trsTargetSchemaName = lens _trsTargetSchemaName (\ s a -> s{_trsTargetSchemaName = a});---- | The identifier of the snapshot that the table is being restored from.-trsSnapshotIdentifier :: Lens' TableRestoreStatus (Maybe Text)-trsSnapshotIdentifier = lens _trsSnapshotIdentifier (\ s a -> s{_trsSnapshotIdentifier = a});---- | The name of the source database that contains the table being restored.-trsSourceDatabaseName :: Lens' TableRestoreStatus (Maybe Text)-trsSourceDatabaseName = lens _trsSourceDatabaseName (\ s a -> s{_trsSourceDatabaseName = a});---- | The unique identifier for the table restore request.-trsTableRestoreRequestId :: Lens' TableRestoreStatus (Maybe Text)-trsTableRestoreRequestId = lens _trsTableRestoreRequestId (\ s a -> s{_trsTableRestoreRequestId = a});---- | The name of the table to create as a result of the table restore request.-trsNewTableName :: Lens' TableRestoreStatus (Maybe Text)-trsNewTableName = lens _trsNewTableName (\ s a -> s{_trsNewTableName = a});---- | The name of the database to restore the table to.-trsTargetDatabaseName :: Lens' TableRestoreStatus (Maybe Text)-trsTargetDatabaseName = lens _trsTargetDatabaseName (\ s a -> s{_trsTargetDatabaseName = a});---- | The name of the source schema that contains the table being restored.-trsSourceSchemaName :: Lens' TableRestoreStatus (Maybe Text)-trsSourceSchemaName = lens _trsSourceSchemaName (\ s a -> s{_trsSourceSchemaName = a});---- | The identifier of the Amazon Redshift cluster that the table is being restored to.-trsClusterIdentifier :: Lens' TableRestoreStatus (Maybe Text)-trsClusterIdentifier = lens _trsClusterIdentifier (\ s a -> s{_trsClusterIdentifier = a});---- | The time that the table restore request was made, in Universal Coordinated Time (UTC).-trsRequestTime :: Lens' TableRestoreStatus (Maybe UTCTime)-trsRequestTime = lens _trsRequestTime (\ s a -> s{_trsRequestTime = a}) . mapping _Time;---- | The name of the source table being restored.-trsSourceTableName :: Lens' TableRestoreStatus (Maybe Text)-trsSourceTableName = lens _trsSourceTableName (\ s a -> s{_trsSourceTableName = a});---- | The total amount of data to restore to the new table, in megabytes (MB).-trsTotalDataInMegaBytes :: Lens' TableRestoreStatus (Maybe Integer)-trsTotalDataInMegaBytes = lens _trsTotalDataInMegaBytes (\ s a -> s{_trsTotalDataInMegaBytes = a});---- | The amount of data restored to the new table so far, in megabytes (MB).-trsProgressInMegaBytes :: Lens' TableRestoreStatus (Maybe Integer)-trsProgressInMegaBytes = lens _trsProgressInMegaBytes (\ s a -> s{_trsProgressInMegaBytes = a});---- | A description of the status of the table restore request. Status values include @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@ .-trsMessage :: Lens' TableRestoreStatus (Maybe Text)-trsMessage = lens _trsMessage (\ s a -> s{_trsMessage = a});--instance FromXML TableRestoreStatus where-        parseXML x-          = TableRestoreStatus' <$>-              (x .@? "Status") <*> (x .@? "TargetSchemaName") <*>-                (x .@? "SnapshotIdentifier")-                <*> (x .@? "SourceDatabaseName")-                <*> (x .@? "TableRestoreRequestId")-                <*> (x .@? "NewTableName")-                <*> (x .@? "TargetDatabaseName")-                <*> (x .@? "SourceSchemaName")-                <*> (x .@? "ClusterIdentifier")-                <*> (x .@? "RequestTime")-                <*> (x .@? "SourceTableName")-                <*> (x .@? "TotalDataInMegaBytes")-                <*> (x .@? "ProgressInMegaBytes")-                <*> (x .@? "Message")--instance Hashable TableRestoreStatus--instance NFData TableRestoreStatus---- | A tag consisting of a name/value pair for a resource.------------ /See:/ 'tag' smart constructor.-data Tag = Tag'-    { _tagValue :: !(Maybe Text)-    , _tagKey   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Tag' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tagValue' - The value for the resource tag.------ * 'tagKey' - The key, or name, for the resource tag.-tag-    :: Tag-tag =-    Tag'-    { _tagValue = Nothing-    , _tagKey = Nothing-    }---- | The value for the resource tag.-tagValue :: Lens' Tag (Maybe Text)-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});---- | The key, or name, for the resource tag.-tagKey :: Lens' Tag (Maybe Text)-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});--instance FromXML Tag where-        parseXML x-          = Tag' <$> (x .@? "Value") <*> (x .@? "Key")--instance Hashable Tag--instance NFData Tag--instance ToQuery Tag where-        toQuery Tag'{..}-          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]---- | A tag and its associated resource.------------ /See:/ 'taggedResource' smart constructor.-data TaggedResource = TaggedResource'-    { _trTag          :: !(Maybe Tag)-    , _trResourceType :: !(Maybe Text)-    , _trResourceName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TaggedResource' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trTag' - The tag for the resource.------ * 'trResourceType' - The type of resource with which the tag is associated. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.------ * 'trResourceName' - The Amazon Resource Name (ARN) with which the tag is associated. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ .-taggedResource-    :: TaggedResource-taggedResource =-    TaggedResource'-    { _trTag = Nothing-    , _trResourceType = Nothing-    , _trResourceName = Nothing-    }---- | The tag for the resource.-trTag :: Lens' TaggedResource (Maybe Tag)-trTag = lens _trTag (\ s a -> s{_trTag = a});---- | The type of resource with which the tag is associated. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.-trResourceType :: Lens' TaggedResource (Maybe Text)-trResourceType = lens _trResourceType (\ s a -> s{_trResourceType = a});---- | The Amazon Resource Name (ARN) with which the tag is associated. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ .-trResourceName :: Lens' TaggedResource (Maybe Text)-trResourceName = lens _trResourceName (\ s a -> s{_trResourceName = a});--instance FromXML TaggedResource where-        parseXML x-          = TaggedResource' <$>-              (x .@? "Tag") <*> (x .@? "ResourceType") <*>-                (x .@? "ResourceName")--instance Hashable TaggedResource--instance NFData TaggedResource---- | Describes the members of a VPC security group.------------ /See:/ 'vpcSecurityGroupMembership' smart constructor.-data VPCSecurityGroupMembership = VPCSecurityGroupMembership'-    { _vsgmStatus             :: !(Maybe Text)-    , _vsgmVPCSecurityGroupId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCSecurityGroupMembership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsgmStatus' - The status of the VPC security group.------ * 'vsgmVPCSecurityGroupId' - The identifier of the VPC security group.-vpcSecurityGroupMembership-    :: VPCSecurityGroupMembership-vpcSecurityGroupMembership =-    VPCSecurityGroupMembership'-    { _vsgmStatus = Nothing-    , _vsgmVPCSecurityGroupId = Nothing-    }---- | The status of the VPC security group.-vsgmStatus :: Lens' VPCSecurityGroupMembership (Maybe Text)-vsgmStatus = lens _vsgmStatus (\ s a -> s{_vsgmStatus = a});---- | The identifier of the VPC security group.-vsgmVPCSecurityGroupId :: Lens' VPCSecurityGroupMembership (Maybe Text)-vsgmVPCSecurityGroupId = lens _vsgmVPCSecurityGroupId (\ s a -> s{_vsgmVPCSecurityGroupId = a});--instance FromXML VPCSecurityGroupMembership where-        parseXML x-          = VPCSecurityGroupMembership' <$>-              (x .@? "Status") <*> (x .@? "VpcSecurityGroupId")--instance Hashable VPCSecurityGroupMembership--instance NFData VPCSecurityGroupMembership+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Redshift.Types.Product where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.Internal+import Network.AWS.Redshift.Types.Sum++-- | Describes an AWS customer account authorized to restore a snapshot.+--+--+--+-- /See:/ 'accountWithRestoreAccess' smart constructor.+data AccountWithRestoreAccess = AccountWithRestoreAccess'+  { _awraAccountAlias :: !(Maybe Text)+  , _awraAccountId    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AccountWithRestoreAccess' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awraAccountAlias' - The identifier of an AWS support account authorized to restore a snapshot. For AWS support, the identifier is @amazon-redshift-support@ .+--+-- * 'awraAccountId' - The identifier of an AWS customer account authorized to restore a snapshot.+accountWithRestoreAccess+    :: AccountWithRestoreAccess+accountWithRestoreAccess =+  AccountWithRestoreAccess'+  {_awraAccountAlias = Nothing, _awraAccountId = Nothing}+++-- | The identifier of an AWS support account authorized to restore a snapshot. For AWS support, the identifier is @amazon-redshift-support@ .+awraAccountAlias :: Lens' AccountWithRestoreAccess (Maybe Text)+awraAccountAlias = lens _awraAccountAlias (\ s a -> s{_awraAccountAlias = a});++-- | The identifier of an AWS customer account authorized to restore a snapshot.+awraAccountId :: Lens' AccountWithRestoreAccess (Maybe Text)+awraAccountId = lens _awraAccountId (\ s a -> s{_awraAccountId = a});++instance FromXML AccountWithRestoreAccess where+        parseXML x+          = AccountWithRestoreAccess' <$>+              (x .@? "AccountAlias") <*> (x .@? "AccountId")++instance Hashable AccountWithRestoreAccess where++instance NFData AccountWithRestoreAccess where++-- | Describes an availability zone.+--+--+--+-- /See:/ 'availabilityZone' smart constructor.+newtype AvailabilityZone = AvailabilityZone'+  { _azName :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azName' - The name of the availability zone.+availabilityZone+    :: AvailabilityZone+availabilityZone = AvailabilityZone' {_azName = Nothing}+++-- | The name of the availability zone.+azName :: Lens' AvailabilityZone (Maybe Text)+azName = lens _azName (\ s a -> s{_azName = a});++instance FromXML AvailabilityZone where+        parseXML x = AvailabilityZone' <$> (x .@? "Name")++instance Hashable AvailabilityZone where++instance NFData AvailabilityZone where++-- | Describes a cluster.+--+--+--+-- /See:/ 'cluster' smart constructor.+data Cluster = Cluster'+  { _cRestoreStatus :: !(Maybe RestoreStatus)+  , _cEnhancedVPCRouting :: !(Maybe Bool)+  , _cClusterSnapshotCopyStatus :: !(Maybe ClusterSnapshotCopyStatus)+  , _cClusterRevisionNumber :: !(Maybe Text)+  , _cPubliclyAccessible :: !(Maybe Bool)+  , _cMasterUsername :: !(Maybe Text)+  , _cVPCId :: !(Maybe Text)+  , _cClusterSecurityGroups :: !(Maybe [ClusterSecurityGroupMembership])+  , _cAutomatedSnapshotRetentionPeriod :: !(Maybe Int)+  , _cEncrypted :: !(Maybe Bool)+  , _cClusterSubnetGroupName :: !(Maybe Text)+  , _cClusterIdentifier :: !(Maybe Text)+  , _cNumberOfNodes :: !(Maybe Int)+  , _cClusterPublicKey :: !(Maybe Text)+  , _cPreferredMaintenanceWindow :: !(Maybe Text)+  , _cModifyStatus :: !(Maybe Text)+  , _cKMSKeyId :: !(Maybe Text)+  , _cClusterParameterGroups :: !(Maybe [ClusterParameterGroupStatus])+  , _cAvailabilityZone :: !(Maybe Text)+  , _cVPCSecurityGroups :: !(Maybe [VPCSecurityGroupMembership])+  , _cHSMStatus :: !(Maybe HSMStatus)+  , _cIAMRoles :: !(Maybe [ClusterIAMRole])+  , _cElasticIPStatus :: !(Maybe ElasticIPStatus)+  , _cClusterVersion :: !(Maybe Text)+  , _cNodeType :: !(Maybe Text)+  , _cClusterCreateTime :: !(Maybe ISO8601)+  , _cEndpoint :: !(Maybe Endpoint)+  , _cAllowVersionUpgrade :: !(Maybe Bool)+  , _cClusterStatus :: !(Maybe Text)+  , _cPendingModifiedValues :: !(Maybe PendingModifiedValues)+  , _cTags :: !(Maybe [Tag])+  , _cClusterNodes :: !(Maybe [ClusterNode])+  , _cDBName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Cluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cRestoreStatus' - A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.+--+-- * 'cEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+--+-- * 'cClusterSnapshotCopyStatus' - A value that returns the destination region and retention period that are configured for cross-region snapshot copy.+--+-- * 'cClusterRevisionNumber' - The specific revision number of the database in the cluster.+--+-- * 'cPubliclyAccessible' - A Boolean value that, if @true@ , indicates that the cluster can be accessed from a public network.+--+-- * 'cMasterUsername' - The master user name for the cluster. This name is used to connect to the database that is specified in the __DBName__ parameter.+--+-- * 'cVPCId' - The identifier of the VPC the cluster is in, if the cluster is in a VPC.+--+-- * 'cClusterSecurityGroups' - A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains @ClusterSecurityGroup.Name@ and @ClusterSecurityGroup.Status@ subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the __VpcSecurityGroups__ parameter.+--+-- * 'cAutomatedSnapshotRetentionPeriod' - The number of days that automatic cluster snapshots are retained.+--+-- * 'cEncrypted' - A Boolean value that, if @true@ , indicates that data in the cluster is encrypted at rest.+--+-- * 'cClusterSubnetGroupName' - The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.+--+-- * 'cClusterIdentifier' - The unique identifier of the cluster.+--+-- * 'cNumberOfNodes' - The number of compute nodes in the cluster.+--+-- * 'cClusterPublicKey' - The public key for the cluster.+--+-- * 'cPreferredMaintenanceWindow' - The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.+--+-- * 'cModifyStatus' - The status of a modify operation, if any, initiated for the cluster.+--+-- * 'cKMSKeyId' - The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.+--+-- * 'cClusterParameterGroups' - The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.+--+-- * 'cAvailabilityZone' - The name of the Availability Zone in which the cluster is located.+--+-- * 'cVPCSecurityGroups' - A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.+--+-- * 'cHSMStatus' - A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying+--+-- * 'cIAMRoles' - A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.+--+-- * 'cElasticIPStatus' - The status of the elastic IP (EIP) address.+--+-- * 'cClusterVersion' - The version ID of the Amazon Redshift engine that is running on the cluster.+--+-- * 'cNodeType' - The node type for the nodes in the cluster.+--+-- * 'cClusterCreateTime' - The date and time that the cluster was created.+--+-- * 'cEndpoint' - The connection endpoint.+--+-- * 'cAllowVersionUpgrade' - A Boolean value that, if @true@ , indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.+--+-- * 'cClusterStatus' - The current state of the cluster. Possible values are the following:     * @available@      * @creating@      * @deleting@      * @final-snapshot@      * @hardware-failure@      * @incompatible-hsm@      * @incompatible-network@      * @incompatible-parameters@      * @incompatible-restore@      * @modifying@      * @rebooting@      * @renaming@      * @resizing@      * @rotating-keys@      * @storage-full@      * @updating-hsm@+--+-- * 'cPendingModifiedValues' - A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.+--+-- * 'cTags' - The list of tags for the cluster.+--+-- * 'cClusterNodes' - The nodes in the cluster.+--+-- * 'cDBName' - The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named @dev@ dev was created by default.+cluster+    :: Cluster+cluster =+  Cluster'+  { _cRestoreStatus = Nothing+  , _cEnhancedVPCRouting = Nothing+  , _cClusterSnapshotCopyStatus = Nothing+  , _cClusterRevisionNumber = Nothing+  , _cPubliclyAccessible = Nothing+  , _cMasterUsername = Nothing+  , _cVPCId = Nothing+  , _cClusterSecurityGroups = Nothing+  , _cAutomatedSnapshotRetentionPeriod = Nothing+  , _cEncrypted = Nothing+  , _cClusterSubnetGroupName = Nothing+  , _cClusterIdentifier = Nothing+  , _cNumberOfNodes = Nothing+  , _cClusterPublicKey = Nothing+  , _cPreferredMaintenanceWindow = Nothing+  , _cModifyStatus = Nothing+  , _cKMSKeyId = Nothing+  , _cClusterParameterGroups = Nothing+  , _cAvailabilityZone = Nothing+  , _cVPCSecurityGroups = Nothing+  , _cHSMStatus = Nothing+  , _cIAMRoles = Nothing+  , _cElasticIPStatus = Nothing+  , _cClusterVersion = Nothing+  , _cNodeType = Nothing+  , _cClusterCreateTime = Nothing+  , _cEndpoint = Nothing+  , _cAllowVersionUpgrade = Nothing+  , _cClusterStatus = Nothing+  , _cPendingModifiedValues = Nothing+  , _cTags = Nothing+  , _cClusterNodes = Nothing+  , _cDBName = Nothing+  }+++-- | A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.+cRestoreStatus :: Lens' Cluster (Maybe RestoreStatus)+cRestoreStatus = lens _cRestoreStatus (\ s a -> s{_cRestoreStatus = a});++-- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+cEnhancedVPCRouting :: Lens' Cluster (Maybe Bool)+cEnhancedVPCRouting = lens _cEnhancedVPCRouting (\ s a -> s{_cEnhancedVPCRouting = a});++-- | A value that returns the destination region and retention period that are configured for cross-region snapshot copy.+cClusterSnapshotCopyStatus :: Lens' Cluster (Maybe ClusterSnapshotCopyStatus)+cClusterSnapshotCopyStatus = lens _cClusterSnapshotCopyStatus (\ s a -> s{_cClusterSnapshotCopyStatus = a});++-- | The specific revision number of the database in the cluster.+cClusterRevisionNumber :: Lens' Cluster (Maybe Text)+cClusterRevisionNumber = lens _cClusterRevisionNumber (\ s a -> s{_cClusterRevisionNumber = a});++-- | A Boolean value that, if @true@ , indicates that the cluster can be accessed from a public network.+cPubliclyAccessible :: Lens' Cluster (Maybe Bool)+cPubliclyAccessible = lens _cPubliclyAccessible (\ s a -> s{_cPubliclyAccessible = a});++-- | The master user name for the cluster. This name is used to connect to the database that is specified in the __DBName__ parameter.+cMasterUsername :: Lens' Cluster (Maybe Text)+cMasterUsername = lens _cMasterUsername (\ s a -> s{_cMasterUsername = a});++-- | The identifier of the VPC the cluster is in, if the cluster is in a VPC.+cVPCId :: Lens' Cluster (Maybe Text)+cVPCId = lens _cVPCId (\ s a -> s{_cVPCId = a});++-- | A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains @ClusterSecurityGroup.Name@ and @ClusterSecurityGroup.Status@ subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the __VpcSecurityGroups__ parameter.+cClusterSecurityGroups :: Lens' Cluster [ClusterSecurityGroupMembership]+cClusterSecurityGroups = lens _cClusterSecurityGroups (\ s a -> s{_cClusterSecurityGroups = a}) . _Default . _Coerce;++-- | The number of days that automatic cluster snapshots are retained.+cAutomatedSnapshotRetentionPeriod :: Lens' Cluster (Maybe Int)+cAutomatedSnapshotRetentionPeriod = lens _cAutomatedSnapshotRetentionPeriod (\ s a -> s{_cAutomatedSnapshotRetentionPeriod = a});++-- | A Boolean value that, if @true@ , indicates that data in the cluster is encrypted at rest.+cEncrypted :: Lens' Cluster (Maybe Bool)+cEncrypted = lens _cEncrypted (\ s a -> s{_cEncrypted = a});++-- | The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.+cClusterSubnetGroupName :: Lens' Cluster (Maybe Text)+cClusterSubnetGroupName = lens _cClusterSubnetGroupName (\ s a -> s{_cClusterSubnetGroupName = a});++-- | The unique identifier of the cluster.+cClusterIdentifier :: Lens' Cluster (Maybe Text)+cClusterIdentifier = lens _cClusterIdentifier (\ s a -> s{_cClusterIdentifier = a});++-- | The number of compute nodes in the cluster.+cNumberOfNodes :: Lens' Cluster (Maybe Int)+cNumberOfNodes = lens _cNumberOfNodes (\ s a -> s{_cNumberOfNodes = a});++-- | The public key for the cluster.+cClusterPublicKey :: Lens' Cluster (Maybe Text)+cClusterPublicKey = lens _cClusterPublicKey (\ s a -> s{_cClusterPublicKey = a});++-- | The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.+cPreferredMaintenanceWindow :: Lens' Cluster (Maybe Text)+cPreferredMaintenanceWindow = lens _cPreferredMaintenanceWindow (\ s a -> s{_cPreferredMaintenanceWindow = a});++-- | The status of a modify operation, if any, initiated for the cluster.+cModifyStatus :: Lens' Cluster (Maybe Text)+cModifyStatus = lens _cModifyStatus (\ s a -> s{_cModifyStatus = a});++-- | The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.+cKMSKeyId :: Lens' Cluster (Maybe Text)+cKMSKeyId = lens _cKMSKeyId (\ s a -> s{_cKMSKeyId = a});++-- | The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.+cClusterParameterGroups :: Lens' Cluster [ClusterParameterGroupStatus]+cClusterParameterGroups = lens _cClusterParameterGroups (\ s a -> s{_cClusterParameterGroups = a}) . _Default . _Coerce;++-- | The name of the Availability Zone in which the cluster is located.+cAvailabilityZone :: Lens' Cluster (Maybe Text)+cAvailabilityZone = lens _cAvailabilityZone (\ s a -> s{_cAvailabilityZone = a});++-- | A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.+cVPCSecurityGroups :: Lens' Cluster [VPCSecurityGroupMembership]+cVPCSecurityGroups = lens _cVPCSecurityGroups (\ s a -> s{_cVPCSecurityGroups = a}) . _Default . _Coerce;++-- | A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying+cHSMStatus :: Lens' Cluster (Maybe HSMStatus)+cHSMStatus = lens _cHSMStatus (\ s a -> s{_cHSMStatus = a});++-- | A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.+cIAMRoles :: Lens' Cluster [ClusterIAMRole]+cIAMRoles = lens _cIAMRoles (\ s a -> s{_cIAMRoles = a}) . _Default . _Coerce;++-- | The status of the elastic IP (EIP) address.+cElasticIPStatus :: Lens' Cluster (Maybe ElasticIPStatus)+cElasticIPStatus = lens _cElasticIPStatus (\ s a -> s{_cElasticIPStatus = a});++-- | The version ID of the Amazon Redshift engine that is running on the cluster.+cClusterVersion :: Lens' Cluster (Maybe Text)+cClusterVersion = lens _cClusterVersion (\ s a -> s{_cClusterVersion = a});++-- | The node type for the nodes in the cluster.+cNodeType :: Lens' Cluster (Maybe Text)+cNodeType = lens _cNodeType (\ s a -> s{_cNodeType = a});++-- | The date and time that the cluster was created.+cClusterCreateTime :: Lens' Cluster (Maybe UTCTime)+cClusterCreateTime = lens _cClusterCreateTime (\ s a -> s{_cClusterCreateTime = a}) . mapping _Time;++-- | The connection endpoint.+cEndpoint :: Lens' Cluster (Maybe Endpoint)+cEndpoint = lens _cEndpoint (\ s a -> s{_cEndpoint = a});++-- | A Boolean value that, if @true@ , indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.+cAllowVersionUpgrade :: Lens' Cluster (Maybe Bool)+cAllowVersionUpgrade = lens _cAllowVersionUpgrade (\ s a -> s{_cAllowVersionUpgrade = a});++-- | The current state of the cluster. Possible values are the following:     * @available@      * @creating@      * @deleting@      * @final-snapshot@      * @hardware-failure@      * @incompatible-hsm@      * @incompatible-network@      * @incompatible-parameters@      * @incompatible-restore@      * @modifying@      * @rebooting@      * @renaming@      * @resizing@      * @rotating-keys@      * @storage-full@      * @updating-hsm@+cClusterStatus :: Lens' Cluster (Maybe Text)+cClusterStatus = lens _cClusterStatus (\ s a -> s{_cClusterStatus = a});++-- | A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.+cPendingModifiedValues :: Lens' Cluster (Maybe PendingModifiedValues)+cPendingModifiedValues = lens _cPendingModifiedValues (\ s a -> s{_cPendingModifiedValues = a});++-- | The list of tags for the cluster.+cTags :: Lens' Cluster [Tag]+cTags = lens _cTags (\ s a -> s{_cTags = a}) . _Default . _Coerce;++-- | The nodes in the cluster.+cClusterNodes :: Lens' Cluster [ClusterNode]+cClusterNodes = lens _cClusterNodes (\ s a -> s{_cClusterNodes = a}) . _Default . _Coerce;++-- | The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named @dev@ dev was created by default.+cDBName :: Lens' Cluster (Maybe Text)+cDBName = lens _cDBName (\ s a -> s{_cDBName = a});++instance FromXML Cluster where+        parseXML x+          = Cluster' <$>+              (x .@? "RestoreStatus") <*>+                (x .@? "EnhancedVpcRouting")+                <*> (x .@? "ClusterSnapshotCopyStatus")+                <*> (x .@? "ClusterRevisionNumber")+                <*> (x .@? "PubliclyAccessible")+                <*> (x .@? "MasterUsername")+                <*> (x .@? "VpcId")+                <*>+                (x .@? "ClusterSecurityGroups" .!@ mempty >>=+                   may (parseXMLList "ClusterSecurityGroup"))+                <*> (x .@? "AutomatedSnapshotRetentionPeriod")+                <*> (x .@? "Encrypted")+                <*> (x .@? "ClusterSubnetGroupName")+                <*> (x .@? "ClusterIdentifier")+                <*> (x .@? "NumberOfNodes")+                <*> (x .@? "ClusterPublicKey")+                <*> (x .@? "PreferredMaintenanceWindow")+                <*> (x .@? "ModifyStatus")+                <*> (x .@? "KmsKeyId")+                <*>+                (x .@? "ClusterParameterGroups" .!@ mempty >>=+                   may (parseXMLList "ClusterParameterGroup"))+                <*> (x .@? "AvailabilityZone")+                <*>+                (x .@? "VpcSecurityGroups" .!@ mempty >>=+                   may (parseXMLList "VpcSecurityGroup"))+                <*> (x .@? "HsmStatus")+                <*>+                (x .@? "IamRoles" .!@ mempty >>=+                   may (parseXMLList "ClusterIamRole"))+                <*> (x .@? "ElasticIpStatus")+                <*> (x .@? "ClusterVersion")+                <*> (x .@? "NodeType")+                <*> (x .@? "ClusterCreateTime")+                <*> (x .@? "Endpoint")+                <*> (x .@? "AllowVersionUpgrade")+                <*> (x .@? "ClusterStatus")+                <*> (x .@? "PendingModifiedValues")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))+                <*>+                (x .@? "ClusterNodes" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "DBName")++instance Hashable Cluster where++instance NFData Cluster where++-- | An AWS Identity and Access Management (IAM) role that can be used by the associated Amazon Redshift cluster to access other AWS services.+--+--+--+-- /See:/ 'clusterIAMRole' smart constructor.+data ClusterIAMRole = ClusterIAMRole'+  { _cirIAMRoleARN  :: !(Maybe Text)+  , _cirApplyStatus :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterIAMRole' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cirIAMRoleARN' - The Amazon Resource Name (ARN) of the IAM role, for example, @arn:aws:iam::123456789012:role/RedshiftCopyUnload@ .+--+-- * 'cirApplyStatus' - A value that describes the status of the IAM role's association with an Amazon Redshift cluster. The following are possible statuses and descriptions.     * @in-sync@ : The role is available for use by the cluster.     * @adding@ : The role is in the process of being associated with the cluster.     * @removing@ : The role is in the process of being disassociated with the cluster.+clusterIAMRole+    :: ClusterIAMRole+clusterIAMRole =+  ClusterIAMRole' {_cirIAMRoleARN = Nothing, _cirApplyStatus = Nothing}+++-- | The Amazon Resource Name (ARN) of the IAM role, for example, @arn:aws:iam::123456789012:role/RedshiftCopyUnload@ .+cirIAMRoleARN :: Lens' ClusterIAMRole (Maybe Text)+cirIAMRoleARN = lens _cirIAMRoleARN (\ s a -> s{_cirIAMRoleARN = a});++-- | A value that describes the status of the IAM role's association with an Amazon Redshift cluster. The following are possible statuses and descriptions.     * @in-sync@ : The role is available for use by the cluster.     * @adding@ : The role is in the process of being associated with the cluster.     * @removing@ : The role is in the process of being disassociated with the cluster.+cirApplyStatus :: Lens' ClusterIAMRole (Maybe Text)+cirApplyStatus = lens _cirApplyStatus (\ s a -> s{_cirApplyStatus = a});++instance FromXML ClusterIAMRole where+        parseXML x+          = ClusterIAMRole' <$>+              (x .@? "IamRoleArn") <*> (x .@? "ApplyStatus")++instance Hashable ClusterIAMRole where++instance NFData ClusterIAMRole where++-- | The identifier of a node in a cluster.+--+--+--+-- /See:/ 'clusterNode' smart constructor.+data ClusterNode = ClusterNode'+  { _cnNodeRole         :: !(Maybe Text)+  , _cnPrivateIPAddress :: !(Maybe Text)+  , _cnPublicIPAddress  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterNode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnNodeRole' - Whether the node is a leader node or a compute node.+--+-- * 'cnPrivateIPAddress' - The private IP address of a node within a cluster.+--+-- * 'cnPublicIPAddress' - The public IP address of a node within a cluster.+clusterNode+    :: ClusterNode+clusterNode =+  ClusterNode'+  { _cnNodeRole = Nothing+  , _cnPrivateIPAddress = Nothing+  , _cnPublicIPAddress = Nothing+  }+++-- | Whether the node is a leader node or a compute node.+cnNodeRole :: Lens' ClusterNode (Maybe Text)+cnNodeRole = lens _cnNodeRole (\ s a -> s{_cnNodeRole = a});++-- | The private IP address of a node within a cluster.+cnPrivateIPAddress :: Lens' ClusterNode (Maybe Text)+cnPrivateIPAddress = lens _cnPrivateIPAddress (\ s a -> s{_cnPrivateIPAddress = a});++-- | The public IP address of a node within a cluster.+cnPublicIPAddress :: Lens' ClusterNode (Maybe Text)+cnPublicIPAddress = lens _cnPublicIPAddress (\ s a -> s{_cnPublicIPAddress = a});++instance FromXML ClusterNode where+        parseXML x+          = ClusterNode' <$>+              (x .@? "NodeRole") <*> (x .@? "PrivateIPAddress") <*>+                (x .@? "PublicIPAddress")++instance Hashable ClusterNode where++instance NFData ClusterNode where++-- | Describes a parameter group.+--+--+--+-- /See:/ 'clusterParameterGroup' smart constructor.+data ClusterParameterGroup = ClusterParameterGroup'+  { _cpgParameterGroupFamily :: !(Maybe Text)+  , _cpgDescription          :: !(Maybe Text)+  , _cpgTags                 :: !(Maybe [Tag])+  , _cpgParameterGroupName   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgParameterGroupFamily' - The name of the cluster parameter group family that this cluster parameter group is compatible with.+--+-- * 'cpgDescription' - The description of the parameter group.+--+-- * 'cpgTags' - The list of tags for the cluster parameter group.+--+-- * 'cpgParameterGroupName' - The name of the cluster parameter group.+clusterParameterGroup+    :: ClusterParameterGroup+clusterParameterGroup =+  ClusterParameterGroup'+  { _cpgParameterGroupFamily = Nothing+  , _cpgDescription = Nothing+  , _cpgTags = Nothing+  , _cpgParameterGroupName = Nothing+  }+++-- | The name of the cluster parameter group family that this cluster parameter group is compatible with.+cpgParameterGroupFamily :: Lens' ClusterParameterGroup (Maybe Text)+cpgParameterGroupFamily = lens _cpgParameterGroupFamily (\ s a -> s{_cpgParameterGroupFamily = a});++-- | The description of the parameter group.+cpgDescription :: Lens' ClusterParameterGroup (Maybe Text)+cpgDescription = lens _cpgDescription (\ s a -> s{_cpgDescription = a});++-- | The list of tags for the cluster parameter group.+cpgTags :: Lens' ClusterParameterGroup [Tag]+cpgTags = lens _cpgTags (\ s a -> s{_cpgTags = a}) . _Default . _Coerce;++-- | The name of the cluster parameter group.+cpgParameterGroupName :: Lens' ClusterParameterGroup (Maybe Text)+cpgParameterGroupName = lens _cpgParameterGroupName (\ s a -> s{_cpgParameterGroupName = a});++instance FromXML ClusterParameterGroup where+        parseXML x+          = ClusterParameterGroup' <$>+              (x .@? "ParameterGroupFamily") <*>+                (x .@? "Description")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))+                <*> (x .@? "ParameterGroupName")++instance Hashable ClusterParameterGroup where++instance NFData ClusterParameterGroup where++-- |+--+--+--+-- /See:/ 'clusterParameterGroupNameMessage' smart constructor.+data ClusterParameterGroupNameMessage = ClusterParameterGroupNameMessage'+  { _cpgnmParameterGroupStatus :: !(Maybe Text)+  , _cpgnmParameterGroupName   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterParameterGroupNameMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgnmParameterGroupStatus' - The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.+--+-- * 'cpgnmParameterGroupName' - The name of the cluster parameter group.+clusterParameterGroupNameMessage+    :: ClusterParameterGroupNameMessage+clusterParameterGroupNameMessage =+  ClusterParameterGroupNameMessage'+  {_cpgnmParameterGroupStatus = Nothing, _cpgnmParameterGroupName = Nothing}+++-- | The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.+cpgnmParameterGroupStatus :: Lens' ClusterParameterGroupNameMessage (Maybe Text)+cpgnmParameterGroupStatus = lens _cpgnmParameterGroupStatus (\ s a -> s{_cpgnmParameterGroupStatus = a});++-- | The name of the cluster parameter group.+cpgnmParameterGroupName :: Lens' ClusterParameterGroupNameMessage (Maybe Text)+cpgnmParameterGroupName = lens _cpgnmParameterGroupName (\ s a -> s{_cpgnmParameterGroupName = a});++instance FromXML ClusterParameterGroupNameMessage+         where+        parseXML x+          = ClusterParameterGroupNameMessage' <$>+              (x .@? "ParameterGroupStatus") <*>+                (x .@? "ParameterGroupName")++instance Hashable ClusterParameterGroupNameMessage+         where++instance NFData ClusterParameterGroupNameMessage+         where++-- | Describes the status of a parameter group.+--+--+--+-- /See:/ 'clusterParameterGroupStatus' smart constructor.+data ClusterParameterGroupStatus = ClusterParameterGroupStatus'+  { _cpgsClusterParameterStatusList :: !(Maybe [ClusterParameterStatus])+  , _cpgsParameterApplyStatus       :: !(Maybe Text)+  , _cpgsParameterGroupName         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterParameterGroupStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgsClusterParameterStatusList' - The list of parameter statuses. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .+--+-- * 'cpgsParameterApplyStatus' - The status of parameter updates.+--+-- * 'cpgsParameterGroupName' - The name of the cluster parameter group.+clusterParameterGroupStatus+    :: ClusterParameterGroupStatus+clusterParameterGroupStatus =+  ClusterParameterGroupStatus'+  { _cpgsClusterParameterStatusList = Nothing+  , _cpgsParameterApplyStatus = Nothing+  , _cpgsParameterGroupName = Nothing+  }+++-- | The list of parameter statuses. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .+cpgsClusterParameterStatusList :: Lens' ClusterParameterGroupStatus [ClusterParameterStatus]+cpgsClusterParameterStatusList = lens _cpgsClusterParameterStatusList (\ s a -> s{_cpgsClusterParameterStatusList = a}) . _Default . _Coerce;++-- | The status of parameter updates.+cpgsParameterApplyStatus :: Lens' ClusterParameterGroupStatus (Maybe Text)+cpgsParameterApplyStatus = lens _cpgsParameterApplyStatus (\ s a -> s{_cpgsParameterApplyStatus = a});++-- | The name of the cluster parameter group.+cpgsParameterGroupName :: Lens' ClusterParameterGroupStatus (Maybe Text)+cpgsParameterGroupName = lens _cpgsParameterGroupName (\ s a -> s{_cpgsParameterGroupName = a});++instance FromXML ClusterParameterGroupStatus where+        parseXML x+          = ClusterParameterGroupStatus' <$>+              (x .@? "ClusterParameterStatusList" .!@ mempty >>=+                 may (parseXMLList "member"))+                <*> (x .@? "ParameterApplyStatus")+                <*> (x .@? "ParameterGroupName")++instance Hashable ClusterParameterGroupStatus where++instance NFData ClusterParameterGroupStatus where++-- | Describes the status of a parameter group.+--+--+--+-- /See:/ 'clusterParameterStatus' smart constructor.+data ClusterParameterStatus = ClusterParameterStatus'+  { _cpsParameterApplyErrorDescription :: !(Maybe Text)+  , _cpsParameterName                  :: !(Maybe Text)+  , _cpsParameterApplyStatus           :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterParameterStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpsParameterApplyErrorDescription' - The error that prevented the parameter from being applied to the database.+--+-- * 'cpsParameterName' - The name of the parameter.+--+-- * 'cpsParameterApplyStatus' - The status of the parameter that indicates whether the parameter is in sync with the database, waiting for a cluster reboot, or encountered an error when being applied. The following are possible statuses and descriptions.     * @in-sync@ : The parameter value is in sync with the database.     * @pending-reboot@ : The parameter value will be applied after the cluster reboots.     * @applying@ : The parameter value is being applied to the database.     * @invalid-parameter@ : Cannot apply the parameter value because it has an invalid value or syntax.     * @apply-deferred@ : The parameter contains static property changes. The changes are deferred until the cluster reboots.     * @apply-error@ : Cannot connect to the cluster. The parameter change will be applied after the cluster reboots.     * @unknown-error@ : Cannot apply the parameter change right now. The change will be applied after the cluster reboots.+clusterParameterStatus+    :: ClusterParameterStatus+clusterParameterStatus =+  ClusterParameterStatus'+  { _cpsParameterApplyErrorDescription = Nothing+  , _cpsParameterName = Nothing+  , _cpsParameterApplyStatus = Nothing+  }+++-- | The error that prevented the parameter from being applied to the database.+cpsParameterApplyErrorDescription :: Lens' ClusterParameterStatus (Maybe Text)+cpsParameterApplyErrorDescription = lens _cpsParameterApplyErrorDescription (\ s a -> s{_cpsParameterApplyErrorDescription = a});++-- | The name of the parameter.+cpsParameterName :: Lens' ClusterParameterStatus (Maybe Text)+cpsParameterName = lens _cpsParameterName (\ s a -> s{_cpsParameterName = a});++-- | The status of the parameter that indicates whether the parameter is in sync with the database, waiting for a cluster reboot, or encountered an error when being applied. The following are possible statuses and descriptions.     * @in-sync@ : The parameter value is in sync with the database.     * @pending-reboot@ : The parameter value will be applied after the cluster reboots.     * @applying@ : The parameter value is being applied to the database.     * @invalid-parameter@ : Cannot apply the parameter value because it has an invalid value or syntax.     * @apply-deferred@ : The parameter contains static property changes. The changes are deferred until the cluster reboots.     * @apply-error@ : Cannot connect to the cluster. The parameter change will be applied after the cluster reboots.     * @unknown-error@ : Cannot apply the parameter change right now. The change will be applied after the cluster reboots.+cpsParameterApplyStatus :: Lens' ClusterParameterStatus (Maybe Text)+cpsParameterApplyStatus = lens _cpsParameterApplyStatus (\ s a -> s{_cpsParameterApplyStatus = a});++instance FromXML ClusterParameterStatus where+        parseXML x+          = ClusterParameterStatus' <$>+              (x .@? "ParameterApplyErrorDescription") <*>+                (x .@? "ParameterName")+                <*> (x .@? "ParameterApplyStatus")++instance Hashable ClusterParameterStatus where++instance NFData ClusterParameterStatus where++-- | Describes a security group.+--+--+--+-- /See:/ 'clusterSecurityGroup' smart constructor.+data ClusterSecurityGroup = ClusterSecurityGroup'+  { _cluClusterSecurityGroupName :: !(Maybe Text)+  , _cluIPRanges                 :: !(Maybe [IPRange])+  , _cluEC2SecurityGroups        :: !(Maybe [EC2SecurityGroup])+  , _cluDescription              :: !(Maybe Text)+  , _cluTags                     :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterSecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cluClusterSecurityGroupName' - The name of the cluster security group to which the operation was applied.+--+-- * 'cluIPRanges' - A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.+--+-- * 'cluEC2SecurityGroups' - A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.+--+-- * 'cluDescription' - A description of the security group.+--+-- * 'cluTags' - The list of tags for the cluster security group.+clusterSecurityGroup+    :: ClusterSecurityGroup+clusterSecurityGroup =+  ClusterSecurityGroup'+  { _cluClusterSecurityGroupName = Nothing+  , _cluIPRanges = Nothing+  , _cluEC2SecurityGroups = Nothing+  , _cluDescription = Nothing+  , _cluTags = Nothing+  }+++-- | The name of the cluster security group to which the operation was applied.+cluClusterSecurityGroupName :: Lens' ClusterSecurityGroup (Maybe Text)+cluClusterSecurityGroupName = lens _cluClusterSecurityGroupName (\ s a -> s{_cluClusterSecurityGroupName = a});++-- | A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.+cluIPRanges :: Lens' ClusterSecurityGroup [IPRange]+cluIPRanges = lens _cluIPRanges (\ s a -> s{_cluIPRanges = a}) . _Default . _Coerce;++-- | A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.+cluEC2SecurityGroups :: Lens' ClusterSecurityGroup [EC2SecurityGroup]+cluEC2SecurityGroups = lens _cluEC2SecurityGroups (\ s a -> s{_cluEC2SecurityGroups = a}) . _Default . _Coerce;++-- | A description of the security group.+cluDescription :: Lens' ClusterSecurityGroup (Maybe Text)+cluDescription = lens _cluDescription (\ s a -> s{_cluDescription = a});++-- | The list of tags for the cluster security group.+cluTags :: Lens' ClusterSecurityGroup [Tag]+cluTags = lens _cluTags (\ s a -> s{_cluTags = a}) . _Default . _Coerce;++instance FromXML ClusterSecurityGroup where+        parseXML x+          = ClusterSecurityGroup' <$>+              (x .@? "ClusterSecurityGroupName") <*>+                (x .@? "IPRanges" .!@ mempty >>=+                   may (parseXMLList "IPRange"))+                <*>+                (x .@? "EC2SecurityGroups" .!@ mempty >>=+                   may (parseXMLList "EC2SecurityGroup"))+                <*> (x .@? "Description")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable ClusterSecurityGroup where++instance NFData ClusterSecurityGroup where++-- | Describes a cluster security group.+--+--+--+-- /See:/ 'clusterSecurityGroupMembership' smart constructor.+data ClusterSecurityGroupMembership = ClusterSecurityGroupMembership'+  { _csgmStatus                   :: !(Maybe Text)+  , _csgmClusterSecurityGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterSecurityGroupMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgmStatus' - The status of the cluster security group.+--+-- * 'csgmClusterSecurityGroupName' - The name of the cluster security group.+clusterSecurityGroupMembership+    :: ClusterSecurityGroupMembership+clusterSecurityGroupMembership =+  ClusterSecurityGroupMembership'+  {_csgmStatus = Nothing, _csgmClusterSecurityGroupName = Nothing}+++-- | The status of the cluster security group.+csgmStatus :: Lens' ClusterSecurityGroupMembership (Maybe Text)+csgmStatus = lens _csgmStatus (\ s a -> s{_csgmStatus = a});++-- | The name of the cluster security group.+csgmClusterSecurityGroupName :: Lens' ClusterSecurityGroupMembership (Maybe Text)+csgmClusterSecurityGroupName = lens _csgmClusterSecurityGroupName (\ s a -> s{_csgmClusterSecurityGroupName = a});++instance FromXML ClusterSecurityGroupMembership where+        parseXML x+          = ClusterSecurityGroupMembership' <$>+              (x .@? "Status") <*>+                (x .@? "ClusterSecurityGroupName")++instance Hashable ClusterSecurityGroupMembership+         where++instance NFData ClusterSecurityGroupMembership where++-- | Returns the destination region and retention period that are configured for cross-region snapshot copy.+--+--+--+-- /See:/ 'clusterSnapshotCopyStatus' smart constructor.+data ClusterSnapshotCopyStatus = ClusterSnapshotCopyStatus'+  { _cscsRetentionPeriod       :: !(Maybe Integer)+  , _cscsDestinationRegion     :: !(Maybe Text)+  , _cscsSnapshotCopyGrantName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterSnapshotCopyStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cscsRetentionPeriod' - The number of days that automated snapshots are retained in the destination region after they are copied from a source region.+--+-- * 'cscsDestinationRegion' - The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.+--+-- * 'cscsSnapshotCopyGrantName' - The name of the snapshot copy grant.+clusterSnapshotCopyStatus+    :: ClusterSnapshotCopyStatus+clusterSnapshotCopyStatus =+  ClusterSnapshotCopyStatus'+  { _cscsRetentionPeriod = Nothing+  , _cscsDestinationRegion = Nothing+  , _cscsSnapshotCopyGrantName = Nothing+  }+++-- | The number of days that automated snapshots are retained in the destination region after they are copied from a source region.+cscsRetentionPeriod :: Lens' ClusterSnapshotCopyStatus (Maybe Integer)+cscsRetentionPeriod = lens _cscsRetentionPeriod (\ s a -> s{_cscsRetentionPeriod = a});++-- | The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.+cscsDestinationRegion :: Lens' ClusterSnapshotCopyStatus (Maybe Text)+cscsDestinationRegion = lens _cscsDestinationRegion (\ s a -> s{_cscsDestinationRegion = a});++-- | The name of the snapshot copy grant.+cscsSnapshotCopyGrantName :: Lens' ClusterSnapshotCopyStatus (Maybe Text)+cscsSnapshotCopyGrantName = lens _cscsSnapshotCopyGrantName (\ s a -> s{_cscsSnapshotCopyGrantName = a});++instance FromXML ClusterSnapshotCopyStatus where+        parseXML x+          = ClusterSnapshotCopyStatus' <$>+              (x .@? "RetentionPeriod") <*>+                (x .@? "DestinationRegion")+                <*> (x .@? "SnapshotCopyGrantName")++instance Hashable ClusterSnapshotCopyStatus where++instance NFData ClusterSnapshotCopyStatus where++-- | Describes a subnet group.+--+--+--+-- /See:/ 'clusterSubnetGroup' smart constructor.+data ClusterSubnetGroup = ClusterSubnetGroup'+  { _csgVPCId                  :: !(Maybe Text)+  , _csgSubnets                :: !(Maybe [Subnet])+  , _csgClusterSubnetGroupName :: !(Maybe Text)+  , _csgSubnetGroupStatus      :: !(Maybe Text)+  , _csgDescription            :: !(Maybe Text)+  , _csgTags                   :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterSubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgVPCId' - The VPC ID of the cluster subnet group.+--+-- * 'csgSubnets' - A list of the VPC 'Subnet' elements.+--+-- * 'csgClusterSubnetGroupName' - The name of the cluster subnet group.+--+-- * 'csgSubnetGroupStatus' - The status of the cluster subnet group. Possible values are @Complete@ , @Incomplete@ and @Invalid@ .+--+-- * 'csgDescription' - The description of the cluster subnet group.+--+-- * 'csgTags' - The list of tags for the cluster subnet group.+clusterSubnetGroup+    :: ClusterSubnetGroup+clusterSubnetGroup =+  ClusterSubnetGroup'+  { _csgVPCId = Nothing+  , _csgSubnets = Nothing+  , _csgClusterSubnetGroupName = Nothing+  , _csgSubnetGroupStatus = Nothing+  , _csgDescription = Nothing+  , _csgTags = Nothing+  }+++-- | The VPC ID of the cluster subnet group.+csgVPCId :: Lens' ClusterSubnetGroup (Maybe Text)+csgVPCId = lens _csgVPCId (\ s a -> s{_csgVPCId = a});++-- | A list of the VPC 'Subnet' elements.+csgSubnets :: Lens' ClusterSubnetGroup [Subnet]+csgSubnets = lens _csgSubnets (\ s a -> s{_csgSubnets = a}) . _Default . _Coerce;++-- | The name of the cluster subnet group.+csgClusterSubnetGroupName :: Lens' ClusterSubnetGroup (Maybe Text)+csgClusterSubnetGroupName = lens _csgClusterSubnetGroupName (\ s a -> s{_csgClusterSubnetGroupName = a});++-- | The status of the cluster subnet group. Possible values are @Complete@ , @Incomplete@ and @Invalid@ .+csgSubnetGroupStatus :: Lens' ClusterSubnetGroup (Maybe Text)+csgSubnetGroupStatus = lens _csgSubnetGroupStatus (\ s a -> s{_csgSubnetGroupStatus = a});++-- | The description of the cluster subnet group.+csgDescription :: Lens' ClusterSubnetGroup (Maybe Text)+csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a});++-- | The list of tags for the cluster subnet group.+csgTags :: Lens' ClusterSubnetGroup [Tag]+csgTags = lens _csgTags (\ s a -> s{_csgTags = a}) . _Default . _Coerce;++instance FromXML ClusterSubnetGroup where+        parseXML x+          = ClusterSubnetGroup' <$>+              (x .@? "VpcId") <*>+                (x .@? "Subnets" .!@ mempty >>=+                   may (parseXMLList "Subnet"))+                <*> (x .@? "ClusterSubnetGroupName")+                <*> (x .@? "SubnetGroupStatus")+                <*> (x .@? "Description")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable ClusterSubnetGroup where++instance NFData ClusterSubnetGroup where++-- | Describes a cluster version, including the parameter group family and description of the version.+--+--+--+-- /See:/ 'clusterVersion' smart constructor.+data ClusterVersion = ClusterVersion'+  { _cvClusterParameterGroupFamily :: !(Maybe Text)+  , _cvClusterVersion              :: !(Maybe Text)+  , _cvDescription                 :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClusterVersion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvClusterParameterGroupFamily' - The name of the cluster parameter group family for the cluster.+--+-- * 'cvClusterVersion' - The version number used by the cluster.+--+-- * 'cvDescription' - The description of the cluster version.+clusterVersion+    :: ClusterVersion+clusterVersion =+  ClusterVersion'+  { _cvClusterParameterGroupFamily = Nothing+  , _cvClusterVersion = Nothing+  , _cvDescription = Nothing+  }+++-- | The name of the cluster parameter group family for the cluster.+cvClusterParameterGroupFamily :: Lens' ClusterVersion (Maybe Text)+cvClusterParameterGroupFamily = lens _cvClusterParameterGroupFamily (\ s a -> s{_cvClusterParameterGroupFamily = a});++-- | The version number used by the cluster.+cvClusterVersion :: Lens' ClusterVersion (Maybe Text)+cvClusterVersion = lens _cvClusterVersion (\ s a -> s{_cvClusterVersion = a});++-- | The description of the cluster version.+cvDescription :: Lens' ClusterVersion (Maybe Text)+cvDescription = lens _cvDescription (\ s a -> s{_cvDescription = a});++instance FromXML ClusterVersion where+        parseXML x+          = ClusterVersion' <$>+              (x .@? "ClusterParameterGroupFamily") <*>+                (x .@? "ClusterVersion")+                <*> (x .@? "Description")++instance Hashable ClusterVersion where++instance NFData ClusterVersion where++-- | Describes the default cluster parameters for a parameter group family.+--+--+--+-- /See:/ 'defaultClusterParameters' smart constructor.+data DefaultClusterParameters = DefaultClusterParameters'+  { _dcpMarker               :: !(Maybe Text)+  , _dcpParameters           :: !(Maybe [Parameter])+  , _dcpParameterGroupFamily :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DefaultClusterParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcpMarker' - A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request.+--+-- * 'dcpParameters' - The list of cluster default parameters.+--+-- * 'dcpParameterGroupFamily' - The name of the cluster parameter group family to which the engine default parameters apply.+defaultClusterParameters+    :: DefaultClusterParameters+defaultClusterParameters =+  DefaultClusterParameters'+  { _dcpMarker = Nothing+  , _dcpParameters = Nothing+  , _dcpParameterGroupFamily = Nothing+  }+++-- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the @Marker@ parameter and retrying the command. If the @Marker@ field is empty, all response records have been retrieved for the request.+dcpMarker :: Lens' DefaultClusterParameters (Maybe Text)+dcpMarker = lens _dcpMarker (\ s a -> s{_dcpMarker = a});++-- | The list of cluster default parameters.+dcpParameters :: Lens' DefaultClusterParameters [Parameter]+dcpParameters = lens _dcpParameters (\ s a -> s{_dcpParameters = a}) . _Default . _Coerce;++-- | The name of the cluster parameter group family to which the engine default parameters apply.+dcpParameterGroupFamily :: Lens' DefaultClusterParameters (Maybe Text)+dcpParameterGroupFamily = lens _dcpParameterGroupFamily (\ s a -> s{_dcpParameterGroupFamily = a});++instance FromXML DefaultClusterParameters where+        parseXML x+          = DefaultClusterParameters' <$>+              (x .@? "Marker") <*>+                (x .@? "Parameters" .!@ mempty >>=+                   may (parseXMLList "Parameter"))+                <*> (x .@? "ParameterGroupFamily")++instance Hashable DefaultClusterParameters where++instance NFData DefaultClusterParameters where++-- | Describes an Amazon EC2 security group.+--+--+--+-- /See:/ 'ec2SecurityGroup' smart constructor.+data EC2SecurityGroup = EC2SecurityGroup'+  { _esgStatus                  :: !(Maybe Text)+  , _esgEC2SecurityGroupOwnerId :: !(Maybe Text)+  , _esgEC2SecurityGroupName    :: !(Maybe Text)+  , _esgTags                    :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EC2SecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esgStatus' - The status of the EC2 security group.+--+-- * 'esgEC2SecurityGroupOwnerId' - The AWS ID of the owner of the EC2 security group specified in the @EC2SecurityGroupName@ field.+--+-- * 'esgEC2SecurityGroupName' - The name of the EC2 Security Group.+--+-- * 'esgTags' - The list of tags for the EC2 security group.+ec2SecurityGroup+    :: EC2SecurityGroup+ec2SecurityGroup =+  EC2SecurityGroup'+  { _esgStatus = Nothing+  , _esgEC2SecurityGroupOwnerId = Nothing+  , _esgEC2SecurityGroupName = Nothing+  , _esgTags = Nothing+  }+++-- | The status of the EC2 security group.+esgStatus :: Lens' EC2SecurityGroup (Maybe Text)+esgStatus = lens _esgStatus (\ s a -> s{_esgStatus = a});++-- | The AWS ID of the owner of the EC2 security group specified in the @EC2SecurityGroupName@ field.+esgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)+esgEC2SecurityGroupOwnerId = lens _esgEC2SecurityGroupOwnerId (\ s a -> s{_esgEC2SecurityGroupOwnerId = a});++-- | The name of the EC2 Security Group.+esgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)+esgEC2SecurityGroupName = lens _esgEC2SecurityGroupName (\ s a -> s{_esgEC2SecurityGroupName = a});++-- | The list of tags for the EC2 security group.+esgTags :: Lens' EC2SecurityGroup [Tag]+esgTags = lens _esgTags (\ s a -> s{_esgTags = a}) . _Default . _Coerce;++instance FromXML EC2SecurityGroup where+        parseXML x+          = EC2SecurityGroup' <$>+              (x .@? "Status") <*>+                (x .@? "EC2SecurityGroupOwnerId")+                <*> (x .@? "EC2SecurityGroupName")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable EC2SecurityGroup where++instance NFData EC2SecurityGroup where++-- | Describes the status of the elastic IP (EIP) address.+--+--+--+-- /See:/ 'elasticIPStatus' smart constructor.+data ElasticIPStatus = ElasticIPStatus'+  { _eisStatus    :: !(Maybe Text)+  , _eisElasticIP :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ElasticIPStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eisStatus' - The status of the elastic IP (EIP) address.+--+-- * 'eisElasticIP' - The elastic IP (EIP) address for the cluster.+elasticIPStatus+    :: ElasticIPStatus+elasticIPStatus =+  ElasticIPStatus' {_eisStatus = Nothing, _eisElasticIP = Nothing}+++-- | The status of the elastic IP (EIP) address.+eisStatus :: Lens' ElasticIPStatus (Maybe Text)+eisStatus = lens _eisStatus (\ s a -> s{_eisStatus = a});++-- | The elastic IP (EIP) address for the cluster.+eisElasticIP :: Lens' ElasticIPStatus (Maybe Text)+eisElasticIP = lens _eisElasticIP (\ s a -> s{_eisElasticIP = a});++instance FromXML ElasticIPStatus where+        parseXML x+          = ElasticIPStatus' <$>+              (x .@? "Status") <*> (x .@? "ElasticIp")++instance Hashable ElasticIPStatus where++instance NFData ElasticIPStatus where++-- | Describes a connection endpoint.+--+--+--+-- /See:/ 'endpoint' smart constructor.+data Endpoint = Endpoint'+  { _eAddress :: !(Maybe Text)+  , _ePort    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Endpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eAddress' - The DNS address of the Cluster.+--+-- * 'ePort' - The port that the database engine is listening on.+endpoint+    :: Endpoint+endpoint = Endpoint' {_eAddress = Nothing, _ePort = Nothing}+++-- | The DNS address of the Cluster.+eAddress :: Lens' Endpoint (Maybe Text)+eAddress = lens _eAddress (\ s a -> s{_eAddress = a});++-- | The port that the database engine is listening on.+ePort :: Lens' Endpoint (Maybe Int)+ePort = lens _ePort (\ s a -> s{_ePort = a});++instance FromXML Endpoint where+        parseXML x+          = Endpoint' <$> (x .@? "Address") <*> (x .@? "Port")++instance Hashable Endpoint where++instance NFData Endpoint where++-- | Describes an event.+--+--+--+-- /See:/ 'event' smart constructor.+data Event = Event'+  { _eSourceType       :: !(Maybe SourceType)+  , _eSeverity         :: !(Maybe Text)+  , _eSourceIdentifier :: !(Maybe Text)+  , _eDate             :: !(Maybe ISO8601)+  , _eEventCategories  :: !(Maybe [Text])+  , _eMessage          :: !(Maybe Text)+  , _eEventId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eSourceType' - The source type for this event.+--+-- * 'eSeverity' - The severity of the event. Values: ERROR, INFO+--+-- * 'eSourceIdentifier' - The identifier for the source of the event.+--+-- * 'eDate' - The date and time of the event.+--+-- * 'eEventCategories' - A list of the event categories. Values: Configuration, Management, Monitoring, Security+--+-- * 'eMessage' - The text of this event.+--+-- * 'eEventId' - The identifier of the event.+event+    :: Event+event =+  Event'+  { _eSourceType = Nothing+  , _eSeverity = Nothing+  , _eSourceIdentifier = Nothing+  , _eDate = Nothing+  , _eEventCategories = Nothing+  , _eMessage = Nothing+  , _eEventId = Nothing+  }+++-- | The source type for this event.+eSourceType :: Lens' Event (Maybe SourceType)+eSourceType = lens _eSourceType (\ s a -> s{_eSourceType = a});++-- | The severity of the event. Values: ERROR, INFO+eSeverity :: Lens' Event (Maybe Text)+eSeverity = lens _eSeverity (\ s a -> s{_eSeverity = a});++-- | The identifier for the source of the event.+eSourceIdentifier :: Lens' Event (Maybe Text)+eSourceIdentifier = lens _eSourceIdentifier (\ s a -> s{_eSourceIdentifier = a});++-- | The date and time of the event.+eDate :: Lens' Event (Maybe UTCTime)+eDate = lens _eDate (\ s a -> s{_eDate = a}) . mapping _Time;++-- | A list of the event categories. Values: Configuration, Management, Monitoring, Security+eEventCategories :: Lens' Event [Text]+eEventCategories = lens _eEventCategories (\ s a -> s{_eEventCategories = a}) . _Default . _Coerce;++-- | The text of this event.+eMessage :: Lens' Event (Maybe Text)+eMessage = lens _eMessage (\ s a -> s{_eMessage = a});++-- | The identifier of the event.+eEventId :: Lens' Event (Maybe Text)+eEventId = lens _eEventId (\ s a -> s{_eEventId = a});++instance FromXML Event where+        parseXML x+          = Event' <$>+              (x .@? "SourceType") <*> (x .@? "Severity") <*>+                (x .@? "SourceIdentifier")+                <*> (x .@? "Date")+                <*>+                (x .@? "EventCategories" .!@ mempty >>=+                   may (parseXMLList "EventCategory"))+                <*> (x .@? "Message")+                <*> (x .@? "EventId")++instance Hashable Event where++instance NFData Event where++-- | Describes event categories.+--+--+--+-- /See:/ 'eventCategoriesMap' smart constructor.+data EventCategoriesMap = EventCategoriesMap'+  { _ecmSourceType :: !(Maybe Text)+  , _ecmEvents     :: !(Maybe [EventInfoMap])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EventCategoriesMap' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecmSourceType' - The source type, such as cluster or cluster-snapshot, that the returned categories belong to.+--+-- * 'ecmEvents' - The events in the event category.+eventCategoriesMap+    :: EventCategoriesMap+eventCategoriesMap =+  EventCategoriesMap' {_ecmSourceType = Nothing, _ecmEvents = Nothing}+++-- | The source type, such as cluster or cluster-snapshot, that the returned categories belong to.+ecmSourceType :: Lens' EventCategoriesMap (Maybe Text)+ecmSourceType = lens _ecmSourceType (\ s a -> s{_ecmSourceType = a});++-- | The events in the event category.+ecmEvents :: Lens' EventCategoriesMap [EventInfoMap]+ecmEvents = lens _ecmEvents (\ s a -> s{_ecmEvents = a}) . _Default . _Coerce;++instance FromXML EventCategoriesMap where+        parseXML x+          = EventCategoriesMap' <$>+              (x .@? "SourceType") <*>+                (x .@? "Events" .!@ mempty >>=+                   may (parseXMLList "EventInfoMap"))++instance Hashable EventCategoriesMap where++instance NFData EventCategoriesMap where++-- | Describes event information.+--+--+--+-- /See:/ 'eventInfoMap' smart constructor.+data EventInfoMap = EventInfoMap'+  { _eimEventDescription :: !(Maybe Text)+  , _eimSeverity         :: !(Maybe Text)+  , _eimEventCategories  :: !(Maybe [Text])+  , _eimEventId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EventInfoMap' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eimEventDescription' - The description of an Amazon Redshift event.+--+-- * 'eimSeverity' - The severity of the event. Values: ERROR, INFO+--+-- * 'eimEventCategories' - The category of an Amazon Redshift event.+--+-- * 'eimEventId' - The identifier of an Amazon Redshift event.+eventInfoMap+    :: EventInfoMap+eventInfoMap =+  EventInfoMap'+  { _eimEventDescription = Nothing+  , _eimSeverity = Nothing+  , _eimEventCategories = Nothing+  , _eimEventId = Nothing+  }+++-- | The description of an Amazon Redshift event.+eimEventDescription :: Lens' EventInfoMap (Maybe Text)+eimEventDescription = lens _eimEventDescription (\ s a -> s{_eimEventDescription = a});++-- | The severity of the event. Values: ERROR, INFO+eimSeverity :: Lens' EventInfoMap (Maybe Text)+eimSeverity = lens _eimSeverity (\ s a -> s{_eimSeverity = a});++-- | The category of an Amazon Redshift event.+eimEventCategories :: Lens' EventInfoMap [Text]+eimEventCategories = lens _eimEventCategories (\ s a -> s{_eimEventCategories = a}) . _Default . _Coerce;++-- | The identifier of an Amazon Redshift event.+eimEventId :: Lens' EventInfoMap (Maybe Text)+eimEventId = lens _eimEventId (\ s a -> s{_eimEventId = a});++instance FromXML EventInfoMap where+        parseXML x+          = EventInfoMap' <$>+              (x .@? "EventDescription") <*> (x .@? "Severity") <*>+                (x .@? "EventCategories" .!@ mempty >>=+                   may (parseXMLList "EventCategory"))+                <*> (x .@? "EventId")++instance Hashable EventInfoMap where++instance NFData EventInfoMap where++-- | Describes event subscriptions.+--+--+--+-- /See:/ 'eventSubscription' smart constructor.+data EventSubscription = EventSubscription'+  { _esStatus                   :: !(Maybe Text)+  , _esCustomerAWSId            :: !(Maybe Text)+  , _esCustSubscriptionId       :: !(Maybe Text)+  , _esSNSTopicARN              :: !(Maybe Text)+  , _esEnabled                  :: !(Maybe Bool)+  , _esSourceType               :: !(Maybe Text)+  , _esSeverity                 :: !(Maybe Text)+  , _esSubscriptionCreationTime :: !(Maybe ISO8601)+  , _esEventCategoriesList      :: !(Maybe [Text])+  , _esTags                     :: !(Maybe [Tag])+  , _esSourceIdsList            :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EventSubscription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esStatus' - The status of the Amazon Redshift event notification subscription. Constraints:     * Can be one of the following: active | no-permission | topic-not-exist     * The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.+--+-- * 'esCustomerAWSId' - The AWS customer account associated with the Amazon Redshift event notification subscription.+--+-- * 'esCustSubscriptionId' - The name of the Amazon Redshift event notification subscription.+--+-- * 'esSNSTopicARN' - The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.+--+-- * 'esEnabled' - A Boolean value indicating whether the subscription is enabled. @true@ indicates the subscription is enabled.+--+-- * 'esSourceType' - The source type of the events returned the Amazon Redshift event notification, such as cluster, or cluster-snapshot.+--+-- * 'esSeverity' - The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO+--+-- * 'esSubscriptionCreationTime' - The date and time the Amazon Redshift event notification subscription was created.+--+-- * 'esEventCategoriesList' - The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security+--+-- * 'esTags' - The list of tags for the event subscription.+--+-- * 'esSourceIdsList' - A list of the sources that publish events to the Amazon Redshift event notification subscription.+eventSubscription+    :: EventSubscription+eventSubscription =+  EventSubscription'+  { _esStatus = Nothing+  , _esCustomerAWSId = Nothing+  , _esCustSubscriptionId = Nothing+  , _esSNSTopicARN = Nothing+  , _esEnabled = Nothing+  , _esSourceType = Nothing+  , _esSeverity = Nothing+  , _esSubscriptionCreationTime = Nothing+  , _esEventCategoriesList = Nothing+  , _esTags = Nothing+  , _esSourceIdsList = Nothing+  }+++-- | The status of the Amazon Redshift event notification subscription. Constraints:     * Can be one of the following: active | no-permission | topic-not-exist     * The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.+esStatus :: Lens' EventSubscription (Maybe Text)+esStatus = lens _esStatus (\ s a -> s{_esStatus = a});++-- | The AWS customer account associated with the Amazon Redshift event notification subscription.+esCustomerAWSId :: Lens' EventSubscription (Maybe Text)+esCustomerAWSId = lens _esCustomerAWSId (\ s a -> s{_esCustomerAWSId = a});++-- | The name of the Amazon Redshift event notification subscription.+esCustSubscriptionId :: Lens' EventSubscription (Maybe Text)+esCustSubscriptionId = lens _esCustSubscriptionId (\ s a -> s{_esCustSubscriptionId = a});++-- | The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.+esSNSTopicARN :: Lens' EventSubscription (Maybe Text)+esSNSTopicARN = lens _esSNSTopicARN (\ s a -> s{_esSNSTopicARN = a});++-- | A Boolean value indicating whether the subscription is enabled. @true@ indicates the subscription is enabled.+esEnabled :: Lens' EventSubscription (Maybe Bool)+esEnabled = lens _esEnabled (\ s a -> s{_esEnabled = a});++-- | The source type of the events returned the Amazon Redshift event notification, such as cluster, or cluster-snapshot.+esSourceType :: Lens' EventSubscription (Maybe Text)+esSourceType = lens _esSourceType (\ s a -> s{_esSourceType = a});++-- | The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO+esSeverity :: Lens' EventSubscription (Maybe Text)+esSeverity = lens _esSeverity (\ s a -> s{_esSeverity = a});++-- | The date and time the Amazon Redshift event notification subscription was created.+esSubscriptionCreationTime :: Lens' EventSubscription (Maybe UTCTime)+esSubscriptionCreationTime = lens _esSubscriptionCreationTime (\ s a -> s{_esSubscriptionCreationTime = a}) . mapping _Time;++-- | The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security+esEventCategoriesList :: Lens' EventSubscription [Text]+esEventCategoriesList = lens _esEventCategoriesList (\ s a -> s{_esEventCategoriesList = a}) . _Default . _Coerce;++-- | The list of tags for the event subscription.+esTags :: Lens' EventSubscription [Tag]+esTags = lens _esTags (\ s a -> s{_esTags = a}) . _Default . _Coerce;++-- | A list of the sources that publish events to the Amazon Redshift event notification subscription.+esSourceIdsList :: Lens' EventSubscription [Text]+esSourceIdsList = lens _esSourceIdsList (\ s a -> s{_esSourceIdsList = a}) . _Default . _Coerce;++instance FromXML EventSubscription where+        parseXML x+          = EventSubscription' <$>+              (x .@? "Status") <*> (x .@? "CustomerAwsId") <*>+                (x .@? "CustSubscriptionId")+                <*> (x .@? "SnsTopicArn")+                <*> (x .@? "Enabled")+                <*> (x .@? "SourceType")+                <*> (x .@? "Severity")+                <*> (x .@? "SubscriptionCreationTime")+                <*>+                (x .@? "EventCategoriesList" .!@ mempty >>=+                   may (parseXMLList "EventCategory"))+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))+                <*>+                (x .@? "SourceIdsList" .!@ mempty >>=+                   may (parseXMLList "SourceId"))++instance Hashable EventSubscription where++instance NFData EventSubscription where++-- | Returns information about an HSM client certificate. The certificate is stored in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift cluster to encrypt data files.+--+--+--+-- /See:/ 'hsmClientCertificate' smart constructor.+data HSMClientCertificate = HSMClientCertificate'+  { _hccHSMClientCertificateIdentifier :: !(Maybe Text)+  , _hccHSMClientCertificatePublicKey  :: !(Maybe Text)+  , _hccTags                           :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HSMClientCertificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hccHSMClientCertificateIdentifier' - The identifier of the HSM client certificate.+--+-- * 'hccHSMClientCertificatePublicKey' - The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.+--+-- * 'hccTags' - The list of tags for the HSM client certificate.+hsmClientCertificate+    :: HSMClientCertificate+hsmClientCertificate =+  HSMClientCertificate'+  { _hccHSMClientCertificateIdentifier = Nothing+  , _hccHSMClientCertificatePublicKey = Nothing+  , _hccTags = Nothing+  }+++-- | The identifier of the HSM client certificate.+hccHSMClientCertificateIdentifier :: Lens' HSMClientCertificate (Maybe Text)+hccHSMClientCertificateIdentifier = lens _hccHSMClientCertificateIdentifier (\ s a -> s{_hccHSMClientCertificateIdentifier = a});++-- | The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.+hccHSMClientCertificatePublicKey :: Lens' HSMClientCertificate (Maybe Text)+hccHSMClientCertificatePublicKey = lens _hccHSMClientCertificatePublicKey (\ s a -> s{_hccHSMClientCertificatePublicKey = a});++-- | The list of tags for the HSM client certificate.+hccTags :: Lens' HSMClientCertificate [Tag]+hccTags = lens _hccTags (\ s a -> s{_hccTags = a}) . _Default . _Coerce;++instance FromXML HSMClientCertificate where+        parseXML x+          = HSMClientCertificate' <$>+              (x .@? "HsmClientCertificateIdentifier") <*>+                (x .@? "HsmClientCertificatePublicKey")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable HSMClientCertificate where++instance NFData HSMClientCertificate where++-- | Returns information about an HSM configuration, which is an object that describes to Amazon Redshift clusters the information they require to connect to an HSM where they can store database encryption keys.+--+--+--+-- /See:/ 'hsmConfiguration' smart constructor.+data HSMConfiguration = HSMConfiguration'+  { _hcHSMConfigurationIdentifier :: !(Maybe Text)+  , _hcHSMPartitionName           :: !(Maybe Text)+  , _hcDescription                :: !(Maybe Text)+  , _hcTags                       :: !(Maybe [Tag])+  , _hcHSMIPAddress               :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HSMConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hcHSMConfigurationIdentifier' - The name of the Amazon Redshift HSM configuration.+--+-- * 'hcHSMPartitionName' - The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.+--+-- * 'hcDescription' - A text description of the HSM configuration.+--+-- * 'hcTags' - The list of tags for the HSM configuration.+--+-- * 'hcHSMIPAddress' - The IP address that the Amazon Redshift cluster must use to access the HSM.+hsmConfiguration+    :: HSMConfiguration+hsmConfiguration =+  HSMConfiguration'+  { _hcHSMConfigurationIdentifier = Nothing+  , _hcHSMPartitionName = Nothing+  , _hcDescription = Nothing+  , _hcTags = Nothing+  , _hcHSMIPAddress = Nothing+  }+++-- | The name of the Amazon Redshift HSM configuration.+hcHSMConfigurationIdentifier :: Lens' HSMConfiguration (Maybe Text)+hcHSMConfigurationIdentifier = lens _hcHSMConfigurationIdentifier (\ s a -> s{_hcHSMConfigurationIdentifier = a});++-- | The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.+hcHSMPartitionName :: Lens' HSMConfiguration (Maybe Text)+hcHSMPartitionName = lens _hcHSMPartitionName (\ s a -> s{_hcHSMPartitionName = a});++-- | A text description of the HSM configuration.+hcDescription :: Lens' HSMConfiguration (Maybe Text)+hcDescription = lens _hcDescription (\ s a -> s{_hcDescription = a});++-- | The list of tags for the HSM configuration.+hcTags :: Lens' HSMConfiguration [Tag]+hcTags = lens _hcTags (\ s a -> s{_hcTags = a}) . _Default . _Coerce;++-- | The IP address that the Amazon Redshift cluster must use to access the HSM.+hcHSMIPAddress :: Lens' HSMConfiguration (Maybe Text)+hcHSMIPAddress = lens _hcHSMIPAddress (\ s a -> s{_hcHSMIPAddress = a});++instance FromXML HSMConfiguration where+        parseXML x+          = HSMConfiguration' <$>+              (x .@? "HsmConfigurationIdentifier") <*>+                (x .@? "HsmPartitionName")+                <*> (x .@? "Description")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))+                <*> (x .@? "HsmIpAddress")++instance Hashable HSMConfiguration where++instance NFData HSMConfiguration where++-- | Describes the status of changes to HSM settings.+--+--+--+-- /See:/ 'hsmStatus' smart constructor.+data HSMStatus = HSMStatus'+  { _hsStatus                         :: !(Maybe Text)+  , _hsHSMConfigurationIdentifier     :: !(Maybe Text)+  , _hsHSMClientCertificateIdentifier :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HSMStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsStatus' - Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying+--+-- * 'hsHSMConfigurationIdentifier' - 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.+--+-- * 'hsHSMClientCertificateIdentifier' - Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.+hsmStatus+    :: HSMStatus+hsmStatus =+  HSMStatus'+  { _hsStatus = Nothing+  , _hsHSMConfigurationIdentifier = Nothing+  , _hsHSMClientCertificateIdentifier = Nothing+  }+++-- | Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying+hsStatus :: Lens' HSMStatus (Maybe Text)+hsStatus = lens _hsStatus (\ s a -> s{_hsStatus = a});++-- | 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.+hsHSMConfigurationIdentifier :: Lens' HSMStatus (Maybe Text)+hsHSMConfigurationIdentifier = lens _hsHSMConfigurationIdentifier (\ s a -> s{_hsHSMConfigurationIdentifier = a});++-- | Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.+hsHSMClientCertificateIdentifier :: Lens' HSMStatus (Maybe Text)+hsHSMClientCertificateIdentifier = lens _hsHSMClientCertificateIdentifier (\ s a -> s{_hsHSMClientCertificateIdentifier = a});++instance FromXML HSMStatus where+        parseXML x+          = HSMStatus' <$>+              (x .@? "Status") <*>+                (x .@? "HsmConfigurationIdentifier")+                <*> (x .@? "HsmClientCertificateIdentifier")++instance Hashable HSMStatus where++instance NFData HSMStatus where++-- | Describes an IP range used in a security group.+--+--+--+-- /See:/ 'ipRange' smart constructor.+data IPRange = IPRange'+  { _irStatus :: !(Maybe Text)+  , _irCIdRIP :: !(Maybe Text)+  , _irTags   :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irStatus' - The status of the IP range, for example, "authorized".+--+-- * 'irCIdRIP' - The IP range in Classless Inter-Domain Routing (CIDR) notation.+--+-- * 'irTags' - The list of tags for the IP range.+ipRange+    :: IPRange+ipRange = IPRange' {_irStatus = Nothing, _irCIdRIP = Nothing, _irTags = Nothing}+++-- | The status of the IP range, for example, "authorized".+irStatus :: Lens' IPRange (Maybe Text)+irStatus = lens _irStatus (\ s a -> s{_irStatus = a});++-- | The IP range in Classless Inter-Domain Routing (CIDR) notation.+irCIdRIP :: Lens' IPRange (Maybe Text)+irCIdRIP = lens _irCIdRIP (\ s a -> s{_irCIdRIP = a});++-- | The list of tags for the IP range.+irTags :: Lens' IPRange [Tag]+irTags = lens _irTags (\ s a -> s{_irTags = a}) . _Default . _Coerce;++instance FromXML IPRange where+        parseXML x+          = IPRange' <$>+              (x .@? "Status") <*> (x .@? "CIDRIP") <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable IPRange where++instance NFData IPRange where++-- | Describes the status of logging for a cluster.+--+--+--+-- /See:/ 'loggingStatus' smart constructor.+data LoggingStatus = LoggingStatus'+  { _lsLastFailureTime            :: !(Maybe ISO8601)+  , _lsLastSuccessfulDeliveryTime :: !(Maybe ISO8601)+  , _lsS3KeyPrefix                :: !(Maybe Text)+  , _lsBucketName                 :: !(Maybe Text)+  , _lsLoggingEnabled             :: !(Maybe Bool)+  , _lsLastFailureMessage         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoggingStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsLastFailureTime' - The last time when logs failed to be delivered.+--+-- * 'lsLastSuccessfulDeliveryTime' - The last time that logs were delivered.+--+-- * 'lsS3KeyPrefix' - The prefix applied to the log file names.+--+-- * 'lsBucketName' - The name of the S3 bucket where the log files are stored.+--+-- * 'lsLoggingEnabled' - @true@ if logging is on, @false@ if logging is off.+--+-- * 'lsLastFailureMessage' - The message indicating that logs failed to be delivered.+loggingStatus+    :: LoggingStatus+loggingStatus =+  LoggingStatus'+  { _lsLastFailureTime = Nothing+  , _lsLastSuccessfulDeliveryTime = Nothing+  , _lsS3KeyPrefix = Nothing+  , _lsBucketName = Nothing+  , _lsLoggingEnabled = Nothing+  , _lsLastFailureMessage = Nothing+  }+++-- | The last time when logs failed to be delivered.+lsLastFailureTime :: Lens' LoggingStatus (Maybe UTCTime)+lsLastFailureTime = lens _lsLastFailureTime (\ s a -> s{_lsLastFailureTime = a}) . mapping _Time;++-- | The last time that logs were delivered.+lsLastSuccessfulDeliveryTime :: Lens' LoggingStatus (Maybe UTCTime)+lsLastSuccessfulDeliveryTime = lens _lsLastSuccessfulDeliveryTime (\ s a -> s{_lsLastSuccessfulDeliveryTime = a}) . mapping _Time;++-- | The prefix applied to the log file names.+lsS3KeyPrefix :: Lens' LoggingStatus (Maybe Text)+lsS3KeyPrefix = lens _lsS3KeyPrefix (\ s a -> s{_lsS3KeyPrefix = a});++-- | The name of the S3 bucket where the log files are stored.+lsBucketName :: Lens' LoggingStatus (Maybe Text)+lsBucketName = lens _lsBucketName (\ s a -> s{_lsBucketName = a});++-- | @true@ if logging is on, @false@ if logging is off.+lsLoggingEnabled :: Lens' LoggingStatus (Maybe Bool)+lsLoggingEnabled = lens _lsLoggingEnabled (\ s a -> s{_lsLoggingEnabled = a});++-- | The message indicating that logs failed to be delivered.+lsLastFailureMessage :: Lens' LoggingStatus (Maybe Text)+lsLastFailureMessage = lens _lsLastFailureMessage (\ s a -> s{_lsLastFailureMessage = a});++instance FromXML LoggingStatus where+        parseXML x+          = LoggingStatus' <$>+              (x .@? "LastFailureTime") <*>+                (x .@? "LastSuccessfulDeliveryTime")+                <*> (x .@? "S3KeyPrefix")+                <*> (x .@? "BucketName")+                <*> (x .@? "LoggingEnabled")+                <*> (x .@? "LastFailureMessage")++instance Hashable LoggingStatus where++instance NFData LoggingStatus where++-- | Describes an orderable cluster option.+--+--+--+-- /See:/ 'orderableClusterOption' smart constructor.+data OrderableClusterOption = OrderableClusterOption'+  { _ocoAvailabilityZones :: !(Maybe [AvailabilityZone])+  , _ocoClusterType       :: !(Maybe Text)+  , _ocoClusterVersion    :: !(Maybe Text)+  , _ocoNodeType          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OrderableClusterOption' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocoAvailabilityZones' - A list of availability zones for the orderable cluster.+--+-- * 'ocoClusterType' - The cluster type, for example @multi-node@ .+--+-- * 'ocoClusterVersion' - The version of the orderable cluster.+--+-- * 'ocoNodeType' - The node type for the orderable cluster.+orderableClusterOption+    :: OrderableClusterOption+orderableClusterOption =+  OrderableClusterOption'+  { _ocoAvailabilityZones = Nothing+  , _ocoClusterType = Nothing+  , _ocoClusterVersion = Nothing+  , _ocoNodeType = Nothing+  }+++-- | A list of availability zones for the orderable cluster.+ocoAvailabilityZones :: Lens' OrderableClusterOption [AvailabilityZone]+ocoAvailabilityZones = lens _ocoAvailabilityZones (\ s a -> s{_ocoAvailabilityZones = a}) . _Default . _Coerce;++-- | The cluster type, for example @multi-node@ .+ocoClusterType :: Lens' OrderableClusterOption (Maybe Text)+ocoClusterType = lens _ocoClusterType (\ s a -> s{_ocoClusterType = a});++-- | The version of the orderable cluster.+ocoClusterVersion :: Lens' OrderableClusterOption (Maybe Text)+ocoClusterVersion = lens _ocoClusterVersion (\ s a -> s{_ocoClusterVersion = a});++-- | The node type for the orderable cluster.+ocoNodeType :: Lens' OrderableClusterOption (Maybe Text)+ocoNodeType = lens _ocoNodeType (\ s a -> s{_ocoNodeType = a});++instance FromXML OrderableClusterOption where+        parseXML x+          = OrderableClusterOption' <$>+              (x .@? "AvailabilityZones" .!@ mempty >>=+                 may (parseXMLList "AvailabilityZone"))+                <*> (x .@? "ClusterType")+                <*> (x .@? "ClusterVersion")+                <*> (x .@? "NodeType")++instance Hashable OrderableClusterOption where++instance NFData OrderableClusterOption where++-- | Describes a parameter in a cluster parameter group.+--+--+--+-- /See:/ 'parameter' smart constructor.+data Parameter = Parameter'+  { _pApplyType            :: !(Maybe ParameterApplyType)+  , _pParameterValue       :: !(Maybe Text)+  , _pMinimumEngineVersion :: !(Maybe Text)+  , _pSource               :: !(Maybe Text)+  , _pIsModifiable         :: !(Maybe Bool)+  , _pDataType             :: !(Maybe Text)+  , _pAllowedValues        :: !(Maybe Text)+  , _pParameterName        :: !(Maybe Text)+  , _pDescription          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Parameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pApplyType' - Specifies how to apply the WLM configuration parameter. Some properties can be applied dynamically, while other properties require that any associated clusters be rebooted for the configuration changes to be applied. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .+--+-- * 'pParameterValue' - The value of the parameter.+--+-- * 'pMinimumEngineVersion' - The earliest engine version to which the parameter can apply.+--+-- * 'pSource' - The source of the parameter value, such as "engine-default" or "user".+--+-- * 'pIsModifiable' - If @true@ , the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+--+-- * 'pDataType' - The data type of the parameter.+--+-- * 'pAllowedValues' - The valid range of values for the parameter.+--+-- * 'pParameterName' - The name of the parameter.+--+-- * 'pDescription' - A description of the parameter.+parameter+    :: Parameter+parameter =+  Parameter'+  { _pApplyType = Nothing+  , _pParameterValue = Nothing+  , _pMinimumEngineVersion = Nothing+  , _pSource = Nothing+  , _pIsModifiable = Nothing+  , _pDataType = Nothing+  , _pAllowedValues = Nothing+  , _pParameterName = Nothing+  , _pDescription = Nothing+  }+++-- | Specifies how to apply the WLM configuration parameter. Some properties can be applied dynamically, while other properties require that any associated clusters be rebooted for the configuration changes to be applied. For more information about parameters and parameter groups, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups> in the /Amazon Redshift Cluster Management Guide/ .+pApplyType :: Lens' Parameter (Maybe ParameterApplyType)+pApplyType = lens _pApplyType (\ s a -> s{_pApplyType = a});++-- | The value of the parameter.+pParameterValue :: Lens' Parameter (Maybe Text)+pParameterValue = lens _pParameterValue (\ s a -> s{_pParameterValue = a});++-- | The earliest engine version to which the parameter can apply.+pMinimumEngineVersion :: Lens' Parameter (Maybe Text)+pMinimumEngineVersion = lens _pMinimumEngineVersion (\ s a -> s{_pMinimumEngineVersion = a});++-- | The source of the parameter value, such as "engine-default" or "user".+pSource :: Lens' Parameter (Maybe Text)+pSource = lens _pSource (\ s a -> s{_pSource = a});++-- | If @true@ , the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.+pIsModifiable :: Lens' Parameter (Maybe Bool)+pIsModifiable = lens _pIsModifiable (\ s a -> s{_pIsModifiable = a});++-- | The data type of the parameter.+pDataType :: Lens' Parameter (Maybe Text)+pDataType = lens _pDataType (\ s a -> s{_pDataType = a});++-- | The valid range of values for the parameter.+pAllowedValues :: Lens' Parameter (Maybe Text)+pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});++-- | The name of the parameter.+pParameterName :: Lens' Parameter (Maybe Text)+pParameterName = lens _pParameterName (\ s a -> s{_pParameterName = a});++-- | A description of the parameter.+pDescription :: Lens' Parameter (Maybe Text)+pDescription = lens _pDescription (\ s a -> s{_pDescription = a});++instance FromXML Parameter where+        parseXML x+          = Parameter' <$>+              (x .@? "ApplyType") <*> (x .@? "ParameterValue") <*>+                (x .@? "MinimumEngineVersion")+                <*> (x .@? "Source")+                <*> (x .@? "IsModifiable")+                <*> (x .@? "DataType")+                <*> (x .@? "AllowedValues")+                <*> (x .@? "ParameterName")+                <*> (x .@? "Description")++instance Hashable Parameter where++instance NFData Parameter where++instance ToQuery Parameter where+        toQuery Parameter'{..}+          = mconcat+              ["ApplyType" =: _pApplyType,+               "ParameterValue" =: _pParameterValue,+               "MinimumEngineVersion" =: _pMinimumEngineVersion,+               "Source" =: _pSource,+               "IsModifiable" =: _pIsModifiable,+               "DataType" =: _pDataType,+               "AllowedValues" =: _pAllowedValues,+               "ParameterName" =: _pParameterName,+               "Description" =: _pDescription]++-- | Describes cluster attributes that are in a pending state. A change to one or more the attributes was requested and is in progress or will be applied.+--+--+--+-- /See:/ 'pendingModifiedValues' smart constructor.+data PendingModifiedValues = PendingModifiedValues'+  { _pmvEnhancedVPCRouting               :: !(Maybe Bool)+  , _pmvMasterUserPassword               :: !(Maybe Text)+  , _pmvPubliclyAccessible               :: !(Maybe Bool)+  , _pmvAutomatedSnapshotRetentionPeriod :: !(Maybe Int)+  , _pmvClusterIdentifier                :: !(Maybe Text)+  , _pmvNumberOfNodes                    :: !(Maybe Int)+  , _pmvClusterType                      :: !(Maybe Text)+  , _pmvClusterVersion                   :: !(Maybe Text)+  , _pmvNodeType                         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PendingModifiedValues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmvEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+--+-- * 'pmvMasterUserPassword' - The pending or in-progress change of the master user password for the cluster.+--+-- * 'pmvPubliclyAccessible' - The pending or in-progress change of the ability to connect to the cluster from the public network.+--+-- * 'pmvAutomatedSnapshotRetentionPeriod' - The pending or in-progress change of the automated snapshot retention period.+--+-- * 'pmvClusterIdentifier' - The pending or in-progress change of the new identifier for the cluster.+--+-- * 'pmvNumberOfNodes' - The pending or in-progress change of the number of nodes in the cluster.+--+-- * 'pmvClusterType' - The pending or in-progress change of the cluster type.+--+-- * 'pmvClusterVersion' - The pending or in-progress change of the service version.+--+-- * 'pmvNodeType' - The pending or in-progress change of the cluster's node type.+pendingModifiedValues+    :: PendingModifiedValues+pendingModifiedValues =+  PendingModifiedValues'+  { _pmvEnhancedVPCRouting = Nothing+  , _pmvMasterUserPassword = Nothing+  , _pmvPubliclyAccessible = Nothing+  , _pmvAutomatedSnapshotRetentionPeriod = Nothing+  , _pmvClusterIdentifier = Nothing+  , _pmvNumberOfNodes = Nothing+  , _pmvClusterType = Nothing+  , _pmvClusterVersion = Nothing+  , _pmvNodeType = Nothing+  }+++-- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+pmvEnhancedVPCRouting :: Lens' PendingModifiedValues (Maybe Bool)+pmvEnhancedVPCRouting = lens _pmvEnhancedVPCRouting (\ s a -> s{_pmvEnhancedVPCRouting = a});++-- | The pending or in-progress change of the master user password for the cluster.+pmvMasterUserPassword :: Lens' PendingModifiedValues (Maybe Text)+pmvMasterUserPassword = lens _pmvMasterUserPassword (\ s a -> s{_pmvMasterUserPassword = a});++-- | The pending or in-progress change of the ability to connect to the cluster from the public network.+pmvPubliclyAccessible :: Lens' PendingModifiedValues (Maybe Bool)+pmvPubliclyAccessible = lens _pmvPubliclyAccessible (\ s a -> s{_pmvPubliclyAccessible = a});++-- | The pending or in-progress change of the automated snapshot retention period.+pmvAutomatedSnapshotRetentionPeriod :: Lens' PendingModifiedValues (Maybe Int)+pmvAutomatedSnapshotRetentionPeriod = lens _pmvAutomatedSnapshotRetentionPeriod (\ s a -> s{_pmvAutomatedSnapshotRetentionPeriod = a});++-- | The pending or in-progress change of the new identifier for the cluster.+pmvClusterIdentifier :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterIdentifier = lens _pmvClusterIdentifier (\ s a -> s{_pmvClusterIdentifier = a});++-- | The pending or in-progress change of the number of nodes in the cluster.+pmvNumberOfNodes :: Lens' PendingModifiedValues (Maybe Int)+pmvNumberOfNodes = lens _pmvNumberOfNodes (\ s a -> s{_pmvNumberOfNodes = a});++-- | The pending or in-progress change of the cluster type.+pmvClusterType :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterType = lens _pmvClusterType (\ s a -> s{_pmvClusterType = a});++-- | The pending or in-progress change of the service version.+pmvClusterVersion :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterVersion = lens _pmvClusterVersion (\ s a -> s{_pmvClusterVersion = a});++-- | The pending or in-progress change of the cluster's node type.+pmvNodeType :: Lens' PendingModifiedValues (Maybe Text)+pmvNodeType = lens _pmvNodeType (\ s a -> s{_pmvNodeType = a});++instance FromXML PendingModifiedValues where+        parseXML x+          = PendingModifiedValues' <$>+              (x .@? "EnhancedVpcRouting") <*>+                (x .@? "MasterUserPassword")+                <*> (x .@? "PubliclyAccessible")+                <*> (x .@? "AutomatedSnapshotRetentionPeriod")+                <*> (x .@? "ClusterIdentifier")+                <*> (x .@? "NumberOfNodes")+                <*> (x .@? "ClusterType")+                <*> (x .@? "ClusterVersion")+                <*> (x .@? "NodeType")++instance Hashable PendingModifiedValues where++instance NFData PendingModifiedValues where++-- | Describes a recurring charge.+--+--+--+-- /See:/ 'recurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+  { _rcRecurringChargeFrequency :: !(Maybe Text)+  , _rcRecurringChargeAmount    :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcRecurringChargeFrequency' - The frequency at which the recurring charge amount is applied.+--+-- * 'rcRecurringChargeAmount' - The amount charged per the period of time specified by the recurring charge frequency.+recurringCharge+    :: RecurringCharge+recurringCharge =+  RecurringCharge'+  {_rcRecurringChargeFrequency = Nothing, _rcRecurringChargeAmount = Nothing}+++-- | The frequency at which the recurring charge amount is applied.+rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)+rcRecurringChargeFrequency = lens _rcRecurringChargeFrequency (\ s a -> s{_rcRecurringChargeFrequency = a});++-- | The amount charged per the period of time specified by the recurring charge frequency.+rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)+rcRecurringChargeAmount = lens _rcRecurringChargeAmount (\ s a -> s{_rcRecurringChargeAmount = a});++instance FromXML RecurringCharge where+        parseXML x+          = RecurringCharge' <$>+              (x .@? "RecurringChargeFrequency") <*>+                (x .@? "RecurringChargeAmount")++instance Hashable RecurringCharge where++instance NFData RecurringCharge where++-- | Describes a reserved node. You can call the 'DescribeReservedNodeOfferings' API to obtain the available reserved node offerings.+--+--+--+-- /See:/ 'reservedNode' smart constructor.+data ReservedNode = ReservedNode'+  { _rnState                  :: !(Maybe Text)+  , _rnCurrencyCode           :: !(Maybe Text)+  , _rnStartTime              :: !(Maybe ISO8601)+  , _rnNodeCount              :: !(Maybe Int)+  , _rnReservedNodeId         :: !(Maybe Text)+  , _rnReservedNodeOfferingId :: !(Maybe Text)+  , _rnRecurringCharges       :: !(Maybe [RecurringCharge])+  , _rnOfferingType           :: !(Maybe Text)+  , _rnUsagePrice             :: !(Maybe Double)+  , _rnNodeType               :: !(Maybe Text)+  , _rnFixedPrice             :: !(Maybe Double)+  , _rnDuration               :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedNode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rnState' - The state of the reserved compute node. Possible Values:     * pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed.     * active-This reserved node is owned by the caller and is available for use.     * payment-failed-Payment failed for the purchase attempt.+--+-- * 'rnCurrencyCode' - The currency code for the reserved cluster.+--+-- * 'rnStartTime' - The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.+--+-- * 'rnNodeCount' - The number of reserved compute nodes.+--+-- * 'rnReservedNodeId' - The unique identifier for the reservation.+--+-- * 'rnReservedNodeOfferingId' - The identifier for the reserved node offering.+--+-- * 'rnRecurringCharges' - The recurring charges for the reserved node.+--+-- * 'rnOfferingType' - The anticipated utilization of the reserved node, as defined in the reserved node offering.+--+-- * 'rnUsagePrice' - The hourly rate Amazon Redshift charges you for this reserved node.+--+-- * 'rnNodeType' - The node type of the reserved node.+--+-- * 'rnFixedPrice' - The fixed cost Amazon Redshift charges you for this reserved node.+--+-- * 'rnDuration' - The duration of the node reservation in seconds.+reservedNode+    :: ReservedNode+reservedNode =+  ReservedNode'+  { _rnState = Nothing+  , _rnCurrencyCode = Nothing+  , _rnStartTime = Nothing+  , _rnNodeCount = Nothing+  , _rnReservedNodeId = Nothing+  , _rnReservedNodeOfferingId = Nothing+  , _rnRecurringCharges = Nothing+  , _rnOfferingType = Nothing+  , _rnUsagePrice = Nothing+  , _rnNodeType = Nothing+  , _rnFixedPrice = Nothing+  , _rnDuration = Nothing+  }+++-- | The state of the reserved compute node. Possible Values:     * pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed.     * active-This reserved node is owned by the caller and is available for use.     * payment-failed-Payment failed for the purchase attempt.+rnState :: Lens' ReservedNode (Maybe Text)+rnState = lens _rnState (\ s a -> s{_rnState = a});++-- | The currency code for the reserved cluster.+rnCurrencyCode :: Lens' ReservedNode (Maybe Text)+rnCurrencyCode = lens _rnCurrencyCode (\ s a -> s{_rnCurrencyCode = a});++-- | The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.+rnStartTime :: Lens' ReservedNode (Maybe UTCTime)+rnStartTime = lens _rnStartTime (\ s a -> s{_rnStartTime = a}) . mapping _Time;++-- | The number of reserved compute nodes.+rnNodeCount :: Lens' ReservedNode (Maybe Int)+rnNodeCount = lens _rnNodeCount (\ s a -> s{_rnNodeCount = a});++-- | The unique identifier for the reservation.+rnReservedNodeId :: Lens' ReservedNode (Maybe Text)+rnReservedNodeId = lens _rnReservedNodeId (\ s a -> s{_rnReservedNodeId = a});++-- | The identifier for the reserved node offering.+rnReservedNodeOfferingId :: Lens' ReservedNode (Maybe Text)+rnReservedNodeOfferingId = lens _rnReservedNodeOfferingId (\ s a -> s{_rnReservedNodeOfferingId = a});++-- | The recurring charges for the reserved node.+rnRecurringCharges :: Lens' ReservedNode [RecurringCharge]+rnRecurringCharges = lens _rnRecurringCharges (\ s a -> s{_rnRecurringCharges = a}) . _Default . _Coerce;++-- | The anticipated utilization of the reserved node, as defined in the reserved node offering.+rnOfferingType :: Lens' ReservedNode (Maybe Text)+rnOfferingType = lens _rnOfferingType (\ s a -> s{_rnOfferingType = a});++-- | The hourly rate Amazon Redshift charges you for this reserved node.+rnUsagePrice :: Lens' ReservedNode (Maybe Double)+rnUsagePrice = lens _rnUsagePrice (\ s a -> s{_rnUsagePrice = a});++-- | The node type of the reserved node.+rnNodeType :: Lens' ReservedNode (Maybe Text)+rnNodeType = lens _rnNodeType (\ s a -> s{_rnNodeType = a});++-- | The fixed cost Amazon Redshift charges you for this reserved node.+rnFixedPrice :: Lens' ReservedNode (Maybe Double)+rnFixedPrice = lens _rnFixedPrice (\ s a -> s{_rnFixedPrice = a});++-- | The duration of the node reservation in seconds.+rnDuration :: Lens' ReservedNode (Maybe Int)+rnDuration = lens _rnDuration (\ s a -> s{_rnDuration = a});++instance FromXML ReservedNode where+        parseXML x+          = ReservedNode' <$>+              (x .@? "State") <*> (x .@? "CurrencyCode") <*>+                (x .@? "StartTime")+                <*> (x .@? "NodeCount")+                <*> (x .@? "ReservedNodeId")+                <*> (x .@? "ReservedNodeOfferingId")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*> (x .@? "NodeType")+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")++instance Hashable ReservedNode where++instance NFData ReservedNode where++-- | Describes a reserved node offering.+--+--+--+-- /See:/ 'reservedNodeOffering' smart constructor.+data ReservedNodeOffering = ReservedNodeOffering'+  { _rnoCurrencyCode           :: !(Maybe Text)+  , _rnoReservedNodeOfferingId :: !(Maybe Text)+  , _rnoRecurringCharges       :: !(Maybe [RecurringCharge])+  , _rnoOfferingType           :: !(Maybe Text)+  , _rnoUsagePrice             :: !(Maybe Double)+  , _rnoNodeType               :: !(Maybe Text)+  , _rnoFixedPrice             :: !(Maybe Double)+  , _rnoDuration               :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedNodeOffering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rnoCurrencyCode' - The currency code for the compute nodes offering.+--+-- * 'rnoReservedNodeOfferingId' - The offering identifier.+--+-- * 'rnoRecurringCharges' - The charge to your account regardless of whether you are creating any clusters using the node offering. Recurring charges are only in effect for heavy-utilization reserved nodes.+--+-- * 'rnoOfferingType' - The anticipated utilization of the reserved node, as defined in the reserved node offering.+--+-- * 'rnoUsagePrice' - The rate you are charged for each hour the cluster that is using the offering is running.+--+-- * 'rnoNodeType' - The node type offered by the reserved node offering.+--+-- * 'rnoFixedPrice' - The upfront fixed charge you will pay to purchase the specific reserved node offering.+--+-- * 'rnoDuration' - The duration, in seconds, for which the offering will reserve the node.+reservedNodeOffering+    :: ReservedNodeOffering+reservedNodeOffering =+  ReservedNodeOffering'+  { _rnoCurrencyCode = Nothing+  , _rnoReservedNodeOfferingId = Nothing+  , _rnoRecurringCharges = Nothing+  , _rnoOfferingType = Nothing+  , _rnoUsagePrice = Nothing+  , _rnoNodeType = Nothing+  , _rnoFixedPrice = Nothing+  , _rnoDuration = Nothing+  }+++-- | The currency code for the compute nodes offering.+rnoCurrencyCode :: Lens' ReservedNodeOffering (Maybe Text)+rnoCurrencyCode = lens _rnoCurrencyCode (\ s a -> s{_rnoCurrencyCode = a});++-- | The offering identifier.+rnoReservedNodeOfferingId :: Lens' ReservedNodeOffering (Maybe Text)+rnoReservedNodeOfferingId = lens _rnoReservedNodeOfferingId (\ s a -> s{_rnoReservedNodeOfferingId = a});++-- | The charge to your account regardless of whether you are creating any clusters using the node offering. Recurring charges are only in effect for heavy-utilization reserved nodes.+rnoRecurringCharges :: Lens' ReservedNodeOffering [RecurringCharge]+rnoRecurringCharges = lens _rnoRecurringCharges (\ s a -> s{_rnoRecurringCharges = a}) . _Default . _Coerce;++-- | The anticipated utilization of the reserved node, as defined in the reserved node offering.+rnoOfferingType :: Lens' ReservedNodeOffering (Maybe Text)+rnoOfferingType = lens _rnoOfferingType (\ s a -> s{_rnoOfferingType = a});++-- | The rate you are charged for each hour the cluster that is using the offering is running.+rnoUsagePrice :: Lens' ReservedNodeOffering (Maybe Double)+rnoUsagePrice = lens _rnoUsagePrice (\ s a -> s{_rnoUsagePrice = a});++-- | The node type offered by the reserved node offering.+rnoNodeType :: Lens' ReservedNodeOffering (Maybe Text)+rnoNodeType = lens _rnoNodeType (\ s a -> s{_rnoNodeType = a});++-- | The upfront fixed charge you will pay to purchase the specific reserved node offering.+rnoFixedPrice :: Lens' ReservedNodeOffering (Maybe Double)+rnoFixedPrice = lens _rnoFixedPrice (\ s a -> s{_rnoFixedPrice = a});++-- | The duration, in seconds, for which the offering will reserve the node.+rnoDuration :: Lens' ReservedNodeOffering (Maybe Int)+rnoDuration = lens _rnoDuration (\ s a -> s{_rnoDuration = a});++instance FromXML ReservedNodeOffering where+        parseXML x+          = ReservedNodeOffering' <$>+              (x .@? "CurrencyCode") <*>+                (x .@? "ReservedNodeOfferingId")+                <*>+                (x .@? "RecurringCharges" .!@ mempty >>=+                   may (parseXMLList "RecurringCharge"))+                <*> (x .@? "OfferingType")+                <*> (x .@? "UsagePrice")+                <*> (x .@? "NodeType")+                <*> (x .@? "FixedPrice")+                <*> (x .@? "Duration")++instance Hashable ReservedNodeOffering where++instance NFData ReservedNodeOffering where++-- | Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.+--+--+--+-- /See:/ 'restoreStatus' smart constructor.+data RestoreStatus = RestoreStatus'+  { _rsStatus                                 :: !(Maybe Text)+  , _rsEstimatedTimeToCompletionInSeconds     :: !(Maybe Integer)+  , _rsCurrentRestoreRateInMegaBytesPerSecond :: !(Maybe Double)+  , _rsProgressInMegaBytes                    :: !(Maybe Integer)+  , _rsElapsedTimeInSeconds                   :: !(Maybe Integer)+  , _rsSnapshotSizeInMegaBytes                :: !(Maybe Integer)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RestoreStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsStatus' - The status of the restore action. Returns starting, restoring, completed, or failed.+--+-- * 'rsEstimatedTimeToCompletionInSeconds' - The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.+--+-- * 'rsCurrentRestoreRateInMegaBytesPerSecond' - The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.+--+-- * 'rsProgressInMegaBytes' - The number of megabytes that have been transferred from snapshot storage.+--+-- * 'rsElapsedTimeInSeconds' - The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.+--+-- * 'rsSnapshotSizeInMegaBytes' - The size of the set of snapshot data used to restore the cluster.+restoreStatus+    :: RestoreStatus+restoreStatus =+  RestoreStatus'+  { _rsStatus = Nothing+  , _rsEstimatedTimeToCompletionInSeconds = Nothing+  , _rsCurrentRestoreRateInMegaBytesPerSecond = Nothing+  , _rsProgressInMegaBytes = Nothing+  , _rsElapsedTimeInSeconds = Nothing+  , _rsSnapshotSizeInMegaBytes = Nothing+  }+++-- | The status of the restore action. Returns starting, restoring, completed, or failed.+rsStatus :: Lens' RestoreStatus (Maybe Text)+rsStatus = lens _rsStatus (\ s a -> s{_rsStatus = a});++-- | The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.+rsEstimatedTimeToCompletionInSeconds :: Lens' RestoreStatus (Maybe Integer)+rsEstimatedTimeToCompletionInSeconds = lens _rsEstimatedTimeToCompletionInSeconds (\ s a -> s{_rsEstimatedTimeToCompletionInSeconds = a});++-- | The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.+rsCurrentRestoreRateInMegaBytesPerSecond :: Lens' RestoreStatus (Maybe Double)+rsCurrentRestoreRateInMegaBytesPerSecond = lens _rsCurrentRestoreRateInMegaBytesPerSecond (\ s a -> s{_rsCurrentRestoreRateInMegaBytesPerSecond = a});++-- | The number of megabytes that have been transferred from snapshot storage.+rsProgressInMegaBytes :: Lens' RestoreStatus (Maybe Integer)+rsProgressInMegaBytes = lens _rsProgressInMegaBytes (\ s a -> s{_rsProgressInMegaBytes = a});++-- | The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.+rsElapsedTimeInSeconds :: Lens' RestoreStatus (Maybe Integer)+rsElapsedTimeInSeconds = lens _rsElapsedTimeInSeconds (\ s a -> s{_rsElapsedTimeInSeconds = a});++-- | The size of the set of snapshot data used to restore the cluster.+rsSnapshotSizeInMegaBytes :: Lens' RestoreStatus (Maybe Integer)+rsSnapshotSizeInMegaBytes = lens _rsSnapshotSizeInMegaBytes (\ s a -> s{_rsSnapshotSizeInMegaBytes = a});++instance FromXML RestoreStatus where+        parseXML x+          = RestoreStatus' <$>+              (x .@? "Status") <*>+                (x .@? "EstimatedTimeToCompletionInSeconds")+                <*> (x .@? "CurrentRestoreRateInMegaBytesPerSecond")+                <*> (x .@? "ProgressInMegaBytes")+                <*> (x .@? "ElapsedTimeInSeconds")+                <*> (x .@? "SnapshotSizeInMegaBytes")++instance Hashable RestoreStatus where++instance NFData RestoreStatus where++-- | Describes a snapshot.+--+--+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+  { _sStatus :: !(Maybe Text)+  , _sRestorableNodeTypes :: !(Maybe [Text])+  , _sAccountsWithRestoreAccess :: !(Maybe [AccountWithRestoreAccess])+  , _sEnhancedVPCRouting :: !(Maybe Bool)+  , _sSnapshotIdentifier :: !(Maybe Text)+  , _sEncryptedWithHSM :: !(Maybe Bool)+  , _sMasterUsername :: !(Maybe Text)+  , _sSourceRegion :: !(Maybe Text)+  , _sVPCId :: !(Maybe Text)+  , _sBackupProgressInMegaBytes :: !(Maybe Double)+  , _sEncrypted :: !(Maybe Bool)+  , _sClusterIdentifier :: !(Maybe Text)+  , _sNumberOfNodes :: !(Maybe Int)+  , _sSnapshotType :: !(Maybe Text)+  , _sKMSKeyId :: !(Maybe Text)+  , _sAvailabilityZone :: !(Maybe Text)+  , _sCurrentBackupRateInMegaBytesPerSecond :: !(Maybe Double)+  , _sSnapshotCreateTime :: !(Maybe ISO8601)+  , _sClusterVersion :: !(Maybe Text)+  , _sOwnerAccount :: !(Maybe Text)+  , _sNodeType :: !(Maybe Text)+  , _sElapsedTimeInSeconds :: !(Maybe Integer)+  , _sClusterCreateTime :: !(Maybe ISO8601)+  , _sEstimatedSecondsToCompletion :: !(Maybe Integer)+  , _sActualIncrementalBackupSizeInMegaBytes :: !(Maybe Double)+  , _sTags :: !(Maybe [Tag])+  , _sPort :: !(Maybe Int)+  , _sTotalBackupSizeInMegaBytes :: !(Maybe Double)+  , _sDBName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStatus' - The snapshot status. The value of the status depends on the API operation used.      * 'CreateClusterSnapshot' and 'CopyClusterSnapshot' returns status as "creating".      * 'DescribeClusterSnapshots' returns status as "creating", "available", "final snapshot", or "failed".     * 'DeleteClusterSnapshot' returns status as "deleted".+--+-- * 'sRestorableNodeTypes' - The list of node types that this cluster snapshot is able to restore into.+--+-- * 'sAccountsWithRestoreAccess' - A list of the AWS customer accounts authorized to restore the snapshot. Returns @null@ if no accounts are authorized. Visible only to the snapshot owner.+--+-- * 'sEnhancedVPCRouting' - An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+--+-- * 'sSnapshotIdentifier' - The snapshot identifier that is provided in the request.+--+-- * 'sEncryptedWithHSM' - A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. @true@ indicates that the data is encrypted using HSM keys.+--+-- * 'sMasterUsername' - The master user name for the cluster.+--+-- * 'sSourceRegion' - The source region from which the snapshot was copied.+--+-- * 'sVPCId' - The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.+--+-- * 'sBackupProgressInMegaBytes' - The number of megabytes that have been transferred to the snapshot backup.+--+-- * 'sEncrypted' - If @true@ , the data in the snapshot is encrypted at rest.+--+-- * 'sClusterIdentifier' - The identifier of the cluster for which the snapshot was taken.+--+-- * 'sNumberOfNodes' - The number of nodes in the cluster.+--+-- * 'sSnapshotType' - The snapshot type. Snapshots created using 'CreateClusterSnapshot' and 'CopyClusterSnapshot' will be of type "manual".+--+-- * 'sKMSKeyId' - The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.+--+-- * 'sAvailabilityZone' - The Availability Zone in which the cluster was created.+--+-- * 'sCurrentBackupRateInMegaBytesPerSecond' - The number of megabytes per second being transferred to the snapshot backup. Returns @0@ for a completed backup.+--+-- * 'sSnapshotCreateTime' - The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.+--+-- * 'sClusterVersion' - The version ID of the Amazon Redshift engine that is running on the cluster.+--+-- * 'sOwnerAccount' - For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.+--+-- * 'sNodeType' - The node type of the nodes in the cluster.+--+-- * 'sElapsedTimeInSeconds' - The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.+--+-- * 'sClusterCreateTime' - The time (UTC) when the cluster was originally created.+--+-- * 'sEstimatedSecondsToCompletion' - The estimate of the time remaining before the snapshot backup will complete. Returns @0@ for a completed backup.+--+-- * 'sActualIncrementalBackupSizeInMegaBytes' - The size of the incremental backup.+--+-- * 'sTags' - The list of tags for the cluster snapshot.+--+-- * 'sPort' - The port that the cluster is listening on.+--+-- * 'sTotalBackupSizeInMegaBytes' - The size of the complete set of backup data that would be used to restore the cluster.+--+-- * 'sDBName' - The name of the database that was created when the cluster was created.+snapshot+    :: Snapshot+snapshot =+  Snapshot'+  { _sStatus = Nothing+  , _sRestorableNodeTypes = Nothing+  , _sAccountsWithRestoreAccess = Nothing+  , _sEnhancedVPCRouting = Nothing+  , _sSnapshotIdentifier = Nothing+  , _sEncryptedWithHSM = Nothing+  , _sMasterUsername = Nothing+  , _sSourceRegion = Nothing+  , _sVPCId = Nothing+  , _sBackupProgressInMegaBytes = Nothing+  , _sEncrypted = Nothing+  , _sClusterIdentifier = Nothing+  , _sNumberOfNodes = Nothing+  , _sSnapshotType = Nothing+  , _sKMSKeyId = Nothing+  , _sAvailabilityZone = Nothing+  , _sCurrentBackupRateInMegaBytesPerSecond = Nothing+  , _sSnapshotCreateTime = Nothing+  , _sClusterVersion = Nothing+  , _sOwnerAccount = Nothing+  , _sNodeType = Nothing+  , _sElapsedTimeInSeconds = Nothing+  , _sClusterCreateTime = Nothing+  , _sEstimatedSecondsToCompletion = Nothing+  , _sActualIncrementalBackupSizeInMegaBytes = Nothing+  , _sTags = Nothing+  , _sPort = Nothing+  , _sTotalBackupSizeInMegaBytes = Nothing+  , _sDBName = Nothing+  }+++-- | The snapshot status. The value of the status depends on the API operation used.      * 'CreateClusterSnapshot' and 'CopyClusterSnapshot' returns status as "creating".      * 'DescribeClusterSnapshots' returns status as "creating", "available", "final snapshot", or "failed".     * 'DeleteClusterSnapshot' returns status as "deleted".+sStatus :: Lens' Snapshot (Maybe Text)+sStatus = lens _sStatus (\ s a -> s{_sStatus = a});++-- | The list of node types that this cluster snapshot is able to restore into.+sRestorableNodeTypes :: Lens' Snapshot [Text]+sRestorableNodeTypes = lens _sRestorableNodeTypes (\ s a -> s{_sRestorableNodeTypes = a}) . _Default . _Coerce;++-- | A list of the AWS customer accounts authorized to restore the snapshot. Returns @null@ if no accounts are authorized. Visible only to the snapshot owner.+sAccountsWithRestoreAccess :: Lens' Snapshot [AccountWithRestoreAccess]+sAccountsWithRestoreAccess = lens _sAccountsWithRestoreAccess (\ s a -> s{_sAccountsWithRestoreAccess = a}) . _Default . _Coerce;++-- | An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html Enhanced VPC Routing> in the Amazon Redshift Cluster Management Guide. If this option is @true@ , enhanced VPC routing is enabled.  Default: false+sEnhancedVPCRouting :: Lens' Snapshot (Maybe Bool)+sEnhancedVPCRouting = lens _sEnhancedVPCRouting (\ s a -> s{_sEnhancedVPCRouting = a});++-- | The snapshot identifier that is provided in the request.+sSnapshotIdentifier :: Lens' Snapshot (Maybe Text)+sSnapshotIdentifier = lens _sSnapshotIdentifier (\ s a -> s{_sSnapshotIdentifier = a});++-- | A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. @true@ indicates that the data is encrypted using HSM keys.+sEncryptedWithHSM :: Lens' Snapshot (Maybe Bool)+sEncryptedWithHSM = lens _sEncryptedWithHSM (\ s a -> s{_sEncryptedWithHSM = a});++-- | The master user name for the cluster.+sMasterUsername :: Lens' Snapshot (Maybe Text)+sMasterUsername = lens _sMasterUsername (\ s a -> s{_sMasterUsername = a});++-- | The source region from which the snapshot was copied.+sSourceRegion :: Lens' Snapshot (Maybe Text)+sSourceRegion = lens _sSourceRegion (\ s a -> s{_sSourceRegion = a});++-- | The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.+sVPCId :: Lens' Snapshot (Maybe Text)+sVPCId = lens _sVPCId (\ s a -> s{_sVPCId = a});++-- | The number of megabytes that have been transferred to the snapshot backup.+sBackupProgressInMegaBytes :: Lens' Snapshot (Maybe Double)+sBackupProgressInMegaBytes = lens _sBackupProgressInMegaBytes (\ s a -> s{_sBackupProgressInMegaBytes = a});++-- | If @true@ , the data in the snapshot is encrypted at rest.+sEncrypted :: Lens' Snapshot (Maybe Bool)+sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});++-- | The identifier of the cluster for which the snapshot was taken.+sClusterIdentifier :: Lens' Snapshot (Maybe Text)+sClusterIdentifier = lens _sClusterIdentifier (\ s a -> s{_sClusterIdentifier = a});++-- | The number of nodes in the cluster.+sNumberOfNodes :: Lens' Snapshot (Maybe Int)+sNumberOfNodes = lens _sNumberOfNodes (\ s a -> s{_sNumberOfNodes = a});++-- | The snapshot type. Snapshots created using 'CreateClusterSnapshot' and 'CopyClusterSnapshot' will be of type "manual".+sSnapshotType :: Lens' Snapshot (Maybe Text)+sSnapshotType = lens _sSnapshotType (\ s a -> s{_sSnapshotType = a});++-- | The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.+sKMSKeyId :: Lens' Snapshot (Maybe Text)+sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});++-- | The Availability Zone in which the cluster was created.+sAvailabilityZone :: Lens' Snapshot (Maybe Text)+sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});++-- | The number of megabytes per second being transferred to the snapshot backup. Returns @0@ for a completed backup.+sCurrentBackupRateInMegaBytesPerSecond :: Lens' Snapshot (Maybe Double)+sCurrentBackupRateInMegaBytesPerSecond = lens _sCurrentBackupRateInMegaBytesPerSecond (\ s a -> s{_sCurrentBackupRateInMegaBytesPerSecond = a});++-- | The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.+sSnapshotCreateTime :: Lens' Snapshot (Maybe UTCTime)+sSnapshotCreateTime = lens _sSnapshotCreateTime (\ s a -> s{_sSnapshotCreateTime = a}) . mapping _Time;++-- | The version ID of the Amazon Redshift engine that is running on the cluster.+sClusterVersion :: Lens' Snapshot (Maybe Text)+sClusterVersion = lens _sClusterVersion (\ s a -> s{_sClusterVersion = a});++-- | For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.+sOwnerAccount :: Lens' Snapshot (Maybe Text)+sOwnerAccount = lens _sOwnerAccount (\ s a -> s{_sOwnerAccount = a});++-- | The node type of the nodes in the cluster.+sNodeType :: Lens' Snapshot (Maybe Text)+sNodeType = lens _sNodeType (\ s a -> s{_sNodeType = a});++-- | The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.+sElapsedTimeInSeconds :: Lens' Snapshot (Maybe Integer)+sElapsedTimeInSeconds = lens _sElapsedTimeInSeconds (\ s a -> s{_sElapsedTimeInSeconds = a});++-- | The time (UTC) when the cluster was originally created.+sClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)+sClusterCreateTime = lens _sClusterCreateTime (\ s a -> s{_sClusterCreateTime = a}) . mapping _Time;++-- | The estimate of the time remaining before the snapshot backup will complete. Returns @0@ for a completed backup.+sEstimatedSecondsToCompletion :: Lens' Snapshot (Maybe Integer)+sEstimatedSecondsToCompletion = lens _sEstimatedSecondsToCompletion (\ s a -> s{_sEstimatedSecondsToCompletion = a});++-- | The size of the incremental backup.+sActualIncrementalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)+sActualIncrementalBackupSizeInMegaBytes = lens _sActualIncrementalBackupSizeInMegaBytes (\ s a -> s{_sActualIncrementalBackupSizeInMegaBytes = a});++-- | The list of tags for the cluster snapshot.+sTags :: Lens' Snapshot [Tag]+sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;++-- | The port that the cluster is listening on.+sPort :: Lens' Snapshot (Maybe Int)+sPort = lens _sPort (\ s a -> s{_sPort = a});++-- | The size of the complete set of backup data that would be used to restore the cluster.+sTotalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)+sTotalBackupSizeInMegaBytes = lens _sTotalBackupSizeInMegaBytes (\ s a -> s{_sTotalBackupSizeInMegaBytes = a});++-- | The name of the database that was created when the cluster was created.+sDBName :: Lens' Snapshot (Maybe Text)+sDBName = lens _sDBName (\ s a -> s{_sDBName = a});++instance FromXML Snapshot where+        parseXML x+          = Snapshot' <$>+              (x .@? "Status") <*>+                (x .@? "RestorableNodeTypes" .!@ mempty >>=+                   may (parseXMLList "NodeType"))+                <*>+                (x .@? "AccountsWithRestoreAccess" .!@ mempty >>=+                   may (parseXMLList "AccountWithRestoreAccess"))+                <*> (x .@? "EnhancedVpcRouting")+                <*> (x .@? "SnapshotIdentifier")+                <*> (x .@? "EncryptedWithHSM")+                <*> (x .@? "MasterUsername")+                <*> (x .@? "SourceRegion")+                <*> (x .@? "VpcId")+                <*> (x .@? "BackupProgressInMegaBytes")+                <*> (x .@? "Encrypted")+                <*> (x .@? "ClusterIdentifier")+                <*> (x .@? "NumberOfNodes")+                <*> (x .@? "SnapshotType")+                <*> (x .@? "KmsKeyId")+                <*> (x .@? "AvailabilityZone")+                <*> (x .@? "CurrentBackupRateInMegaBytesPerSecond")+                <*> (x .@? "SnapshotCreateTime")+                <*> (x .@? "ClusterVersion")+                <*> (x .@? "OwnerAccount")+                <*> (x .@? "NodeType")+                <*> (x .@? "ElapsedTimeInSeconds")+                <*> (x .@? "ClusterCreateTime")+                <*> (x .@? "EstimatedSecondsToCompletion")+                <*> (x .@? "ActualIncrementalBackupSizeInMegaBytes")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))+                <*> (x .@? "Port")+                <*> (x .@? "TotalBackupSizeInMegaBytes")+                <*> (x .@? "DBName")++instance Hashable Snapshot where++instance NFData Snapshot where++-- | The snapshot copy grant that grants Amazon Redshift permission to encrypt copied snapshots with the specified customer master key (CMK) from AWS KMS in the destination region.+--+--+-- For more information about managing snapshot copy grants, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html Amazon Redshift Database Encryption> in the /Amazon Redshift Cluster Management Guide/ .+--+--+-- /See:/ 'snapshotCopyGrant' smart constructor.+data SnapshotCopyGrant = SnapshotCopyGrant'+  { _scgKMSKeyId              :: !(Maybe Text)+  , _scgSnapshotCopyGrantName :: !(Maybe Text)+  , _scgTags                  :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SnapshotCopyGrant' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scgKMSKeyId' - The unique identifier of the customer master key (CMK) in AWS KMS to which Amazon Redshift is granted permission.+--+-- * 'scgSnapshotCopyGrantName' - The name of the snapshot copy grant.+--+-- * 'scgTags' - A list of tag instances.+snapshotCopyGrant+    :: SnapshotCopyGrant+snapshotCopyGrant =+  SnapshotCopyGrant'+  { _scgKMSKeyId = Nothing+  , _scgSnapshotCopyGrantName = Nothing+  , _scgTags = Nothing+  }+++-- | The unique identifier of the customer master key (CMK) in AWS KMS to which Amazon Redshift is granted permission.+scgKMSKeyId :: Lens' SnapshotCopyGrant (Maybe Text)+scgKMSKeyId = lens _scgKMSKeyId (\ s a -> s{_scgKMSKeyId = a});++-- | The name of the snapshot copy grant.+scgSnapshotCopyGrantName :: Lens' SnapshotCopyGrant (Maybe Text)+scgSnapshotCopyGrantName = lens _scgSnapshotCopyGrantName (\ s a -> s{_scgSnapshotCopyGrantName = a});++-- | A list of tag instances.+scgTags :: Lens' SnapshotCopyGrant [Tag]+scgTags = lens _scgTags (\ s a -> s{_scgTags = a}) . _Default . _Coerce;++instance FromXML SnapshotCopyGrant where+        parseXML x+          = SnapshotCopyGrant' <$>+              (x .@? "KmsKeyId") <*>+                (x .@? "SnapshotCopyGrantName")+                <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList "Tag"))++instance Hashable SnapshotCopyGrant where++instance NFData SnapshotCopyGrant where++-- | Describes a subnet.+--+--+--+-- /See:/ 'subnet' smart constructor.+data Subnet = Subnet'+  { _sSubnetStatus           :: !(Maybe Text)+  , _sSubnetIdentifier       :: !(Maybe Text)+  , _sSubnetAvailabilityZone :: !(Maybe AvailabilityZone)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Subnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sSubnetStatus' - The status of the subnet.+--+-- * 'sSubnetIdentifier' - The identifier of the subnet.+--+-- * 'sSubnetAvailabilityZone' - Undocumented member.+subnet+    :: Subnet+subnet =+  Subnet'+  { _sSubnetStatus = Nothing+  , _sSubnetIdentifier = Nothing+  , _sSubnetAvailabilityZone = Nothing+  }+++-- | The status of the subnet.+sSubnetStatus :: Lens' Subnet (Maybe Text)+sSubnetStatus = lens _sSubnetStatus (\ s a -> s{_sSubnetStatus = a});++-- | The identifier of the subnet.+sSubnetIdentifier :: Lens' Subnet (Maybe Text)+sSubnetIdentifier = lens _sSubnetIdentifier (\ s a -> s{_sSubnetIdentifier = a});++-- | Undocumented member.+sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)+sSubnetAvailabilityZone = lens _sSubnetAvailabilityZone (\ s a -> s{_sSubnetAvailabilityZone = a});++instance FromXML Subnet where+        parseXML x+          = Subnet' <$>+              (x .@? "SubnetStatus") <*> (x .@? "SubnetIdentifier")+                <*> (x .@? "SubnetAvailabilityZone")++instance Hashable Subnet where++instance NFData Subnet where++-- | Describes the status of a 'RestoreTableFromClusterSnapshot' operation.+--+--+--+-- /See:/ 'tableRestoreStatus' smart constructor.+data TableRestoreStatus = TableRestoreStatus'+  { _trsStatus                :: !(Maybe TableRestoreStatusType)+  , _trsTargetSchemaName      :: !(Maybe Text)+  , _trsSnapshotIdentifier    :: !(Maybe Text)+  , _trsSourceDatabaseName    :: !(Maybe Text)+  , _trsTableRestoreRequestId :: !(Maybe Text)+  , _trsNewTableName          :: !(Maybe Text)+  , _trsTargetDatabaseName    :: !(Maybe Text)+  , _trsSourceSchemaName      :: !(Maybe Text)+  , _trsClusterIdentifier     :: !(Maybe Text)+  , _trsRequestTime           :: !(Maybe ISO8601)+  , _trsSourceTableName       :: !(Maybe Text)+  , _trsTotalDataInMegaBytes  :: !(Maybe Integer)+  , _trsProgressInMegaBytes   :: !(Maybe Integer)+  , _trsMessage               :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableRestoreStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trsStatus' - A value that describes the current state of the table restore request. Valid Values: @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@+--+-- * 'trsTargetSchemaName' - The name of the schema to restore the table to.+--+-- * 'trsSnapshotIdentifier' - The identifier of the snapshot that the table is being restored from.+--+-- * 'trsSourceDatabaseName' - The name of the source database that contains the table being restored.+--+-- * 'trsTableRestoreRequestId' - The unique identifier for the table restore request.+--+-- * 'trsNewTableName' - The name of the table to create as a result of the table restore request.+--+-- * 'trsTargetDatabaseName' - The name of the database to restore the table to.+--+-- * 'trsSourceSchemaName' - The name of the source schema that contains the table being restored.+--+-- * 'trsClusterIdentifier' - The identifier of the Amazon Redshift cluster that the table is being restored to.+--+-- * 'trsRequestTime' - The time that the table restore request was made, in Universal Coordinated Time (UTC).+--+-- * 'trsSourceTableName' - The name of the source table being restored.+--+-- * 'trsTotalDataInMegaBytes' - The total amount of data to restore to the new table, in megabytes (MB).+--+-- * 'trsProgressInMegaBytes' - The amount of data restored to the new table so far, in megabytes (MB).+--+-- * 'trsMessage' - A description of the status of the table restore request. Status values include @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@ .+tableRestoreStatus+    :: TableRestoreStatus+tableRestoreStatus =+  TableRestoreStatus'+  { _trsStatus = Nothing+  , _trsTargetSchemaName = Nothing+  , _trsSnapshotIdentifier = Nothing+  , _trsSourceDatabaseName = Nothing+  , _trsTableRestoreRequestId = Nothing+  , _trsNewTableName = Nothing+  , _trsTargetDatabaseName = Nothing+  , _trsSourceSchemaName = Nothing+  , _trsClusterIdentifier = Nothing+  , _trsRequestTime = Nothing+  , _trsSourceTableName = Nothing+  , _trsTotalDataInMegaBytes = Nothing+  , _trsProgressInMegaBytes = Nothing+  , _trsMessage = Nothing+  }+++-- | A value that describes the current state of the table restore request. Valid Values: @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@+trsStatus :: Lens' TableRestoreStatus (Maybe TableRestoreStatusType)+trsStatus = lens _trsStatus (\ s a -> s{_trsStatus = a});++-- | The name of the schema to restore the table to.+trsTargetSchemaName :: Lens' TableRestoreStatus (Maybe Text)+trsTargetSchemaName = lens _trsTargetSchemaName (\ s a -> s{_trsTargetSchemaName = a});++-- | The identifier of the snapshot that the table is being restored from.+trsSnapshotIdentifier :: Lens' TableRestoreStatus (Maybe Text)+trsSnapshotIdentifier = lens _trsSnapshotIdentifier (\ s a -> s{_trsSnapshotIdentifier = a});++-- | The name of the source database that contains the table being restored.+trsSourceDatabaseName :: Lens' TableRestoreStatus (Maybe Text)+trsSourceDatabaseName = lens _trsSourceDatabaseName (\ s a -> s{_trsSourceDatabaseName = a});++-- | The unique identifier for the table restore request.+trsTableRestoreRequestId :: Lens' TableRestoreStatus (Maybe Text)+trsTableRestoreRequestId = lens _trsTableRestoreRequestId (\ s a -> s{_trsTableRestoreRequestId = a});++-- | The name of the table to create as a result of the table restore request.+trsNewTableName :: Lens' TableRestoreStatus (Maybe Text)+trsNewTableName = lens _trsNewTableName (\ s a -> s{_trsNewTableName = a});++-- | The name of the database to restore the table to.+trsTargetDatabaseName :: Lens' TableRestoreStatus (Maybe Text)+trsTargetDatabaseName = lens _trsTargetDatabaseName (\ s a -> s{_trsTargetDatabaseName = a});++-- | The name of the source schema that contains the table being restored.+trsSourceSchemaName :: Lens' TableRestoreStatus (Maybe Text)+trsSourceSchemaName = lens _trsSourceSchemaName (\ s a -> s{_trsSourceSchemaName = a});++-- | The identifier of the Amazon Redshift cluster that the table is being restored to.+trsClusterIdentifier :: Lens' TableRestoreStatus (Maybe Text)+trsClusterIdentifier = lens _trsClusterIdentifier (\ s a -> s{_trsClusterIdentifier = a});++-- | The time that the table restore request was made, in Universal Coordinated Time (UTC).+trsRequestTime :: Lens' TableRestoreStatus (Maybe UTCTime)+trsRequestTime = lens _trsRequestTime (\ s a -> s{_trsRequestTime = a}) . mapping _Time;++-- | The name of the source table being restored.+trsSourceTableName :: Lens' TableRestoreStatus (Maybe Text)+trsSourceTableName = lens _trsSourceTableName (\ s a -> s{_trsSourceTableName = a});++-- | The total amount of data to restore to the new table, in megabytes (MB).+trsTotalDataInMegaBytes :: Lens' TableRestoreStatus (Maybe Integer)+trsTotalDataInMegaBytes = lens _trsTotalDataInMegaBytes (\ s a -> s{_trsTotalDataInMegaBytes = a});++-- | The amount of data restored to the new table so far, in megabytes (MB).+trsProgressInMegaBytes :: Lens' TableRestoreStatus (Maybe Integer)+trsProgressInMegaBytes = lens _trsProgressInMegaBytes (\ s a -> s{_trsProgressInMegaBytes = a});++-- | A description of the status of the table restore request. Status values include @SUCCEEDED@ , @FAILED@ , @CANCELED@ , @PENDING@ , @IN_PROGRESS@ .+trsMessage :: Lens' TableRestoreStatus (Maybe Text)+trsMessage = lens _trsMessage (\ s a -> s{_trsMessage = a});++instance FromXML TableRestoreStatus where+        parseXML x+          = TableRestoreStatus' <$>+              (x .@? "Status") <*> (x .@? "TargetSchemaName") <*>+                (x .@? "SnapshotIdentifier")+                <*> (x .@? "SourceDatabaseName")+                <*> (x .@? "TableRestoreRequestId")+                <*> (x .@? "NewTableName")+                <*> (x .@? "TargetDatabaseName")+                <*> (x .@? "SourceSchemaName")+                <*> (x .@? "ClusterIdentifier")+                <*> (x .@? "RequestTime")+                <*> (x .@? "SourceTableName")+                <*> (x .@? "TotalDataInMegaBytes")+                <*> (x .@? "ProgressInMegaBytes")+                <*> (x .@? "Message")++instance Hashable TableRestoreStatus where++instance NFData TableRestoreStatus where++-- | A tag consisting of a name/value pair for a resource.+--+--+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+  { _tagValue :: !(Maybe Text)+  , _tagKey   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue' - The value for the resource tag.+--+-- * 'tagKey' - The key, or name, for the resource tag.+tag+    :: Tag+tag = Tag' {_tagValue = Nothing, _tagKey = Nothing}+++-- | The value for the resource tag.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++-- | The key, or name, for the resource tag.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++instance FromXML Tag where+        parseXML x+          = Tag' <$> (x .@? "Value") <*> (x .@? "Key")++instance Hashable Tag where++instance NFData Tag where++instance ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]++-- | A tag and its associated resource.+--+--+--+-- /See:/ 'taggedResource' smart constructor.+data TaggedResource = TaggedResource'+  { _trTag          :: !(Maybe Tag)+  , _trResourceType :: !(Maybe Text)+  , _trResourceName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TaggedResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trTag' - The tag for the resource.+--+-- * 'trResourceType' - The type of resource with which the tag is associated. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.+--+-- * 'trResourceName' - The Amazon Resource Name (ARN) with which the tag is associated. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ .+taggedResource+    :: TaggedResource+taggedResource =+  TaggedResource'+  {_trTag = Nothing, _trResourceType = Nothing, _trResourceName = Nothing}+++-- | The tag for the resource.+trTag :: Lens' TaggedResource (Maybe Tag)+trTag = lens _trTag (\ s a -> s{_trTag = a});++-- | The type of resource with which the tag is associated. Valid resource types are:      * Cluster     * CIDR/IP     * EC2 security group     * Snapshot     * Cluster security group     * Subnet group     * HSM connection     * HSM certificate     * Parameter group For more information about Amazon Redshift resource types and constructing ARNs, go to <http://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions Constructing an Amazon Redshift Amazon Resource Name (ARN)> in the Amazon Redshift Cluster Management Guide.+trResourceType :: Lens' TaggedResource (Maybe Text)+trResourceType = lens _trResourceType (\ s a -> s{_trResourceType = a});++-- | The Amazon Resource Name (ARN) with which the tag is associated. For example, @arn:aws:redshift:us-east-1:123456789:cluster:t1@ .+trResourceName :: Lens' TaggedResource (Maybe Text)+trResourceName = lens _trResourceName (\ s a -> s{_trResourceName = a});++instance FromXML TaggedResource where+        parseXML x+          = TaggedResource' <$>+              (x .@? "Tag") <*> (x .@? "ResourceType") <*>+                (x .@? "ResourceName")++instance Hashable TaggedResource where++instance NFData TaggedResource where++-- | Describes the members of a VPC security group.+--+--+--+-- /See:/ 'vpcSecurityGroupMembership' smart constructor.+data VPCSecurityGroupMembership = VPCSecurityGroupMembership'+  { _vsgmStatus             :: !(Maybe Text)+  , _vsgmVPCSecurityGroupId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCSecurityGroupMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsgmStatus' - The status of the VPC security group.+--+-- * 'vsgmVPCSecurityGroupId' - The identifier of the VPC security group.+vpcSecurityGroupMembership+    :: VPCSecurityGroupMembership+vpcSecurityGroupMembership =+  VPCSecurityGroupMembership'+  {_vsgmStatus = Nothing, _vsgmVPCSecurityGroupId = Nothing}+++-- | The status of the VPC security group.+vsgmStatus :: Lens' VPCSecurityGroupMembership (Maybe Text)+vsgmStatus = lens _vsgmStatus (\ s a -> s{_vsgmStatus = a});++-- | The identifier of the VPC security group.+vsgmVPCSecurityGroupId :: Lens' VPCSecurityGroupMembership (Maybe Text)+vsgmVPCSecurityGroupId = lens _vsgmVPCSecurityGroupId (\ s a -> s{_vsgmVPCSecurityGroupId = a});++instance FromXML VPCSecurityGroupMembership where+        parseXML x+          = VPCSecurityGroupMembership' <$>+              (x .@? "Status") <*> (x .@? "VpcSecurityGroupId")++instance Hashable VPCSecurityGroupMembership where++instance NFData VPCSecurityGroupMembership where
gen/Network/AWS/Redshift/Types/Sum.hs view
@@ -9,22 +9,23 @@  -- | -- Module      : Network.AWS.Redshift.Types.Sum--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.Redshift.Types.Sum where -import           Network.AWS.Prelude-import           Network.AWS.Redshift.Internal+import Network.AWS.Prelude+import Network.AWS.Redshift.Internal  data ParameterApplyType-    = Dynamic-    | Static-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = Dynamic+  | Static+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText ParameterApplyType where     parser = takeLowerText >>= \case         "dynamic" -> pure Dynamic@@ -47,12 +48,13 @@     parseXML = parseXMLText "ParameterApplyType"  data SourceType-    = Cluster-    | ClusterParameterGroup-    | ClusterSecurityGroup-    | ClusterSnapshot-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = Cluster+  | ClusterParameterGroup+  | ClusterSecurityGroup+  | ClusterSnapshot+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText SourceType where     parser = takeLowerText >>= \case         "cluster" -> pure Cluster@@ -79,12 +81,13 @@     parseXML = parseXMLText "SourceType"  data TableRestoreStatusType-    = Canceled-    | Failed-    | InProgress-    | Pending-    | Succeeded-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+  = Canceled+  | Failed+  | InProgress+  | Pending+  | Succeeded+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+  instance FromText TableRestoreStatusType where     parser = takeLowerText >>= \case
gen/Network/AWS/Redshift/Waiters.hs view
@@ -7,82 +7,88 @@  -- | -- Module      : Network.AWS.Redshift.Waiters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.Redshift.Waiters where -import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Redshift.DescribeClusters-import           Network.AWS.Redshift.DescribeClusters-import           Network.AWS.Redshift.DescribeClusterSnapshots-import           Network.AWS.Redshift.Types-import           Network.AWS.Waiter+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Redshift.DescribeClusters+import Network.AWS.Redshift.DescribeClusters+import Network.AWS.Redshift.DescribeClusterSnapshots+import Network.AWS.Redshift.Types+import Network.AWS.Waiter  -- | Polls 'Network.AWS.Redshift.DescribeClusters' every 60 seconds until a successful state is reached. An error is returned after 30 failed checks. clusterDeleted :: Wait DescribeClusters clusterDeleted =-    Wait-    { _waitName = "ClusterDeleted"-    , _waitAttempts = 30-    , _waitDelay = 60-    , _waitAcceptors = [ matchError "ClusterNotFound" AcceptSuccess-                       , matchAny-                             "creating"-                             AcceptFailure-                             (folding (concatOf dcrsClusters) .-                              cClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "rebooting"-                             AcceptFailure-                             (folding (concatOf dcrsClusters) .-                              cClusterStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "ClusterDeleted"+  , _waitAttempts = 30+  , _waitDelay = 60+  , _waitAcceptors =+      [ matchError "ClusterNotFound" AcceptSuccess+      , matchAny+          "creating"+          AcceptFailure+          (folding (concatOf dcrsClusters) .+           cClusterStatus . _Just . to toTextCI)+      , matchAny+          "rebooting"+          AcceptFailure+          (folding (concatOf dcrsClusters) .+           cClusterStatus . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.Redshift.DescribeClusterSnapshots' every 15 seconds until a successful state is reached. An error is returned after 20 failed checks. snapshotAvailable :: Wait DescribeClusterSnapshots snapshotAvailable =-    Wait-    { _waitName = "SnapshotAvailable"-    , _waitAttempts = 20-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dcssrsSnapshots) .-                              sStatus . _Just . to toTextCI)-                       , matchAny-                             "failed"-                             AcceptFailure-                             (folding (concatOf dcssrsSnapshots) .-                              sStatus . _Just . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dcssrsSnapshots) .-                              sStatus . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "SnapshotAvailable"+  , _waitAttempts = 20+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dcssrsSnapshots) . sStatus . _Just . to toTextCI)+      , matchAny+          "failed"+          AcceptFailure+          (folding (concatOf dcssrsSnapshots) . sStatus . _Just . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dcssrsSnapshots) . sStatus . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.Redshift.DescribeClusters' every 60 seconds until a successful state is reached. An error is returned after 30 failed checks. clusterAvailable :: Wait DescribeClusters clusterAvailable =-    Wait-    { _waitName = "ClusterAvailable"-    , _waitAttempts = 30-    , _waitDelay = 60-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dcrsClusters) .-                              cClusterStatus . _Just . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf dcrsClusters) .-                              cClusterStatus . _Just . to toTextCI)-                       , matchError "ClusterNotFound" AcceptRetry]-    }+  Wait+  { _waitName = "ClusterAvailable"+  , _waitAttempts = 30+  , _waitDelay = 60+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dcrsClusters) .+           cClusterStatus . _Just . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf dcrsClusters) .+           cClusterStatus . _Just . to toTextCI)+      , matchError "ClusterNotFound" AcceptRetry+      ]+  }+
src/Network/AWS/Redshift/Internal.hs view
@@ -27,6 +27,7 @@     Ohio            -> Just "391106570357"     NorthCalifornia -> Just "262260360010"     Oregon          -> Just "902366379725"+    Montreal        -> Just "907379612154"     Tokyo           -> Just "404641285394"     Seoul           -> Just "760740231472"     Mumbai          -> Just "865932855811"@@ -35,6 +36,7 @@     SaoPaulo        -> Just "075028567923"     Frankfurt       -> Just "053454850223"     Ireland         -> Just "210876761215"+    London          -> Just "307160386991"     GovCloud        -> Nothing     GovCloudFIPS    -> Nothing     Beijing         -> Nothing
test/Main.hs view
@@ -2,9 +2,9 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --
test/Test/AWS/Gen/Redshift.hs view
@@ -5,20 +5,20 @@  -- | -- Module      : Test.AWS.Gen.Redshift--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Test.AWS.Gen.Redshift where  import Data.Proxy+import Network.AWS.Redshift import Test.AWS.Fixture import Test.AWS.Prelude-import Test.Tasty-import Network.AWS.Redshift import Test.AWS.Redshift.Internal+import Test.Tasty  -- Auto-generated: the actual test selection needs to be manually placed into -- the top-level so that real test data can be incrementally added.@@ -139,6 +139,9 @@ --         , requestModifyClusterParameterGroup $ --             modifyClusterParameterGroup --+--         , requestGetClusterCredentials $+--             getClusterCredentials+-- --         , requestCreateClusterSecurityGroup $ --             createClusterSecurityGroup --@@ -328,6 +331,9 @@ --         , responseModifyClusterParameterGroup $ --             clusterParameterGroupNameMessage --+--         , responseGetClusterCredentials $+--             getClusterCredentialsResponse+-- --         , responseCreateClusterSecurityGroup $ --             createClusterSecurityGroupResponse --@@ -593,6 +599,11 @@     "ModifyClusterParameterGroup"     "fixture/ModifyClusterParameterGroup.yaml" +requestGetClusterCredentials :: GetClusterCredentials -> TestTree+requestGetClusterCredentials = req+    "GetClusterCredentials"+    "fixture/GetClusterCredentials.yaml"+ requestCreateClusterSecurityGroup :: CreateClusterSecurityGroup -> TestTree requestCreateClusterSecurityGroup = req     "CreateClusterSecurityGroup"@@ -978,6 +989,13 @@     "fixture/ModifyClusterParameterGroupResponse.proto"     redshift     (Proxy :: Proxy ModifyClusterParameterGroup)++responseGetClusterCredentials :: GetClusterCredentialsResponse -> TestTree+responseGetClusterCredentials = res+    "GetClusterCredentialsResponse"+    "fixture/GetClusterCredentialsResponse.proto"+    redshift+    (Proxy :: Proxy GetClusterCredentials)  responseCreateClusterSecurityGroup :: CreateClusterSecurityGroupResponse -> TestTree responseCreateClusterSecurityGroup = res