{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.IAM.GetOpenIDConnectProvider
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about the specified OpenID Connect (OIDC) provider
-- resource object in IAM.
module Amazonka.IAM.GetOpenIDConnectProvider
  ( -- * Creating a Request
    GetOpenIDConnectProvider (..),
    newGetOpenIDConnectProvider,

    -- * Request Lenses
    getOpenIDConnectProvider_openIDConnectProviderArn,

    -- * Destructuring the Response
    GetOpenIDConnectProviderResponse (..),
    newGetOpenIDConnectProviderResponse,

    -- * Response Lenses
    getOpenIDConnectProviderResponse_clientIDList,
    getOpenIDConnectProviderResponse_createDate,
    getOpenIDConnectProviderResponse_tags,
    getOpenIDConnectProviderResponse_thumbprintList,
    getOpenIDConnectProviderResponse_url,
    getOpenIDConnectProviderResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IAM.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetOpenIDConnectProvider' smart constructor.
data GetOpenIDConnectProvider = GetOpenIDConnectProvider'
  { -- | The Amazon Resource Name (ARN) of the OIDC provider resource object in
    -- IAM to get information for. You can get a list of OIDC provider resource
    -- ARNs by using the ListOpenIDConnectProviders operation.
    --
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /Amazon Web Services General Reference/.
    GetOpenIDConnectProvider -> Text
openIDConnectProviderArn :: Prelude.Text
  }
  deriving (GetOpenIDConnectProvider -> GetOpenIDConnectProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetOpenIDConnectProvider -> GetOpenIDConnectProvider -> Bool
$c/= :: GetOpenIDConnectProvider -> GetOpenIDConnectProvider -> Bool
== :: GetOpenIDConnectProvider -> GetOpenIDConnectProvider -> Bool
$c== :: GetOpenIDConnectProvider -> GetOpenIDConnectProvider -> Bool
Prelude.Eq, ReadPrec [GetOpenIDConnectProvider]
ReadPrec GetOpenIDConnectProvider
Int -> ReadS GetOpenIDConnectProvider
ReadS [GetOpenIDConnectProvider]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetOpenIDConnectProvider]
$creadListPrec :: ReadPrec [GetOpenIDConnectProvider]
readPrec :: ReadPrec GetOpenIDConnectProvider
$creadPrec :: ReadPrec GetOpenIDConnectProvider
readList :: ReadS [GetOpenIDConnectProvider]
$creadList :: ReadS [GetOpenIDConnectProvider]
readsPrec :: Int -> ReadS GetOpenIDConnectProvider
$creadsPrec :: Int -> ReadS GetOpenIDConnectProvider
Prelude.Read, Int -> GetOpenIDConnectProvider -> ShowS
[GetOpenIDConnectProvider] -> ShowS
GetOpenIDConnectProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetOpenIDConnectProvider] -> ShowS
$cshowList :: [GetOpenIDConnectProvider] -> ShowS
show :: GetOpenIDConnectProvider -> String
$cshow :: GetOpenIDConnectProvider -> String
showsPrec :: Int -> GetOpenIDConnectProvider -> ShowS
$cshowsPrec :: Int -> GetOpenIDConnectProvider -> ShowS
Prelude.Show, forall x.
Rep GetOpenIDConnectProvider x -> GetOpenIDConnectProvider
forall x.
GetOpenIDConnectProvider -> Rep GetOpenIDConnectProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetOpenIDConnectProvider x -> GetOpenIDConnectProvider
$cfrom :: forall x.
GetOpenIDConnectProvider -> Rep GetOpenIDConnectProvider x
Prelude.Generic)

-- |
-- Create a value of 'GetOpenIDConnectProvider' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'openIDConnectProviderArn', 'getOpenIDConnectProvider_openIDConnectProviderArn' - The Amazon Resource Name (ARN) of the OIDC provider resource object in
-- IAM to get information for. You can get a list of OIDC provider resource
-- ARNs by using the ListOpenIDConnectProviders operation.
--
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /Amazon Web Services General Reference/.
newGetOpenIDConnectProvider ::
  -- | 'openIDConnectProviderArn'
  Prelude.Text ->
  GetOpenIDConnectProvider
