{-# 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.CreateUserProfile
(
createUserProfile
, CreateUserProfile
, cupSshPublicKey
, cupUserARN
, cupDisplayName
, cupEmailAddress
, createUserProfileResponse
, CreateUserProfileResponse
, cuprsLastModifiedTimestamp
, cuprsSshPublicKey
, cuprsEmailAddress
, cuprsDisplayName
, cuprsCreatedTimestamp
, cuprsResponseStatus
, cuprsUserARN
) 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 CreateUserProfile = CreateUserProfile'
{ _cupSshPublicKey :: !(Maybe Text)
, _cupUserARN :: !Text
, _cupDisplayName :: !Text
, _cupEmailAddress :: !(Sensitive Text)
} deriving (Eq, Show, Data, Typeable, Generic)
createUserProfile
:: Text
-> Text
-> Text
-> CreateUserProfile
createUserProfile pUserARN_ pDisplayName_ pEmailAddress_ =
CreateUserProfile'
{ _cupSshPublicKey = Nothing
, _cupUserARN = pUserARN_
, _cupDisplayName = pDisplayName_
, _cupEmailAddress = _Sensitive # pEmailAddress_
}
cupSshPublicKey :: Lens' CreateUserProfile (Maybe Text)
cupSshPublicKey = lens _cupSshPublicKey (\ s a -> s{_cupSshPublicKey = a})
cupUserARN :: Lens' CreateUserProfile Text
cupUserARN = lens _cupUserARN (\ s a -> s{_cupUserARN = a})
cupDisplayName :: Lens' CreateUserProfile Text
cupDisplayName = lens _cupDisplayName (\ s a -> s{_cupDisplayName = a})
cupEmailAddress :: Lens' CreateUserProfile Text
cupEmailAddress = lens _cupEmailAddress (\ s a -> s{_cupEmailAddress = a}) . _Sensitive
instance AWSRequest CreateUserProfile where
type Rs CreateUserProfile = CreateUserProfileResponse
request = postJSON codeStar
response
= receiveJSON
(\ s h x ->
CreateUserProfileResponse' <$>
(x .?> "lastModifiedTimestamp") <*>
(x .?> "sshPublicKey")
<*> (x .?> "emailAddress")
<*> (x .?> "displayName")
<*> (x .?> "createdTimestamp")
<*> (pure (fromEnum s))
<*> (x .:> "userArn"))
instance Hashable CreateUserProfile where
instance NFData CreateUserProfile where
instance ToHeaders CreateUserProfile where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeStar_20170419.CreateUserProfile" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateUserProfile where
toJSON CreateUserProfile'{..}
= object
(catMaybes
[("sshPublicKey" .=) <$> _cupSshPublicKey,
Just ("userArn" .= _cupUserARN),
Just ("displayName" .= _cupDisplayName),
Just ("emailAddress" .= _cupEmailAddress)])
instance ToPath CreateUserProfile where
toPath = const "/"
instance ToQuery CreateUserProfile where
toQuery = const mempty
data CreateUserProfileResponse = CreateUserProfileResponse'
{ _cuprsLastModifiedTimestamp :: !(Maybe POSIX)
, _cuprsSshPublicKey :: !(Maybe Text)
, _cuprsEmailAddress :: !(Maybe (Sensitive Text))
, _cuprsDisplayName :: !(Maybe Text)
, _cuprsCreatedTimestamp :: !(Maybe POSIX)
, _cuprsResponseStatus :: !Int
, _cuprsUserARN :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
createUserProfileResponse
:: Int
-> Text
-> CreateUserProfileResponse
createUserProfileResponse pResponseStatus_ pUserARN_ =
CreateUserProfileResponse'
{ _cuprsLastModifiedTimestamp = Nothing
, _cuprsSshPublicKey = Nothing
, _cuprsEmailAddress = Nothing
, _cuprsDisplayName = Nothing
, _cuprsCreatedTimestamp = Nothing
, _cuprsResponseStatus = pResponseStatus_
, _cuprsUserARN = pUserARN_
}
cuprsLastModifiedTimestamp :: Lens' CreateUserProfileResponse (Maybe UTCTime)
cuprsLastModifiedTimestamp = lens _cuprsLastModifiedTimestamp (\ s a -> s{_cuprsLastModifiedTimestamp = a}) . mapping _Time
cuprsSshPublicKey :: Lens' CreateUserProfileResponse (Maybe Text)
cuprsSshPublicKey = lens _cuprsSshPublicKey (\ s a -> s{_cuprsSshPublicKey = a})
cuprsEmailAddress :: Lens' CreateUserProfileResponse (Maybe Text)
cuprsEmailAddress = lens _cuprsEmailAddress (\ s a -> s{_cuprsEmailAddress = a}) . mapping _Sensitive
cuprsDisplayName :: Lens' CreateUserProfileResponse (Maybe Text)
cuprsDisplayName = lens _cuprsDisplayName (\ s a -> s{_cuprsDisplayName = a})
cuprsCreatedTimestamp :: Lens' CreateUserProfileResponse (Maybe UTCTime)
cuprsCreatedTimestamp = lens _cuprsCreatedTimestamp (\ s a -> s{_cuprsCreatedTimestamp = a}) . mapping _Time
cuprsResponseStatus :: Lens' CreateUserProfileResponse Int
cuprsResponseStatus = lens _cuprsResponseStatus (\ s a -> s{_cuprsResponseStatus = a})
cuprsUserARN :: Lens' CreateUserProfileResponse Text
cuprsUserARN = lens _cuprsUserARN (\ s a -> s{_cuprsUserARN = a})
instance NFData CreateUserProfileResponse where