{-# 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.AlexaBusiness.GetRoomSkillParameter -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Gets room skill parameter details by room, skill, and parameter key ARN. -- -- module Network.AWS.AlexaBusiness.GetRoomSkillParameter ( -- * Creating a Request getRoomSkillParameter , GetRoomSkillParameter -- * Request Lenses , grspRoomARN , grspSkillId , grspParameterKey -- * Destructuring the Response , getRoomSkillParameterResponse , GetRoomSkillParameterResponse -- * Response Lenses , grsprsRoomSkillParameter , grsprsResponseStatus ) where import Network.AWS.AlexaBusiness.Types import Network.AWS.AlexaBusiness.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'getRoomSkillParameter' smart constructor. data GetRoomSkillParameter = GetRoomSkillParameter' { _grspRoomARN :: !(Maybe Text) , _grspSkillId :: !Text , _grspParameterKey :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetRoomSkillParameter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'grspRoomARN' - The ARN of the room from which to get the room skill parameter details. -- -- * 'grspSkillId' - The ARN of the skill from which to get the room skill parameter details. Required. -- -- * 'grspParameterKey' - The room skill parameter key for which to get details. Required. getRoomSkillParameter :: Text -- ^ 'grspSkillId' -> Text -- ^ 'grspParameterKey' -> GetRoomSkillParameter getRoomSkillParameter pSkillId_ pParameterKey_ = GetRoomSkillParameter' { _grspRoomARN = Nothing , _grspSkillId = pSkillId_ , _grspParameterKey = pParameterKey_ } -- | The ARN of the room from which to get the room skill parameter details. grspRoomARN :: Lens' GetRoomSkillParameter (Maybe Text) grspRoomARN = lens _grspRoomARN (\ s a -> s{_grspRoomARN = a}) -- | The ARN of the skill from which to get the room skill parameter details. Required. grspSkillId :: Lens' GetRoomSkillParameter Text grspSkillId = lens _grspSkillId (\ s a -> s{_grspSkillId = a}) -- | The room skill parameter key for which to get details. Required. grspParameterKey :: Lens' GetRoomSkillParameter Text grspParameterKey = lens _grspParameterKey (\ s a -> s{_grspParameterKey = a}) instance AWSRequest GetRoomSkillParameter where type Rs GetRoomSkillParameter = GetRoomSkillParameterResponse request = postJSON alexaBusiness response = receiveJSON (\ s h x -> GetRoomSkillParameterResponse' <$> (x .?> "RoomSkillParameter") <*> (pure (fromEnum s))) instance Hashable GetRoomSkillParameter where instance NFData GetRoomSkillParameter where instance ToHeaders GetRoomSkillParameter where toHeaders = const (mconcat ["X-Amz-Target" =# ("AlexaForBusiness.GetRoomSkillParameter" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetRoomSkillParameter where toJSON GetRoomSkillParameter'{..} = object (catMaybes [("RoomArn" .=) <$> _grspRoomARN, Just ("SkillId" .= _grspSkillId), Just ("ParameterKey" .= _grspParameterKey)]) instance ToPath GetRoomSkillParameter where toPath = const "/" instance ToQuery GetRoomSkillParameter where toQuery = const mempty -- | /See:/ 'getRoomSkillParameterResponse' smart constructor. data GetRoomSkillParameterResponse = GetRoomSkillParameterResponse' { _grsprsRoomSkillParameter :: !(Maybe RoomSkillParameter) , _grsprsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetRoomSkillParameterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'grsprsRoomSkillParameter' - The details of the room skill parameter requested. Required. -- -- * 'grsprsResponseStatus' - -- | The response status code. getRoomSkillParameterResponse :: Int -- ^ 'grsprsResponseStatus' -> GetRoomSkillParameterResponse getRoomSkillParameterResponse pResponseStatus_ = GetRoomSkillParameterResponse' { _grsprsRoomSkillParameter = Nothing , _grsprsResponseStatus = pResponseStatus_ } -- | The details of the room skill parameter requested. Required. grsprsRoomSkillParameter :: Lens' GetRoomSkillParameterResponse (Maybe RoomSkillParameter) grsprsRoomSkillParameter = lens _grsprsRoomSkillParameter (\ s a -> s{_grsprsRoomSkillParameter = a}) -- | -- | The response status code. grsprsResponseStatus :: Lens' GetRoomSkillParameterResponse Int grsprsResponseStatus = lens _grsprsResponseStatus (\ s a -> s{_grsprsResponseStatus = a}) instance NFData GetRoomSkillParameterResponse where