{-# 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.IAM.GetPolicyVersion -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves information about the specified version of the specified managed policy, including the policy document. -- -- Policies returned by this API are URL-encoded compliant with . You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the 'decode' method of the 'java.net.URLDecoder' utility class in the Java SDK. Other languages and SDKs provide similar functionality. -- -- To list the available versions for a policy, use < ListPolicyVersions>. -- -- This API retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use the < GetUserPolicy>, < GetGroupPolicy>, or < GetRolePolicy> API. -- -- For more information about the types of policies, see in the /IAM User Guide/. -- -- For more information about managed policy versions, see in the /IAM User Guide/. module Network.AWS.IAM.GetPolicyVersion ( -- * Creating a Request getPolicyVersion , GetPolicyVersion -- * Request Lenses , gpvPolicyARN , gpvVersionId -- * Destructuring the Response , getPolicyVersionResponse , GetPolicyVersionResponse -- * Response Lenses , gpvrsPolicyVersion , gpvrsResponseStatus ) where import Network.AWS.IAM.Types import Network.AWS.IAM.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'getPolicyVersion' smart constructor. data GetPolicyVersion = GetPolicyVersion' { _gpvPolicyARN :: !Text , _gpvVersionId :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetPolicyVersion' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gpvPolicyARN' -- -- * 'gpvVersionId' getPolicyVersion :: Text -- ^ 'gpvPolicyARN' -> Text -- ^ 'gpvVersionId' -> GetPolicyVersion getPolicyVersion pPolicyARN_ pVersionId_ = GetPolicyVersion' { _gpvPolicyARN = pPolicyARN_ , _gpvVersionId = pVersionId_ } -- | The Amazon Resource Name (ARN) of the managed policy that you want information about. -- -- For more information about ARNs, see in the /AWS General Reference/. gpvPolicyARN :: Lens' GetPolicyVersion Text gpvPolicyARN = lens _gpvPolicyARN (\ s a -> s{_gpvPolicyARN = a}); -- | Identifies the policy version to retrieve. -- -- The for this parameter is a string of characters that consists of the lowercase letter \'v\' followed by one or two digits, and optionally followed by a period \'.\' and a string of letters and digits. gpvVersionId :: Lens' GetPolicyVersion Text gpvVersionId = lens _gpvVersionId (\ s a -> s{_gpvVersionId = a}); instance AWSRequest GetPolicyVersion where type Rs GetPolicyVersion = GetPolicyVersionResponse request = postQuery iam response = receiveXMLWrapper "GetPolicyVersionResult" (\ s h x -> GetPolicyVersionResponse' <$> (x .@? "PolicyVersion") <*> (pure (fromEnum s))) instance Hashable GetPolicyVersion instance NFData GetPolicyVersion instance ToHeaders GetPolicyVersion where toHeaders = const mempty instance ToPath GetPolicyVersion where toPath = const "/" instance ToQuery GetPolicyVersion where toQuery GetPolicyVersion'{..} = mconcat ["Action" =: ("GetPolicyVersion" :: ByteString), "Version" =: ("2010-05-08" :: ByteString), "PolicyArn" =: _gpvPolicyARN, "VersionId" =: _gpvVersionId] -- | Contains the response to a successful < GetPolicyVersion> request. -- -- /See:/ 'getPolicyVersionResponse' smart constructor. data GetPolicyVersionResponse = GetPolicyVersionResponse' { _gpvrsPolicyVersion :: !(Maybe PolicyVersion) , _gpvrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetPolicyVersionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gpvrsPolicyVersion' -- -- * 'gpvrsResponseStatus' getPolicyVersionResponse :: Int -- ^ 'gpvrsResponseStatus' -> GetPolicyVersionResponse getPolicyVersionResponse pResponseStatus_ = GetPolicyVersionResponse' { _gpvrsPolicyVersion = Nothing , _gpvrsResponseStatus = pResponseStatus_ } -- | A structure containing details about the policy version. gpvrsPolicyVersion :: Lens' GetPolicyVersionResponse (Maybe PolicyVersion) gpvrsPolicyVersion = lens _gpvrsPolicyVersion (\ s a -> s{_gpvrsPolicyVersion = a}); -- | The response status code. gpvrsResponseStatus :: Lens' GetPolicyVersionResponse Int gpvrsResponseStatus = lens _gpvrsResponseStatus (\ s a -> s{_gpvrsResponseStatus = a}); instance NFData GetPolicyVersionResponse