{-# 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.Greengrass.AssociateServiceRoleToAccount
(
associateServiceRoleToAccount
, AssociateServiceRoleToAccount
, asrtaRoleARN
, associateServiceRoleToAccountResponse
, AssociateServiceRoleToAccountResponse
, asrtarsAssociatedAt
, asrtarsResponseStatus
) where
import Network.AWS.Greengrass.Types
import Network.AWS.Greengrass.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype AssociateServiceRoleToAccount = AssociateServiceRoleToAccount'
{ _asrtaRoleARN :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
associateServiceRoleToAccount
:: AssociateServiceRoleToAccount
associateServiceRoleToAccount =
AssociateServiceRoleToAccount' {_asrtaRoleARN = Nothing}
asrtaRoleARN :: Lens' AssociateServiceRoleToAccount (Maybe Text)
asrtaRoleARN = lens _asrtaRoleARN (\ s a -> s{_asrtaRoleARN = a})
instance AWSRequest AssociateServiceRoleToAccount
where
type Rs AssociateServiceRoleToAccount =
AssociateServiceRoleToAccountResponse
request = putJSON greengrass
response
= receiveJSON
(\ s h x ->
AssociateServiceRoleToAccountResponse' <$>
(x .?> "AssociatedAt") <*> (pure (fromEnum s)))
instance Hashable AssociateServiceRoleToAccount where
instance NFData AssociateServiceRoleToAccount where
instance ToHeaders AssociateServiceRoleToAccount
where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AssociateServiceRoleToAccount where
toJSON AssociateServiceRoleToAccount'{..}
= object
(catMaybes [("RoleArn" .=) <$> _asrtaRoleARN])
instance ToPath AssociateServiceRoleToAccount where
toPath = const "/greengrass/servicerole"
instance ToQuery AssociateServiceRoleToAccount where
toQuery = const mempty
data AssociateServiceRoleToAccountResponse = AssociateServiceRoleToAccountResponse'
{ _asrtarsAssociatedAt :: !(Maybe Text)
, _asrtarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
associateServiceRoleToAccountResponse
:: Int
-> AssociateServiceRoleToAccountResponse
associateServiceRoleToAccountResponse pResponseStatus_ =
AssociateServiceRoleToAccountResponse'
{_asrtarsAssociatedAt = Nothing, _asrtarsResponseStatus = pResponseStatus_}
asrtarsAssociatedAt :: Lens' AssociateServiceRoleToAccountResponse (Maybe Text)
asrtarsAssociatedAt = lens _asrtarsAssociatedAt (\ s a -> s{_asrtarsAssociatedAt = a})
asrtarsResponseStatus :: Lens' AssociateServiceRoleToAccountResponse Int
asrtarsResponseStatus = lens _asrtarsResponseStatus (\ s a -> s{_asrtarsResponseStatus = a})
instance NFData AssociateServiceRoleToAccountResponse
where