{-# 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.GetSAMLProvider
-- 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 the SAML provider metadocument that was uploaded when the IAM
-- SAML provider resource object was created or updated.
--
-- This operation requires
-- <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Signature Version 4>.
module Amazonka.IAM.GetSAMLProvider
  ( -- * Creating a Request
    GetSAMLProvider (..),
    newGetSAMLProvider,

    -- * Request Lenses
    getSAMLProvider_sAMLProviderArn,

    -- * Destructuring the Response
    GetSAMLProviderResponse (..),
    newGetSAMLProviderResponse,

    -- * Response Lenses
    getSAMLProviderResponse_createDate,
    getSAMLProviderResponse_sAMLMetadataDocument,
    getSAMLProviderResponse_tags,
    getSAMLProviderResponse_validUntil,
    getSAMLProviderResponse_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:/ 'newGetSAMLProvider' smart constructor.
data GetSAMLProvider = GetSAMLProvider'
  { -- | The Amazon Resource Name (ARN) of the SAML provider resource object in
    -- IAM to get information about.
    --
    -- 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/.
    GetSAMLProvider -> Text
sAMLProviderArn :: Prelude.Text
  }
  deriving (GetSAMLProvider -> GetSAMLProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSAMLProvider -> GetSAMLProvider -> Bool
$c/= :: GetSAMLProvider -> GetSAMLProvider -> Bool
== :: GetSAMLProvider -> GetSAMLProvider -> Bool
$c== :: GetSAMLProvider -> GetSAMLProvider -> Bool
Prelude.Eq, ReadPrec [GetSAMLProvider]
ReadPrec GetSAMLProvider
Int -> ReadS GetSAMLProvider
ReadS [GetSAMLProvider]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSAMLProvider]
$creadListPrec :: ReadPrec [GetSAMLProvider]
readPrec :: ReadPrec GetSAMLProvider
$creadPrec :: ReadPrec GetSAMLProvider
readList :: ReadS [GetSAMLProvider]
$creadList :: ReadS [GetSAMLProvider]
readsPrec :: Int -> ReadS GetSAMLProvider
$creadsPrec :: Int -> ReadS GetSAMLProvider
Prelude.Read, Int -> GetSAMLProvider -> ShowS
[GetSAMLProvider] -> ShowS
GetSAMLProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSAMLProvider] -> ShowS
$cshowList :: [GetSAMLProvider] -> ShowS
show :: GetSAMLProvider -> String
$cshow :: GetSAMLProvider -> String
showsPrec :: Int -> GetSAMLProvider -> ShowS
$cshowsPrec :: Int -> GetSAMLProvider -> ShowS
Prelude.Show, forall x. Rep GetSAMLProvider x -> GetSAMLProvider
forall x. GetSAMLProvider -> Rep GetSAMLProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetSAMLProvider x -> GetSAMLProvider
$cfrom :: forall x. GetSAMLProvider -> Rep GetSAMLProvider x
Prelude.Generic)

-- |
-- Create a value of 'GetSAMLProvider' 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:
--
-- 'sAMLProviderArn', 'getSAMLProvider_sAMLProviderArn' - The Amazon Resource Name (ARN) of the SAML provider resource object in
-- IAM to get information about.
--
-- 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/.
newGetSAMLProvider ::
  -- | 'sAMLProviderArn'
  Prelude.Text ->
  GetSAMLProvider
newGetSAMLProvider :: Text -> GetSAMLProvider
newGetSAMLProvider Text
pSAMLProviderArn_ =
  GetSAMLProvider'
    { $sel:sAMLProviderArn:GetSAMLProvider' :: Text
sAMLProviderArn =
        Text
pSAMLProviderArn_
    }

-- | The Amazon Resource Name (ARN) of the SAML provider resource object in
-- IAM to get information about.
--
-- 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/.
getSAMLProvider_sAMLProviderArn :: Lens.Lens' GetSAMLProvider Prelude.Text
getSAMLProvider_sAMLProviderArn :: Lens' GetSAMLProvider Text
getSAMLProvider_sAMLProviderArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSAMLProvider' {Text
sAMLProviderArn :: Text
$sel:sAMLProviderArn:GetSAMLProvider' :: GetSAMLProvider -> Text
sAMLProviderArn} -> Text
sAMLProviderArn) (\s :: GetSAMLProvider
s@GetSAMLProvider' {} Text
a -> GetSAMLProvider
s {$sel:sAMLProviderArn:GetSAMLProvider' :: Text
sAMLProviderArn = Text
a} :: GetSAMLProvider)

