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

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

-- |
-- Module      : Amazonka.RolesAnywhere.Types.SubjectDetail
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.RolesAnywhere.Types.SubjectDetail where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.RolesAnywhere.Types.CredentialSummary
import Amazonka.RolesAnywhere.Types.InstanceProperty

-- | The state of the subject after a read or write operation.
--
-- /See:/ 'newSubjectDetail' smart constructor.
data SubjectDetail = SubjectDetail'
  { -- | The ISO-8601 timestamp when the subject was created.
    SubjectDetail -> Maybe ISO8601
createdAt :: Prelude.Maybe Data.ISO8601,
    -- | The temporary session credentials vended at the last authenticating call
    -- with this Subject.
    SubjectDetail -> Maybe [CredentialSummary]
credentials :: Prelude.Maybe [CredentialSummary],
    -- | The enabled status of the subject.
    SubjectDetail -> Maybe Bool
enabled :: Prelude.Maybe Prelude.Bool,
    -- | The specified instance properties associated with the request.
    SubjectDetail -> Maybe [InstanceProperty]
instanceProperties :: Prelude.Maybe [InstanceProperty],
    -- | The ISO-8601 timestamp of the last time this Subject requested temporary
    -- session credentials.
    SubjectDetail -> Maybe ISO8601
lastSeenAt :: Prelude.Maybe Data.ISO8601,
    -- | The ARN of the resource.
    SubjectDetail -> Maybe Text
subjectArn :: Prelude.Maybe Prelude.Text,
    -- | The id of the resource
    SubjectDetail -> Maybe Text
subjectId :: Prelude.Maybe Prelude.Text,
    -- | The ISO-8601 timestamp when the subject was last updated.
    SubjectDetail -> Maybe ISO8601
updatedAt :: Prelude.Maybe Data.ISO8601,
    -- | The x509 principal identifier of the authenticating certificate.
    SubjectDetail -> Maybe Text
x509Subject :: Prelude.Maybe Prelude.Text
  }
  deriving (SubjectDetail -> SubjectDetail -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubjectDetail -> SubjectDetail -> Bool
$c/= :: SubjectDetail -> SubjectDetail -> Bool
== :: SubjectDetail -> SubjectDetail -> Bool
$c== :: SubjectDetail -> SubjectDetail -> Bool
Prelude.Eq, ReadPrec [SubjectDetail]
ReadPrec SubjectDetail
Int -> ReadS SubjectDetail
ReadS [SubjectDetail]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SubjectDetail]
$creadListPrec :: ReadPrec [SubjectDetail]
readPrec :: ReadPrec SubjectDetail
$creadPrec :: ReadPrec SubjectDetail
readList :: ReadS [SubjectDetail]
$creadList :: ReadS [SubjectDetail]
readsPrec :: Int -> ReadS SubjectDetail
$creadsPrec :: Int -> ReadS SubjectDetail
Prelude.Read, Int -> SubjectDetail -> ShowS
[SubjectDetail] -> ShowS
SubjectDetail -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SubjectDetail] -> ShowS
$cshowList :: [SubjectDetail] -> ShowS
show :: SubjectDetail -> String
$cshow :: SubjectDetail -> String
showsPrec :: Int -> SubjectDetail -> ShowS
$cshowsPrec :: Int -> SubjectDetail -> ShowS
Prelude.Show, forall x. Rep SubjectDetail x -> SubjectDetail
forall x. SubjectDetail -> Rep SubjectDetail x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SubjectDetail x -> SubjectDetail
$cfrom :: forall x. SubjectDetail -> Rep SubjectDetail x
Prelude.Generic)

-- |
-- Create a value of 'SubjectDetail' 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:
--
-- 'createdAt', 'subjectDetail_createdAt' - The ISO-8601 timestamp when the subject was created.
--
-- 'credentials', 'subjectDetail_credentials' - The temporary session credentials vended at the last authenticating call
-- with this Subject.
--
-- 'enabled', 'subjectDetail_enabled' - The enabled status of the subject.
--
-- 'instanceProperties', 'subjectDetail_instanceProperties' - The specified instance properties associated with the request.
--
-- 'lastSeenAt', 'subjectDetail_lastSeenAt' - The ISO-8601 timestamp of the last time this Subject requested temporary
-- session credentials.
--
-- 'subjectArn', 'subjectDetail_subjectArn' - The ARN of the resource.
--
-- 'subjectId', 'subjectDetail_subjectId' - The id of the resource
--
-- 'updatedAt', 'subjectDetail_updatedAt' - The ISO-8601 timestamp when the subject was last updated.
--
-- 'x509Subject', 'subjectDetail_x509Subject' - The x509 principal identifier of the authenticating certificate.
newSubjectDetail ::
  SubjectDetail