newGetOpenIDConnectProvider :: Text -> GetOpenIDConnectProvider
newGetOpenIDConnectProvider
  Text
pOpenIDConnectProviderArn_ =
    GetOpenIDConnectProvider'
      { $sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: Text
openIDConnectProviderArn =
          Text
pOpenIDConnectProviderArn_
      }

-- | The Amazon Resource Name (ARN) of the OIDC provider resource object in
-- IAM to get information for. You can get a list of OIDC provider resource
-- ARNs by using the ListOpenIDConnectProviders operation.
--
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /Amazon Web Services General Reference/.
getOpenIDConnectProvider_openIDConnectProviderArn :: Lens.Lens' GetOpenIDConnectProvider Prelude.Text
getOpenIDConnectProvider_openIDConnectProviderArn :: Lens' GetOpenIDConnectProvider Text
getOpenIDConnectProvider_openIDConnectProviderArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProvider' {Text
openIDConnectProviderArn :: Text
$sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: GetOpenIDConnectProvider -> Text
openIDConnectProviderArn} -> Text
openIDConnectProviderArn) (\s :: GetOpenIDConnectProvider
s@GetOpenIDConnectProvider' {} Text
a -> GetOpenIDConnectProvider
s {$sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: Text
openIDConnectProviderArn = Text
a} :: GetOpenIDConnectProvider)

instance Core.AWSRequest GetOpenIDConnectProvider where
  type
    AWSResponse GetOpenIDConnectProvider =
      GetOpenIDConnectProviderResponse
  request :: (Service -> Service)
-> GetOpenIDConnectProvider -> Request GetOpenIDConnectProvider
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetOpenIDConnectProvider
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetOpenIDConnectProvider)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"GetOpenIDConnectProviderResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [Text]
-> Maybe ISO8601
-> Maybe [Tag]
-> Maybe [Text]
-> Maybe Text
-> Int
-> GetOpenIDConnectProviderResponse
GetOpenIDConnectProviderResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ClientIDList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"CreateDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Tags"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ThumbprintList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Url")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable GetOpenIDConnectProvider where
  hashWithSalt :: Int -> GetOpenIDConnectProvider -> Int
hashWithSalt Int
_salt GetOpenIDConnectProvider' {Text
openIDConnectProviderArn :: Text
$sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: GetOpenIDConnectProvider -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
openIDConnectProviderArn

instance Prelude.NFData GetOpenIDConnectProvider where
  rnf :: GetOpenIDConnectProvider -> ()
rnf GetOpenIDConnectProvider' {Text
openIDConnectProviderArn :: Text
$sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: GetOpenIDConnectProvider -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
openIDConnectProviderArn

instance Data.ToHeaders GetOpenIDConnectProvider where
  toHeaders :: GetOpenIDConnectProvider -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath GetOpenIDConnectProvider where
  toPath :: GetOpenIDConnectProvider -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery GetOpenIDConnectProvider where
  toQuery :: GetOpenIDConnectProvider -> QueryString
toQuery GetOpenIDConnectProvider' {Text
openIDConnectProviderArn :: Text
$sel:openIDConnectProviderArn:GetOpenIDConnectProvider' :: GetOpenIDConnectProvider -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"GetOpenIDConnectProvider" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-05-08" :: Prelude.ByteString),
        ByteString
"OpenIDConnectProviderArn"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
openIDConnectProviderArn
      ]

