amazonka-iam-1.3.0: gen/Network/AWS/IAM/GetOpenIdConnectProvider.hs
{-# 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.GetOpenIdConnectProvider
-- Copyright : (c) 2013-2015 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about the specified OpenID Connect provider.
--
-- /See:/ <http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIdConnectProvider.html AWS API Reference> for GetOpenIdConnectProvider.
module Network.AWS.IAM.GetOpenIdConnectProvider
(
-- * Creating a Request
getOpenIdConnectProvider
, GetOpenIdConnectProvider
-- * Request Lenses
, goicpOpenIdConnectProviderARN
-- * Destructuring the Response
, getOpenIdConnectProviderResponse
, GetOpenIdConnectProviderResponse
-- * Response Lenses
, goicprsCreateDate
, goicprsURL
, goicprsThumbprintList
, goicprsClientIdList
, goicprsResponseStatus
) where
import Network.AWS.IAM.Types
import Network.AWS.IAM.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'getOpenIdConnectProvider' smart constructor.
newtype GetOpenIdConnectProvider = GetOpenIdConnectProvider'
{ _goicpOpenIdConnectProviderARN :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetOpenIdConnectProvider' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'goicpOpenIdConnectProviderARN'
getOpenIdConnectProvider
:: Text -- ^ 'goicpOpenIdConnectProviderARN'
-> GetOpenIdConnectProvider
getOpenIdConnectProvider pOpenIdConnectProviderARN_ =
GetOpenIdConnectProvider'
{ _goicpOpenIdConnectProviderARN = pOpenIdConnectProviderARN_
}
-- | The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
-- to get information for. You can get a list of OIDC provider ARNs by
-- using the ListOpenIDConnectProviders action.
goicpOpenIdConnectProviderARN :: Lens' GetOpenIdConnectProvider Text
goicpOpenIdConnectProviderARN = lens _goicpOpenIdConnectProviderARN (\ s a -> s{_goicpOpenIdConnectProviderARN = a});
instance AWSRequest GetOpenIdConnectProvider where
type Rs GetOpenIdConnectProvider =
GetOpenIdConnectProviderResponse
request = postQuery iAM
response
= receiveXMLWrapper "GetOpenIDConnectProviderResult"
(\ s h x ->
GetOpenIdConnectProviderResponse' <$>
(x .@? "CreateDate") <*> (x .@? "Url") <*>
(x .@? "ThumbprintList" .!@ mempty >>=
may (parseXMLList "member"))
<*>
(x .@? "ClientIDList" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance ToHeaders GetOpenIdConnectProvider where
toHeaders = const mempty
instance ToPath GetOpenIdConnectProvider where
toPath = const "/"
instance ToQuery GetOpenIdConnectProvider where
toQuery GetOpenIdConnectProvider'{..}
= mconcat
["Action" =:
("GetOpenIDConnectProvider" :: ByteString),
"Version" =: ("2010-05-08" :: ByteString),
"OpenIDConnectProviderArn" =:
_goicpOpenIdConnectProviderARN]
-- | Contains the response to a successful GetOpenIDConnectProvider request.
--
-- /See:/ 'getOpenIdConnectProviderResponse' smart constructor.
data GetOpenIdConnectProviderResponse = GetOpenIdConnectProviderResponse'
{ _goicprsCreateDate :: !(Maybe ISO8601)
, _goicprsURL :: !(Maybe Text)
, _goicprsThumbprintList :: !(Maybe [Text])
, _goicprsClientIdList :: !(Maybe [Text])
, _goicprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetOpenIdConnectProviderResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'goicprsCreateDate'
--
-- * 'goicprsURL'
--
-- * 'goicprsThumbprintList'
--
-- * 'goicprsClientIdList'
--
-- * 'goicprsResponseStatus'
getOpenIdConnectProviderResponse
:: Int -- ^ 'goicprsResponseStatus'
-> GetOpenIdConnectProviderResponse
getOpenIdConnectProviderResponse pResponseStatus_ =
GetOpenIdConnectProviderResponse'
{ _goicprsCreateDate = Nothing
, _goicprsURL = Nothing
, _goicprsThumbprintList = Nothing
, _goicprsClientIdList = Nothing
, _goicprsResponseStatus = pResponseStatus_
}
-- | The date and time when the IAM OpenID Connect provider entity was
-- created in the AWS account.
goicprsCreateDate :: Lens' GetOpenIdConnectProviderResponse (Maybe UTCTime)
goicprsCreateDate = lens _goicprsCreateDate (\ s a -> s{_goicprsCreateDate = a}) . mapping _Time;
-- | The URL that the IAM OpenID Connect provider is associated with. For
-- more information, see CreateOpenIDConnectProvider.
goicprsURL :: Lens' GetOpenIdConnectProviderResponse (Maybe Text)
goicprsURL = lens _goicprsURL (\ s a -> s{_goicprsURL = a});
-- | A list of certificate thumbprints that are associated with the specified
-- IAM OpenID Connect provider. For more information, see
-- CreateOpenIDConnectProvider.
goicprsThumbprintList :: Lens' GetOpenIdConnectProviderResponse [Text]
goicprsThumbprintList = lens _goicprsThumbprintList (\ s a -> s{_goicprsThumbprintList = a}) . _Default . _Coerce;
-- | A list of client IDs (also known as audiences) that are associated with
-- the specified IAM OpenID Connect provider. For more information, see
-- CreateOpenIDConnectProvider.
goicprsClientIdList :: Lens' GetOpenIdConnectProviderResponse [Text]
goicprsClientIdList = lens _goicprsClientIdList (\ s a -> s{_goicprsClientIdList = a}) . _Default . _Coerce;
-- | The response status code.
goicprsResponseStatus :: Lens' GetOpenIdConnectProviderResponse Int
goicprsResponseStatus = lens _goicprsResponseStatus (\ s a -> s{_goicprsResponseStatus = a});