newSubjectDetail :: SubjectDetail
newSubjectDetail =
  SubjectDetail'
    { $sel:createdAt:SubjectDetail' :: Maybe ISO8601
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:credentials:SubjectDetail' :: Maybe [CredentialSummary]
credentials = forall a. Maybe a
Prelude.Nothing,
      $sel:enabled:SubjectDetail' :: Maybe Bool
enabled = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceProperties:SubjectDetail' :: Maybe [InstanceProperty]
instanceProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:lastSeenAt:SubjectDetail' :: Maybe ISO8601
lastSeenAt = forall a. Maybe a
Prelude.Nothing,
      $sel:subjectArn:SubjectDetail' :: Maybe Text
subjectArn = forall a. Maybe a
Prelude.Nothing,
      $sel:subjectId:SubjectDetail' :: Maybe Text
subjectId = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedAt:SubjectDetail' :: Maybe ISO8601
updatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:x509Subject:SubjectDetail' :: Maybe Text
x509Subject = forall a. Maybe a
Prelude.Nothing
    }

-- | The ISO-8601 timestamp when the subject was created.
subjectDetail_createdAt :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.UTCTime)
subjectDetail_createdAt :: Lens' SubjectDetail (Maybe UTCTime)
subjectDetail_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe ISO8601
createdAt :: Maybe ISO8601
$sel:createdAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
createdAt} -> Maybe ISO8601
createdAt) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe ISO8601
a -> SubjectDetail
s {$sel:createdAt:SubjectDetail' :: Maybe ISO8601
createdAt = Maybe ISO8601
a} :: SubjectDetail) 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 temporary session credentials vended at the last authenticating call
-- with this Subject.
subjectDetail_credentials :: Lens.Lens' SubjectDetail (Prelude.Maybe [CredentialSummary])
subjectDetail_credentials :: Lens' SubjectDetail (Maybe [CredentialSummary])
subjectDetail_credentials = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe [CredentialSummary]
credentials :: Maybe [CredentialSummary]
$sel:credentials:SubjectDetail' :: SubjectDetail -> Maybe [CredentialSummary]
credentials} -> Maybe [CredentialSummary]
credentials) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe [CredentialSummary]
a -> SubjectDetail
s {$sel:credentials:SubjectDetail' :: Maybe [CredentialSummary]
credentials = Maybe [CredentialSummary]
a} :: SubjectDetail) 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 enabled status of the subject.
subjectDetail_enabled :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.Bool)
subjectDetail_enabled :: Lens' SubjectDetail (Maybe Bool)
subjectDetail_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe Bool
enabled :: Maybe Bool
$sel:enabled:SubjectDetail' :: SubjectDetail -> Maybe Bool
enabled} -> Maybe Bool
enabled) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe Bool
a -> SubjectDetail
s {$sel:enabled:SubjectDetail' :: Maybe Bool
enabled = Maybe Bool
a} :: SubjectDetail)

-- | The specified instance properties associated with the request.
subjectDetail_instanceProperties :: Lens.Lens' SubjectDetail (Prelude.Maybe [InstanceProperty])
subjectDetail_instanceProperties :: Lens' SubjectDetail (Maybe [InstanceProperty])
subjectDetail_instanceProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe [InstanceProperty]
instanceProperties :: Maybe [InstanceProperty]
$sel:instanceProperties:SubjectDetail' :: SubjectDetail -> Maybe [InstanceProperty]
instanceProperties} -> Maybe [InstanceProperty]
instanceProperties) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe [InstanceProperty]
a -> SubjectDetail
s {$sel:instanceProperties:SubjectDetail' :: Maybe [InstanceProperty]
instanceProperties = Maybe [InstanceProperty]
a} :: SubjectDetail) 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 ISO-8601 timestamp of the last time this Subject requested temporary
-- session credentials.
subjectDetail_lastSeenAt :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.UTCTime)
subjectDetail_lastSeenAt :: Lens' SubjectDetail (Maybe UTCTime)
subjectDetail_lastSeenAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe ISO8601
lastSeenAt :: Maybe ISO8601
$sel:lastSeenAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
lastSeenAt} -> Maybe ISO8601
lastSeenAt) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe ISO8601
a -> SubjectDetail
s {$sel:lastSeenAt:SubjectDetail' :: Maybe ISO8601
lastSeenAt = Maybe ISO8601
a} :: SubjectDetail) 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 ARN of the resource.
subjectDetail_subjectArn :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.Text)
subjectDetail_subjectArn :: Lens' SubjectDetail (Maybe Text)
subjectDetail_subjectArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe Text
subjectArn :: Maybe Text
$sel:subjectArn:SubjectDetail' :: SubjectDetail -> Maybe Text
subjectArn} -> Maybe Text
subjectArn) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe Text
a -> SubjectDetail
s {$sel:subjectArn:SubjectDetail' :: Maybe Text
subjectArn = Maybe Text
a} :: SubjectDetail)

-- | The id of the resource
subjectDetail_subjectId :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.Text)
subjectDetail_subjectId :: Lens' SubjectDetail (Maybe Text)
subjectDetail_subjectId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe Text
subjectId :: Maybe Text
$sel:subjectId:SubjectDetail' :: SubjectDetail -> Maybe Text
subjectId} -> Maybe Text
subjectId) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe Text
a -> SubjectDetail
s {$sel:subjectId:SubjectDetail' :: Maybe Text
subjectId = Maybe Text
a} :: SubjectDetail)

-- | The ISO-8601 timestamp when the subject was last updated.
subjectDetail_updatedAt :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.UTCTime)
subjectDetail_updatedAt :: Lens' SubjectDetail (Maybe UTCTime)
subjectDetail_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe ISO8601
updatedAt :: Maybe ISO8601
$sel:updatedAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
updatedAt} -> Maybe ISO8601
updatedAt) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe ISO8601
a -> SubjectDetail
s {$sel:updatedAt:SubjectDetail' :: Maybe ISO8601
updatedAt = Maybe ISO8601
a} :: SubjectDetail) 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 x509 principal identifier of the authenticating certificate.
subjectDetail_x509Subject :: Lens.Lens' SubjectDetail (Prelude.Maybe Prelude.Text)
subjectDetail_x509Subject :: Lens' SubjectDetail (Maybe Text)
subjectDetail_x509Subject = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubjectDetail' {Maybe Text
x509Subject :: Maybe Text
$sel:x509Subject:SubjectDetail' :: SubjectDetail -> Maybe Text
x509Subject} -> Maybe Text
x509Subject) (\s :: SubjectDetail
s@SubjectDetail' {} Maybe Text
a -> SubjectDetail
s {$sel:x509Subject:SubjectDetail' :: Maybe Text
x509Subject = Maybe Text
a} :: SubjectDetail)

instance Data.FromJSON SubjectDetail where
  parseJSON :: Value -> Parser SubjectDetail
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"SubjectDetail"
      ( \Object
x ->
          Maybe ISO8601
-> Maybe [CredentialSummary]
-> Maybe Bool
-> Maybe [InstanceProperty]
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> SubjectDetail
SubjectDetail'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"createdAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"credentials" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"enabled")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"instanceProperties"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lastSeenAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"subjectArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"subjectId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"updatedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"x509Subject")
      )

instance Prelude.Hashable SubjectDetail where
  hashWithSalt :: Int -> SubjectDetail -> Int
hashWithSalt Int
_salt SubjectDetail' {Maybe Bool
Maybe [CredentialSummary]
Maybe [InstanceProperty]
Maybe Text
Maybe ISO8601
x509Subject :: Maybe Text
updatedAt :: Maybe ISO8601
subjectId :: Maybe Text
subjectArn :: Maybe Text
lastSeenAt :: Maybe ISO8601
instanceProperties :: Maybe [InstanceProperty]
enabled :: Maybe Bool
credentials :: Maybe [CredentialSummary]
createdAt :: Maybe ISO8601
$sel:x509Subject:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:updatedAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
$sel:subjectId:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:subjectArn:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:lastSeenAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
$sel:instanceProperties:SubjectDetail' :: SubjectDetail -> Maybe [InstanceProperty]
$sel:enabled:SubjectDetail' :: SubjectDetail -> Maybe Bool
$sel:credentials:SubjectDetail' :: SubjectDetail -> Maybe [CredentialSummary]
$sel:createdAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [CredentialSummary]
credentials
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [InstanceProperty]
instanceProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
lastSeenAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
subjectArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
subjectId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
updatedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
x509Subject

instance Prelude.NFData SubjectDetail where
  rnf :: SubjectDetail -> ()
rnf SubjectDetail' {Maybe Bool
Maybe [CredentialSummary]
Maybe [InstanceProperty]
Maybe Text
Maybe ISO8601
x509Subject :: Maybe Text
updatedAt :: Maybe ISO8601
subjectId :: Maybe Text
subjectArn :: Maybe Text
lastSeenAt :: Maybe ISO8601
instanceProperties :: Maybe [InstanceProperty]
enabled :: Maybe Bool
credentials :: Maybe [CredentialSummary]
createdAt :: Maybe ISO8601
$sel:x509Subject:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:updatedAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
$sel:subjectId:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:subjectArn:SubjectDetail' :: SubjectDetail -> Maybe Text
$sel:lastSeenAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
$sel:instanceProperties:SubjectDetail' :: SubjectDetail -> Maybe [InstanceProperty]
$sel:enabled:SubjectDetail' :: SubjectDetail -> Maybe Bool
$sel:credentials:SubjectDetail' :: SubjectDetail -> Maybe [CredentialSummary]
$sel:createdAt:SubjectDetail' :: SubjectDetail -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [CredentialSummary]
credentials
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [InstanceProperty]
instanceProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
lastSeenAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
subjectArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
subjectId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
updatedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
x509Subject