-- | Contains the response to a successful GetOpenIDConnectProvider request.
--
-- /See:/ 'newGetOpenIDConnectProviderResponse' smart constructor.
data GetOpenIDConnectProviderResponse = GetOpenIDConnectProviderResponse'
  { -- | A list of client IDs (also known as audiences) that are associated with
    -- the specified IAM OIDC provider resource object. For more information,
    -- see CreateOpenIDConnectProvider.
    GetOpenIDConnectProviderResponse -> Maybe [Text]
clientIDList :: Prelude.Maybe [Prelude.Text],
    -- | The date and time when the IAM OIDC provider resource object was created
    -- in the Amazon Web Services account.
    GetOpenIDConnectProviderResponse -> Maybe ISO8601
createDate :: Prelude.Maybe Data.ISO8601,
    -- | A list of tags that are attached to the specified IAM OIDC provider. The
    -- returned list of tags is sorted by tag key. For more information about
    -- tagging, see
    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html Tagging IAM resources>
    -- in the /IAM User Guide/.
    GetOpenIDConnectProviderResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | A list of certificate thumbprints that are associated with the specified
    -- IAM OIDC provider resource object. For more information, see
    -- CreateOpenIDConnectProvider.
    GetOpenIDConnectProviderResponse -> Maybe [Text]
thumbprintList :: Prelude.Maybe [Prelude.Text],
    -- | The URL that the IAM OIDC provider resource object is associated with.
    -- For more information, see CreateOpenIDConnectProvider.
    GetOpenIDConnectProviderResponse -> Maybe Text
url :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetOpenIDConnectProviderResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetOpenIDConnectProviderResponse
-> GetOpenIDConnectProviderResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetOpenIDConnectProviderResponse
-> GetOpenIDConnectProviderResponse -> Bool
$c/= :: GetOpenIDConnectProviderResponse
-> GetOpenIDConnectProviderResponse -> Bool
== :: GetOpenIDConnectProviderResponse
-> GetOpenIDConnectProviderResponse -> Bool
$c== :: GetOpenIDConnectProviderResponse
-> GetOpenIDConnectProviderResponse -> Bool
Prelude.Eq, ReadPrec [GetOpenIDConnectProviderResponse]
ReadPrec GetOpenIDConnectProviderResponse
Int -> ReadS GetOpenIDConnectProviderResponse
ReadS [GetOpenIDConnectProviderResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetOpenIDConnectProviderResponse]
$creadListPrec :: ReadPrec [GetOpenIDConnectProviderResponse]
readPrec :: ReadPrec GetOpenIDConnectProviderResponse
$creadPrec :: ReadPrec GetOpenIDConnectProviderResponse
readList :: ReadS [GetOpenIDConnectProviderResponse]
$creadList :: ReadS [GetOpenIDConnectProviderResponse]
readsPrec :: Int -> ReadS GetOpenIDConnectProviderResponse
$creadsPrec :: Int -> ReadS GetOpenIDConnectProviderResponse
Prelude.Read, Int -> GetOpenIDConnectProviderResponse -> ShowS
[GetOpenIDConnectProviderResponse] -> ShowS
GetOpenIDConnectProviderResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetOpenIDConnectProviderResponse] -> ShowS
$cshowList :: [GetOpenIDConnectProviderResponse] -> ShowS
show :: GetOpenIDConnectProviderResponse -> String
$cshow :: GetOpenIDConnectProviderResponse -> String
showsPrec :: Int -> GetOpenIDConnectProviderResponse -> ShowS
$cshowsPrec :: Int -> GetOpenIDConnectProviderResponse -> ShowS
Prelude.Show, forall x.
Rep GetOpenIDConnectProviderResponse x
-> GetOpenIDConnectProviderResponse
forall x.
GetOpenIDConnectProviderResponse
-> Rep GetOpenIDConnectProviderResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetOpenIDConnectProviderResponse x
-> GetOpenIDConnectProviderResponse
$cfrom :: forall x.
GetOpenIDConnectProviderResponse
-> Rep GetOpenIDConnectProviderResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetOpenIDConnectProviderResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'clientIDList', 'getOpenIDConnectProviderResponse_clientIDList' - A list of client IDs (also known as audiences) that are associated with
-- the specified IAM OIDC provider resource object. For more information,
-- see CreateOpenIDConnectProvider.
--
-- 'createDate', 'getOpenIDConnectProviderResponse_createDate' - The date and time when the IAM OIDC provider resource object was created
-- in the Amazon Web Services account.
--
-- 'tags', 'getOpenIDConnectProviderResponse_tags' - A list of tags that are attached to the specified IAM OIDC provider. The
-- returned list of tags is sorted by tag key. For more information about
-- tagging, see
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html Tagging IAM resources>
-- in the /IAM User Guide/.
--
-- 'thumbprintList', 'getOpenIDConnectProviderResponse_thumbprintList' - A list of certificate thumbprints that are associated with the specified
-- IAM OIDC provider resource object. For more information, see
-- CreateOpenIDConnectProvider.
--
-- 'url', 'getOpenIDConnectProviderResponse_url' - The URL that the IAM OIDC provider resource object is associated with.
-- For more information, see CreateOpenIDConnectProvider.
--
-- 'httpStatus', 'getOpenIDConnectProviderResponse_httpStatus' - The response's http status code.
newGetOpenIDConnectProviderResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetOpenIDConnectProviderResponse
newGetOpenIDConnectProviderResponse :: Int -> GetOpenIDConnectProviderResponse
newGetOpenIDConnectProviderResponse Int
pHttpStatus_ =
  GetOpenIDConnectProviderResponse'
    { $sel:clientIDList:GetOpenIDConnectProviderResponse' :: Maybe [Text]
clientIDList =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createDate:GetOpenIDConnectProviderResponse' :: Maybe ISO8601
createDate = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetOpenIDConnectProviderResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:thumbprintList:GetOpenIDConnectProviderResponse' :: Maybe [Text]
thumbprintList = forall a. Maybe a
Prelude.Nothing,
      $sel:url:GetOpenIDConnectProviderResponse' :: Maybe Text
url = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetOpenIDConnectProviderResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A list of client IDs (also known as audiences) that are associated with
-- the specified IAM OIDC provider resource object. For more information,
-- see CreateOpenIDConnectProvider.
getOpenIDConnectProviderResponse_clientIDList :: Lens.Lens' GetOpenIDConnectProviderResponse (Prelude.Maybe [Prelude.Text])
getOpenIDConnectProviderResponse_clientIDList :: Lens' GetOpenIDConnectProviderResponse (Maybe [Text])
getOpenIDConnectProviderResponse_clientIDList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Maybe [Text]
clientIDList :: Maybe [Text]
$sel:clientIDList:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Text]
clientIDList} -> Maybe [Text]
clientIDList) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Maybe [Text]
a -> GetOpenIDConnectProviderResponse
s {$sel:clientIDList:GetOpenIDConnectProviderResponse' :: Maybe [Text]
clientIDList = Maybe [Text]
a} :: GetOpenIDConnectProviderResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The date and time when the IAM OIDC provider resource object was created
-- in the Amazon Web Services account.
getOpenIDConnectProviderResponse_createDate :: Lens.Lens' GetOpenIDConnectProviderResponse (Prelude.Maybe Prelude.UTCTime)
getOpenIDConnectProviderResponse_createDate :: Lens' GetOpenIDConnectProviderResponse (Maybe UTCTime)
getOpenIDConnectProviderResponse_createDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Maybe ISO8601
createDate :: Maybe ISO8601
$sel:createDate:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe ISO8601
createDate} -> Maybe ISO8601
createDate) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Maybe ISO8601
a -> GetOpenIDConnectProviderResponse
s {$sel:createDate:GetOpenIDConnectProviderResponse' :: Maybe ISO8601
createDate = Maybe ISO8601
a} :: GetOpenIDConnectProviderResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A list of tags that are attached to the specified IAM OIDC provider. The
-- returned list of tags is sorted by tag key. For more information about
-- tagging, see
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html Tagging IAM resources>
-- in the /IAM User Guide/.
getOpenIDConnectProviderResponse_tags :: Lens.Lens' GetOpenIDConnectProviderResponse (Prelude.Maybe [Tag])
getOpenIDConnectProviderResponse_tags :: Lens' GetOpenIDConnectProviderResponse (Maybe [Tag])
getOpenIDConnectProviderResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Maybe [Tag]
a -> GetOpenIDConnectProviderResponse
s {$sel:tags:GetOpenIDConnectProviderResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: GetOpenIDConnectProviderResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of certificate thumbprints that are associated with the specified
-- IAM OIDC provider resource object. For more information, see
-- CreateOpenIDConnectProvider.
getOpenIDConnectProviderResponse_thumbprintList :: Lens.Lens' GetOpenIDConnectProviderResponse (Prelude.Maybe [Prelude.Text])
getOpenIDConnectProviderResponse_thumbprintList :: Lens' GetOpenIDConnectProviderResponse (Maybe [Text])
getOpenIDConnectProviderResponse_thumbprintList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Maybe [Text]
thumbprintList :: Maybe [Text]
$sel:thumbprintList:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Text]
thumbprintList} -> Maybe [Text]
thumbprintList) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Maybe [Text]
a -> GetOpenIDConnectProviderResponse
s {$sel:thumbprintList:GetOpenIDConnectProviderResponse' :: Maybe [Text]
thumbprintList = Maybe [Text]
a} :: GetOpenIDConnectProviderResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The URL that the IAM OIDC provider resource object is associated with.
-- For more information, see CreateOpenIDConnectProvider.
getOpenIDConnectProviderResponse_url :: Lens.Lens' GetOpenIDConnectProviderResponse (Prelude.Maybe Prelude.Text)
getOpenIDConnectProviderResponse_url :: Lens' GetOpenIDConnectProviderResponse (Maybe Text)
getOpenIDConnectProviderResponse_url = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Maybe Text
url :: Maybe Text
$sel:url:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe Text
url} -> Maybe Text
url) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Maybe Text
a -> GetOpenIDConnectProviderResponse
s {$sel:url:GetOpenIDConnectProviderResponse' :: Maybe Text
url = Maybe Text
a} :: GetOpenIDConnectProviderResponse)