instance Core.AWSRequest GetSAMLProvider where
  type
    AWSResponse GetSAMLProvider =
      GetSAMLProviderResponse
  request :: (Service -> Service) -> GetSAMLProvider -> Request GetSAMLProvider
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 GetSAMLProvider
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetSAMLProvider)))
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
"GetSAMLProviderResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe ISO8601
-> Maybe Text
-> Maybe [Tag]
-> Maybe ISO8601
-> Int
-> GetSAMLProviderResponse
GetSAMLProviderResponse'
            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
"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
"SAMLMetadataDocument")
            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
"ValidUntil")
            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 GetSAMLProvider where
  hashWithSalt :: Int -> GetSAMLProvider -> Int
hashWithSalt Int
_salt GetSAMLProvider' {Text
sAMLProviderArn :: Text
$sel:sAMLProviderArn:GetSAMLProvider' :: GetSAMLProvider -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sAMLProviderArn

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

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

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

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

-- | Contains the response to a successful GetSAMLProvider request.
--
-- /See:/ 'newGetSAMLProviderResponse' smart constructor.
data GetSAMLProviderResponse = GetSAMLProviderResponse'
  { -- | The date and time when the SAML provider was created.
    GetSAMLProviderResponse -> Maybe ISO8601
createDate :: Prelude.Maybe Data.ISO8601,
    -- | The XML metadata document that includes information about an identity
    -- provider.
    GetSAMLProviderResponse -> Maybe Text
sAMLMetadataDocument :: Prelude.Maybe Prelude.Text,
    -- | A list of tags that are attached to the specified IAM SAML 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/.
    GetSAMLProviderResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The expiration date and time for the SAML provider.
    GetSAMLProviderResponse -> Maybe ISO8601
validUntil :: Prelude.Maybe Data.ISO8601,
    -- | The response's http status code.
    GetSAMLProviderResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetSAMLProviderResponse -> GetSAMLProviderResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSAMLProviderResponse -> GetSAMLProviderResponse -> Bool
$c/= :: GetSAMLProviderResponse -> GetSAMLProviderResponse -> Bool
== :: GetSAMLProviderResponse -> GetSAMLProviderResponse -> Bool
$c== :: GetSAMLProviderResponse -> GetSAMLProviderResponse -> Bool
Prelude.Eq, ReadPrec [GetSAMLProviderResponse]
ReadPrec GetSAMLProviderResponse
Int -> ReadS GetSAMLProviderResponse
ReadS [GetSAMLProviderResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSAMLProviderResponse]
$creadListPrec :: ReadPrec [GetSAMLProviderResponse]
readPrec :: ReadPrec GetSAMLProviderResponse
$creadPrec :: ReadPrec GetSAMLProviderResponse
readList :: ReadS [GetSAMLProviderResponse]
$creadList :: ReadS [GetSAMLProviderResponse]
readsPrec :: Int -> ReadS GetSAMLProviderResponse
$creadsPrec :: Int -> ReadS GetSAMLProviderResponse
Prelude.Read, Int -> GetSAMLProviderResponse -> ShowS
[GetSAMLProviderResponse] -> ShowS
GetSAMLProviderResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSAMLProviderResponse] -> ShowS
$cshowList :: [GetSAMLProviderResponse] -> ShowS
show :: GetSAMLProviderResponse -> String
$cshow :: GetSAMLProviderResponse -> String
showsPrec :: Int -> GetSAMLProviderResponse -> ShowS
$cshowsPrec :: Int -> GetSAMLProviderResponse -> ShowS
Prelude.Show, forall x. Rep GetSAMLProviderResponse x -> GetSAMLProviderResponse
forall x. GetSAMLProviderResponse -> Rep GetSAMLProviderResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetSAMLProviderResponse x -> GetSAMLProviderResponse
$cfrom :: forall x. GetSAMLProviderResponse -> Rep GetSAMLProviderResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetSAMLProviderResponse' 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:
--
-- 'createDate', 'getSAMLProviderResponse_createDate' - The date and time when the SAML provider was created.
--
-- 'sAMLMetadataDocument', 'getSAMLProviderResponse_sAMLMetadataDocument' - The XML metadata document that includes information about an identity
-- provider.
--
-- 'tags', 'getSAMLProviderResponse_tags' - A list of tags that are attached to the specified IAM SAML 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/.
--
-- 'validUntil', 'getSAMLProviderResponse_validUntil' - The expiration date and time for the SAML provider.
--
-- 'httpStatus', 'getSAMLProviderResponse_httpStatus' - The response's http status code.
newGetSAMLProviderResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetSAMLProviderResponse
newGetSAMLProviderResponse :: Int -> GetSAMLProviderResponse
newGetSAMLProviderResponse Int
pHttpStatus_ =
  GetSAMLProviderResponse'
    { $sel:createDate:GetSAMLProviderResponse' :: Maybe ISO8601
createDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:sAMLMetadataDocument:GetSAMLProviderResponse' :: Maybe Text
sAMLMetadataDocument = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetSAMLProviderResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:validUntil:GetSAMLProviderResponse' :: Maybe ISO8601
validUntil = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetSAMLProviderResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The date and time when the SAML provider was created.
getSAMLProviderResponse_createDate :: Lens.Lens' GetSAMLProviderResponse (Prelude.Maybe Prelude.UTCTime)
getSAMLProviderResponse_createDate :: Lens' GetSAMLProviderResponse (Maybe UTCTime)
getSAMLProviderResponse_createDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSAMLProviderResponse' {Maybe ISO8601
createDate :: Maybe ISO8601
$sel:createDate:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe ISO8601
createDate} -> Maybe ISO8601
createDate) (\s :: GetSAMLProviderResponse
s@GetSAMLProviderResponse' {} Maybe ISO8601
a -> GetSAMLProviderResponse
s {$sel:createDate:GetSAMLProviderResponse' :: Maybe ISO8601
createDate = Maybe ISO8601
a} :: GetSAMLProviderResponse) 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

