{-# 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.EMR.AddInstanceFleet -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Adds an instance fleet to a running cluster. -- -- module Network.AWS.EMR.AddInstanceFleet ( -- * Creating a Request addInstanceFleet , AddInstanceFleet -- * Request Lenses , aifClusterId , aifInstanceFleet -- * Destructuring the Response , addInstanceFleetResponse , AddInstanceFleetResponse -- * Response Lenses , aifrsClusterId , aifrsInstanceFleetId , aifrsResponseStatus ) 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 -- | /See:/ 'addInstanceFleet' smart constructor. data AddInstanceFleet = AddInstanceFleet' { _aifClusterId :: !Text , _aifInstanceFleet :: !InstanceFleetConfig } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'AddInstanceFleet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aifClusterId' - The unique identifier of the cluster. -- -- * 'aifInstanceFleet' - Specifies the configuration of the instance fleet. addInstanceFleet :: Text -- ^ 'aifClusterId' -> InstanceFleetConfig -- ^ 'aifInstanceFleet' -> AddInstanceFleet addInstanceFleet pClusterId_ pInstanceFleet_ = AddInstanceFleet' {_aifClusterId = pClusterId_, _aifInstanceFleet = pInstanceFleet_} -- | The unique identifier of the cluster. aifClusterId :: Lens' AddInstanceFleet Text aifClusterId = lens _aifClusterId (\ s a -> s{_aifClusterId = a}) -- | Specifies the configuration of the instance fleet. aifInstanceFleet :: Lens' AddInstanceFleet InstanceFleetConfig aifInstanceFleet = lens _aifInstanceFleet (\ s a -> s{_aifInstanceFleet = a}) instance AWSRequest AddInstanceFleet where type Rs AddInstanceFleet = AddInstanceFleetResponse request = postJSON emr response = receiveJSON (\ s h x -> AddInstanceFleetResponse' <$> (x .?> "ClusterId") <*> (x .?> "InstanceFleetId") <*> (pure (fromEnum s))) instance Hashable AddInstanceFleet where instance NFData AddInstanceFleet where instance ToHeaders AddInstanceFleet where toHeaders = const (mconcat ["X-Amz-Target" =# ("ElasticMapReduce.AddInstanceFleet" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON AddInstanceFleet where toJSON AddInstanceFleet'{..} = object (catMaybes [Just ("ClusterId" .= _aifClusterId), Just ("InstanceFleet" .= _aifInstanceFleet)]) instance ToPath AddInstanceFleet where toPath = const "/" instance ToQuery AddInstanceFleet where toQuery = const mempty -- | /See:/ 'addInstanceFleetResponse' smart constructor. data AddInstanceFleetResponse = AddInstanceFleetResponse' { _aifrsClusterId :: !(Maybe Text) , _aifrsInstanceFleetId :: !(Maybe Text) , _aifrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'AddInstanceFleetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aifrsClusterId' - The unique identifier of the cluster. -- -- * 'aifrsInstanceFleetId' - The unique identifier of the instance fleet. -- -- * 'aifrsResponseStatus' - -- | The response status code. addInstanceFleetResponse :: Int -- ^ 'aifrsResponseStatus' -> AddInstanceFleetResponse addInstanceFleetResponse pResponseStatus_ = AddInstanceFleetResponse' { _aifrsClusterId = Nothing , _aifrsInstanceFleetId = Nothing , _aifrsResponseStatus = pResponseStatus_ } -- | The unique identifier of the cluster. aifrsClusterId :: Lens' AddInstanceFleetResponse (Maybe Text) aifrsClusterId = lens _aifrsClusterId (\ s a -> s{_aifrsClusterId = a}) -- | The unique identifier of the instance fleet. aifrsInstanceFleetId :: Lens' AddInstanceFleetResponse (Maybe Text) aifrsInstanceFleetId = lens _aifrsInstanceFleetId (\ s a -> s{_aifrsInstanceFleetId = a}) -- | -- | The response status code. aifrsResponseStatus :: Lens' AddInstanceFleetResponse Int aifrsResponseStatus = lens _aifrsResponseStatus (\ s a -> s{_aifrsResponseStatus = a}) instance NFData AddInstanceFleetResponse where