amazonka-dynamodb-1.6.0: gen/Network/AWS/DynamoDB/UpdateGlobalTableSettings.hs
{-# 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.DynamoDB.UpdateGlobalTableSettings
-- Copyright : (c) 2013-2018 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)
--
-- Updates settings for a global table.
--
--
module Network.AWS.DynamoDB.UpdateGlobalTableSettings
(
-- * Creating a Request
updateGlobalTableSettings
, UpdateGlobalTableSettings
-- * Request Lenses
, ugtsGlobalTableProvisionedWriteCapacityUnits
, ugtsReplicaSettingsUpdate
, ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate
, ugtsGlobalTableName
-- * Destructuring the Response
, updateGlobalTableSettingsResponse
, UpdateGlobalTableSettingsResponse
-- * Response Lenses
, ugtsrsReplicaSettings
, ugtsrsGlobalTableName
, ugtsrsResponseStatus
) where
import Network.AWS.DynamoDB.Types
import Network.AWS.DynamoDB.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'updateGlobalTableSettings' smart constructor.
data UpdateGlobalTableSettings = UpdateGlobalTableSettings'
{ _ugtsGlobalTableProvisionedWriteCapacityUnits :: !(Maybe Nat)
, _ugtsReplicaSettingsUpdate :: !(Maybe (List1 ReplicaSettingsUpdate))
, _ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate :: !(Maybe (List1 GlobalTableGlobalSecondaryIndexSettingsUpdate))
, _ugtsGlobalTableName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateGlobalTableSettings' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ugtsGlobalTableProvisionedWriteCapacityUnits' - The maximum number of writes consumed per second before DynamoDB returns a @ThrottlingException.@
--
-- * 'ugtsReplicaSettingsUpdate' - Represents the settings for a global table in a region that will be modified.
--
-- * 'ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate' - Represents the settings of a global secondary index for a global table that will be modified.
--
-- * 'ugtsGlobalTableName' - The name of the global table
updateGlobalTableSettings
:: Text -- ^ 'ugtsGlobalTableName'
-> UpdateGlobalTableSettings
updateGlobalTableSettings pGlobalTableName_ =
UpdateGlobalTableSettings'
{ _ugtsGlobalTableProvisionedWriteCapacityUnits = Nothing
, _ugtsReplicaSettingsUpdate = Nothing
, _ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate = Nothing
, _ugtsGlobalTableName = pGlobalTableName_
}
-- | The maximum number of writes consumed per second before DynamoDB returns a @ThrottlingException.@
ugtsGlobalTableProvisionedWriteCapacityUnits :: Lens' UpdateGlobalTableSettings (Maybe Natural)
ugtsGlobalTableProvisionedWriteCapacityUnits = lens _ugtsGlobalTableProvisionedWriteCapacityUnits (\ s a -> s{_ugtsGlobalTableProvisionedWriteCapacityUnits = a}) . mapping _Nat
-- | Represents the settings for a global table in a region that will be modified.
ugtsReplicaSettingsUpdate :: Lens' UpdateGlobalTableSettings (Maybe (NonEmpty ReplicaSettingsUpdate))
ugtsReplicaSettingsUpdate = lens _ugtsReplicaSettingsUpdate (\ s a -> s{_ugtsReplicaSettingsUpdate = a}) . mapping _List1
-- | Represents the settings of a global secondary index for a global table that will be modified.
ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate :: Lens' UpdateGlobalTableSettings (Maybe (NonEmpty GlobalTableGlobalSecondaryIndexSettingsUpdate))
ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate = lens _ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate (\ s a -> s{_ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate = a}) . mapping _List1
-- | The name of the global table
ugtsGlobalTableName :: Lens' UpdateGlobalTableSettings Text
ugtsGlobalTableName = lens _ugtsGlobalTableName (\ s a -> s{_ugtsGlobalTableName = a})
instance AWSRequest UpdateGlobalTableSettings where
type Rs UpdateGlobalTableSettings =
UpdateGlobalTableSettingsResponse
request = postJSON dynamoDB
response
= receiveJSON
(\ s h x ->
UpdateGlobalTableSettingsResponse' <$>
(x .?> "ReplicaSettings" .!@ mempty) <*>
(x .?> "GlobalTableName")
<*> (pure (fromEnum s)))
instance Hashable UpdateGlobalTableSettings where
instance NFData UpdateGlobalTableSettings where
instance ToHeaders UpdateGlobalTableSettings where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DynamoDB_20120810.UpdateGlobalTableSettings" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.0" :: ByteString)])
instance ToJSON UpdateGlobalTableSettings where
toJSON UpdateGlobalTableSettings'{..}
= object
(catMaybes
[("GlobalTableProvisionedWriteCapacityUnits" .=) <$>
_ugtsGlobalTableProvisionedWriteCapacityUnits,
("ReplicaSettingsUpdate" .=) <$>
_ugtsReplicaSettingsUpdate,
("GlobalTableGlobalSecondaryIndexSettingsUpdate" .=)
<$>
_ugtsGlobalTableGlobalSecondaryIndexSettingsUpdate,
Just ("GlobalTableName" .= _ugtsGlobalTableName)])
instance ToPath UpdateGlobalTableSettings where
toPath = const "/"
instance ToQuery UpdateGlobalTableSettings where
toQuery = const mempty
-- | /See:/ 'updateGlobalTableSettingsResponse' smart constructor.
data UpdateGlobalTableSettingsResponse = UpdateGlobalTableSettingsResponse'
{ _ugtsrsReplicaSettings :: !(Maybe [ReplicaSettingsDescription])
, _ugtsrsGlobalTableName :: !(Maybe Text)
, _ugtsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateGlobalTableSettingsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ugtsrsReplicaSettings' - The region specific settings for the global table.
--
-- * 'ugtsrsGlobalTableName' - The name of the global table.
--
-- * 'ugtsrsResponseStatus' - -- | The response status code.
updateGlobalTableSettingsResponse
:: Int -- ^ 'ugtsrsResponseStatus'
-> UpdateGlobalTableSettingsResponse
updateGlobalTableSettingsResponse pResponseStatus_ =
UpdateGlobalTableSettingsResponse'
{ _ugtsrsReplicaSettings = Nothing
, _ugtsrsGlobalTableName = Nothing
, _ugtsrsResponseStatus = pResponseStatus_
}
-- | The region specific settings for the global table.
ugtsrsReplicaSettings :: Lens' UpdateGlobalTableSettingsResponse [ReplicaSettingsDescription]
ugtsrsReplicaSettings = lens _ugtsrsReplicaSettings (\ s a -> s{_ugtsrsReplicaSettings = a}) . _Default . _Coerce
-- | The name of the global table.
ugtsrsGlobalTableName :: Lens' UpdateGlobalTableSettingsResponse (Maybe Text)
ugtsrsGlobalTableName = lens _ugtsrsGlobalTableName (\ s a -> s{_ugtsrsGlobalTableName = a})
-- | -- | The response status code.
ugtsrsResponseStatus :: Lens' UpdateGlobalTableSettingsResponse Int
ugtsrsResponseStatus = lens _ugtsrsResponseStatus (\ s a -> s{_ugtsrsResponseStatus = a})
instance NFData UpdateGlobalTableSettingsResponse
where