-- | The XML metadata document that includes information about an identity
-- provider.
getSAMLProviderResponse_sAMLMetadataDocument :: Lens.Lens' GetSAMLProviderResponse (Prelude.Maybe Prelude.Text)
getSAMLProviderResponse_sAMLMetadataDocument :: Lens' GetSAMLProviderResponse (Maybe Text)
getSAMLProviderResponse_sAMLMetadataDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSAMLProviderResponse' {Maybe Text
sAMLMetadataDocument :: Maybe Text
$sel:sAMLMetadataDocument:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe Text
sAMLMetadataDocument} -> Maybe Text
sAMLMetadataDocument) (\s :: GetSAMLProviderResponse
s@GetSAMLProviderResponse' {} Maybe Text
a -> GetSAMLProviderResponse
s {$sel:sAMLMetadataDocument:GetSAMLProviderResponse' :: Maybe Text
sAMLMetadataDocument = Maybe Text
a} :: GetSAMLProviderResponse)

-- | A list of tags that are attached to the specified IAM SAML 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/.
getSAMLProviderResponse_tags :: Lens.Lens' GetSAMLProviderResponse (Prelude.Maybe [Tag])
getSAMLProviderResponse_tags :: Lens' GetSAMLProviderResponse (Maybe [Tag])
getSAMLProviderResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSAMLProviderResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: GetSAMLProviderResponse
s@GetSAMLProviderResponse' {} Maybe [Tag]
a -> GetSAMLProviderResponse
s {$sel:tags:GetSAMLProviderResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: GetSAMLProviderResponse) 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 expiration date and time for the SAML provider.
getSAMLProviderResponse_validUntil :: Lens.Lens' GetSAMLProviderResponse (Prelude.Maybe Prelude.UTCTime)
getSAMLProviderResponse_validUntil :: Lens' GetSAMLProviderResponse (Maybe UTCTime)
getSAMLProviderResponse_validUntil = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSAMLProviderResponse' {Maybe ISO8601
validUntil :: Maybe ISO8601
$sel:validUntil:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe ISO8601
validUntil} -> Maybe ISO8601
validUntil) (\s :: GetSAMLProviderResponse
s@GetSAMLProviderResponse' {} Maybe ISO8601
a -> GetSAMLProviderResponse
s {$sel:validUntil:GetSAMLProviderResponse' :: Maybe ISO8601
validUntil = Maybe ISO8601
a} :: GetSAMLProviderResponse) 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

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

instance Prelude.NFData GetSAMLProviderResponse where
  rnf :: GetSAMLProviderResponse -> ()
rnf GetSAMLProviderResponse' {Int
Maybe [Tag]
Maybe Text
Maybe ISO8601
httpStatus :: Int
validUntil :: Maybe ISO8601
tags :: Maybe [Tag]
sAMLMetadataDocument :: Maybe Text
createDate :: Maybe ISO8601
$sel:httpStatus:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Int
$sel:validUntil:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe ISO8601
$sel:tags:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe [Tag]
$sel:sAMLMetadataDocument:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe Text
$sel:createDate:GetSAMLProviderResponse' :: GetSAMLProviderResponse -> Maybe ISO8601
..} =
    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 Text
sAMLMetadataDocument
      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 ISO8601
validUntil
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus