{-# 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.CodeStar.AssociateTeamMember
(
associateTeamMember
, AssociateTeamMember
, atmRemoteAccessAllowed
, atmClientRequestToken
, atmProjectId
, atmUserARN
, atmProjectRole
, associateTeamMemberResponse
, AssociateTeamMemberResponse
, atmrsClientRequestToken
, atmrsResponseStatus
) where
import Network.AWS.CodeStar.Types
import Network.AWS.CodeStar.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data AssociateTeamMember = AssociateTeamMember'
{ _atmRemoteAccessAllowed :: !(Maybe Bool)
, _atmClientRequestToken :: !(Maybe Text)
, _atmProjectId :: !Text
, _atmUserARN :: !Text
, _atmProjectRole :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
associateTeamMember
:: Text
-> Text
-> Text
-> AssociateTeamMember
associateTeamMember pProjectId_ pUserARN_ pProjectRole_ =
AssociateTeamMember'
{ _atmRemoteAccessAllowed = Nothing
, _atmClientRequestToken = Nothing
, _atmProjectId = pProjectId_
, _atmUserARN = pUserARN_
, _atmProjectRole = pProjectRole_
}
atmRemoteAccessAllowed :: Lens' AssociateTeamMember (Maybe Bool)
atmRemoteAccessAllowed = lens _atmRemoteAccessAllowed (\ s a -> s{_atmRemoteAccessAllowed = a})
atmClientRequestToken :: Lens' AssociateTeamMember (Maybe Text)
atmClientRequestToken = lens _atmClientRequestToken (\ s a -> s{_atmClientRequestToken = a})
atmProjectId :: Lens' AssociateTeamMember Text
atmProjectId = lens _atmProjectId (\ s a -> s{_atmProjectId = a})
atmUserARN :: Lens' AssociateTeamMember Text
atmUserARN = lens _atmUserARN (\ s a -> s{_atmUserARN = a})
atmProjectRole :: Lens' AssociateTeamMember Text
atmProjectRole = lens _atmProjectRole (\ s a -> s{_atmProjectRole = a})
instance AWSRequest AssociateTeamMember where
type Rs AssociateTeamMember =
AssociateTeamMemberResponse
request = postJSON codeStar
response
= receiveJSON
(\ s h x ->
AssociateTeamMemberResponse' <$>
(x .?> "clientRequestToken") <*> (pure (fromEnum s)))
instance Hashable AssociateTeamMember where
instance NFData AssociateTeamMember where
instance ToHeaders AssociateTeamMember where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeStar_20170419.AssociateTeamMember" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AssociateTeamMember where
toJSON AssociateTeamMember'{..}
= object
(catMaybes
[("remoteAccessAllowed" .=) <$>
_atmRemoteAccessAllowed,
("clientRequestToken" .=) <$> _atmClientRequestToken,
Just ("projectId" .= _atmProjectId),
Just ("userArn" .= _atmUserARN),
Just ("projectRole" .= _atmProjectRole)])
instance ToPath AssociateTeamMember where
toPath = const "/"
instance ToQuery AssociateTeamMember where
toQuery = const mempty
data AssociateTeamMemberResponse = AssociateTeamMemberResponse'
{ _atmrsClientRequestToken :: !(Maybe Text)
, _atmrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
associateTeamMemberResponse
:: Int
-> AssociateTeamMemberResponse
associateTeamMemberResponse pResponseStatus_ =
AssociateTeamMemberResponse'
{ _atmrsClientRequestToken = Nothing
, _atmrsResponseStatus = pResponseStatus_
}
atmrsClientRequestToken :: Lens' AssociateTeamMemberResponse (Maybe Text)
atmrsClientRequestToken = lens _atmrsClientRequestToken (\ s a -> s{_atmrsClientRequestToken = a})
atmrsResponseStatus :: Lens' AssociateTeamMemberResponse Int
atmrsResponseStatus = lens _atmrsResponseStatus (\ s a -> s{_atmrsResponseStatus = a})
instance NFData AssociateTeamMemberResponse where