{-# 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 #-}
module Network.AWS.EMR.ModifyInstanceGroups
(
modifyInstanceGroups
, ModifyInstanceGroups
, migClusterId
, migInstanceGroups
, modifyInstanceGroupsResponse
, ModifyInstanceGroupsResponse
) where
import Network.AWS.EMR.Types
import Network.AWS.EMR.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ModifyInstanceGroups = ModifyInstanceGroups'
{ _migClusterId :: !(Maybe Text)
, _migInstanceGroups :: !(Maybe [InstanceGroupModifyConfig])
} deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyInstanceGroups
:: ModifyInstanceGroups
modifyInstanceGroups =
ModifyInstanceGroups' {_migClusterId = Nothing, _migInstanceGroups = Nothing}
migClusterId :: Lens' ModifyInstanceGroups (Maybe Text)
migClusterId = lens _migClusterId (\ s a -> s{_migClusterId = a})
migInstanceGroups :: Lens' ModifyInstanceGroups [InstanceGroupModifyConfig]
migInstanceGroups = lens _migInstanceGroups (\ s a -> s{_migInstanceGroups = a}) . _Default . _Coerce
instance AWSRequest ModifyInstanceGroups where
type Rs ModifyInstanceGroups =
ModifyInstanceGroupsResponse
request = postJSON emr
response = receiveNull ModifyInstanceGroupsResponse'
instance Hashable ModifyInstanceGroups where
instance NFData ModifyInstanceGroups where
instance ToHeaders ModifyInstanceGroups where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("ElasticMapReduce.ModifyInstanceGroups" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ModifyInstanceGroups where
toJSON ModifyInstanceGroups'{..}
= object
(catMaybes
[("ClusterId" .=) <$> _migClusterId,
("InstanceGroups" .=) <$> _migInstanceGroups])
instance ToPath ModifyInstanceGroups where
toPath = const "/"
instance ToQuery ModifyInstanceGroups where
toQuery = const mempty
data ModifyInstanceGroupsResponse =
ModifyInstanceGroupsResponse'
deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyInstanceGroupsResponse
:: ModifyInstanceGroupsResponse
modifyInstanceGroupsResponse = ModifyInstanceGroupsResponse'
instance NFData ModifyInstanceGroupsResponse where