-- | The response's http status code.
getOpenIDConnectProviderResponse_httpStatus :: Lens.Lens' GetOpenIDConnectProviderResponse Prelude.Int
getOpenIDConnectProviderResponse_httpStatus :: Lens' GetOpenIDConnectProviderResponse Int
getOpenIDConnectProviderResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetOpenIDConnectProviderResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetOpenIDConnectProviderResponse
s@GetOpenIDConnectProviderResponse' {} Int
a -> GetOpenIDConnectProviderResponse
s {$sel:httpStatus:GetOpenIDConnectProviderResponse' :: Int
httpStatus = Int
a} :: GetOpenIDConnectProviderResponse)

instance
  Prelude.NFData
    GetOpenIDConnectProviderResponse
  where
  rnf :: GetOpenIDConnectProviderResponse -> ()
rnf GetOpenIDConnectProviderResponse' {Int
Maybe [Text]
Maybe [Tag]
Maybe Text
Maybe ISO8601
httpStatus :: Int
url :: Maybe Text
thumbprintList :: Maybe [Text]
tags :: Maybe [Tag]
createDate :: Maybe ISO8601
clientIDList :: Maybe [Text]
$sel:httpStatus:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Int
$sel:url:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe Text
$sel:thumbprintList:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Text]
$sel:tags:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Tag]
$sel:createDate:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe ISO8601
$sel:clientIDList:GetOpenIDConnectProviderResponse' :: GetOpenIDConnectProviderResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
clientIDList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
thumbprintList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
url
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus