{-# 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.IoT.CreateRoleAlias
(
createRoleAlias
, CreateRoleAlias
, craCredentialDurationSeconds
, craRoleAlias
, craRoleARN
, createRoleAliasResponse
, CreateRoleAliasResponse
, crarsRoleAliasARN
, crarsRoleAlias
, crarsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateRoleAlias = CreateRoleAlias'
{ _craCredentialDurationSeconds :: !(Maybe Nat)
, _craRoleAlias :: !Text
, _craRoleARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createRoleAlias
:: Text
-> Text
-> CreateRoleAlias
createRoleAlias pRoleAlias_ pRoleARN_ =
CreateRoleAlias'
{ _craCredentialDurationSeconds = Nothing
, _craRoleAlias = pRoleAlias_
, _craRoleARN = pRoleARN_
}
craCredentialDurationSeconds :: Lens' CreateRoleAlias (Maybe Natural)
craCredentialDurationSeconds = lens _craCredentialDurationSeconds (\ s a -> s{_craCredentialDurationSeconds = a}) . mapping _Nat
craRoleAlias :: Lens' CreateRoleAlias Text
craRoleAlias = lens _craRoleAlias (\ s a -> s{_craRoleAlias = a})
craRoleARN :: Lens' CreateRoleAlias Text
craRoleARN = lens _craRoleARN (\ s a -> s{_craRoleARN = a})
instance AWSRequest CreateRoleAlias where
type Rs CreateRoleAlias = CreateRoleAliasResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
CreateRoleAliasResponse' <$>
(x .?> "roleAliasArn") <*> (x .?> "roleAlias") <*>
(pure (fromEnum s)))
instance Hashable CreateRoleAlias where
instance NFData CreateRoleAlias where
instance ToHeaders CreateRoleAlias where
toHeaders = const mempty
instance ToJSON CreateRoleAlias where
toJSON CreateRoleAlias'{..}
= object
(catMaybes
[("credentialDurationSeconds" .=) <$>
_craCredentialDurationSeconds,
Just ("roleArn" .= _craRoleARN)])
instance ToPath CreateRoleAlias where
toPath CreateRoleAlias'{..}
= mconcat ["/role-aliases/", toBS _craRoleAlias]
instance ToQuery CreateRoleAlias where
toQuery = const mempty
data CreateRoleAliasResponse = CreateRoleAliasResponse'
{ _crarsRoleAliasARN :: !(Maybe Text)
, _crarsRoleAlias :: !(Maybe Text)
, _crarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createRoleAliasResponse
:: Int
-> CreateRoleAliasResponse
createRoleAliasResponse pResponseStatus_ =
CreateRoleAliasResponse'
{ _crarsRoleAliasARN = Nothing
, _crarsRoleAlias = Nothing
, _crarsResponseStatus = pResponseStatus_
}
crarsRoleAliasARN :: Lens' CreateRoleAliasResponse (Maybe Text)
crarsRoleAliasARN = lens _crarsRoleAliasARN (\ s a -> s{_crarsRoleAliasARN = a})
crarsRoleAlias :: Lens' CreateRoleAliasResponse (Maybe Text)
crarsRoleAlias = lens _crarsRoleAlias (\ s a -> s{_crarsRoleAlias = a})
crarsResponseStatus :: Lens' CreateRoleAliasResponse Int
crarsResponseStatus = lens _crarsResponseStatus (\ s a -> s{_crarsResponseStatus = a})
instance NFData CreateRoleAliasResponse where