{-# 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.MacieV2.GetMember
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves information about an account that\'s associated with an Amazon
-- Macie administrator account.
module Amazonka.MacieV2.GetMember
  ( -- * Creating a Request
    GetMember (..),
    newGetMember,

    -- * Request Lenses
    getMember_id,

    -- * Destructuring the Response
    GetMemberResponse (..),
    newGetMemberResponse,

    -- * Response Lenses
    getMemberResponse_accountId,
    getMemberResponse_administratorAccountId,
    getMemberResponse_arn,
    getMemberResponse_email,
    getMemberResponse_invitedAt,
    getMemberResponse_masterAccountId,
    getMemberResponse_relationshipStatus,
    getMemberResponse_tags,
    getMemberResponse_updatedAt,
    getMemberResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetMember' smart constructor.
data GetMember = GetMember'
  { -- | The unique identifier for the Amazon Macie resource that the request
    -- applies to.
    GetMember -> Text
id :: Prelude.Text
  }
  deriving (GetMember -> GetMember -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMember -> GetMember -> Bool
$c/= :: GetMember -> GetMember -> Bool
== :: GetMember -> GetMember -> Bool
$c== :: GetMember -> GetMember -> Bool
Prelude.Eq, ReadPrec [GetMember]
ReadPrec GetMember
Int -> ReadS GetMember
ReadS [GetMember]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMember]
$creadListPrec :: ReadPrec [GetMember]
readPrec :: ReadPrec GetMember
$creadPrec :: ReadPrec GetMember
readList :: ReadS [GetMember]
$creadList :: ReadS [GetMember]
readsPrec :: Int -> ReadS GetMember
$creadsPrec :: Int -> ReadS GetMember
Prelude.Read, Int -> GetMember -> ShowS
[GetMember] -> ShowS
GetMember -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMember] -> ShowS
$cshowList :: [GetMember] -> ShowS
show :: GetMember -> String
$cshow :: GetMember -> String
showsPrec :: Int -> GetMember -> ShowS
$cshowsPrec :: Int -> GetMember -> ShowS
Prelude.Show, forall x. Rep GetMember x -> GetMember
forall x. GetMember -> Rep GetMember x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetMember x -> GetMember
$cfrom :: forall x. GetMember -> Rep GetMember x
Prelude.Generic)

-- |
-- Create a value of 'GetMember' 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:
--
-- 'id', 'getMember_id' - The unique identifier for the Amazon Macie resource that the request
-- applies to.
newGetMember ::
  -- | 'id'
  Prelude.Text ->
  GetMember
newGetMember :: Text -> GetMember
newGetMember Text
pId_ = GetMember' {$sel:id:GetMember' :: Text
id = Text
pId_}

-- | The unique identifier for the Amazon Macie resource that the request
-- applies to.
getMember_id :: Lens.Lens' GetMember Prelude.Text
getMember_id :: Lens' GetMember Text
getMember_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMember' {Text
id :: Text
$sel:id:GetMember' :: GetMember -> Text
id} -> Text
id) (\s :: GetMember
s@GetMember' {} Text
a -> GetMember
s {$sel:id:GetMember' :: Text
id = Text
a} :: GetMember)

instance Core.AWSRequest GetMember where
  type AWSResponse GetMember = GetMemberResponse
  request :: (Service -> Service) -> GetMember -> Request GetMember
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetMember
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetMember)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe RelationshipStatus
-> Maybe (HashMap Text Text)
-> Maybe ISO8601
-> Int
-> GetMemberResponse
GetMemberResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"accountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"administratorAccountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"email")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"invitedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"masterAccountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"relationshipStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"updatedAt")
            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 GetMember where
  hashWithSalt :: Int -> GetMember -> Int
hashWithSalt Int
_salt GetMember' {Text
id :: Text
$sel:id:GetMember' :: GetMember -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

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

instance Data.ToHeaders GetMember where
  toHeaders :: GetMember -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath GetMember where
  toPath :: GetMember -> ByteString
toPath GetMember' {Text
id :: Text
$sel:id:GetMember' :: GetMember -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/members/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
id]

instance Data.ToQuery GetMember where
  toQuery :: GetMember -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newGetMemberResponse' smart constructor.
data GetMemberResponse = GetMemberResponse'
  { -- | The Amazon Web Services account ID for the account.
    GetMemberResponse -> Maybe Text
accountId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID for the administrator account.
    GetMemberResponse -> Maybe Text
administratorAccountId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the account.
    GetMemberResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The email address for the account.
    GetMemberResponse -> Maybe Text
email :: Prelude.Maybe Prelude.Text,
    -- | The date and time, in UTC and extended ISO 8601 format, when an Amazon
    -- Macie membership invitation was last sent to the account. This value is
    -- null if an invitation hasn\'t been sent to the account.
    GetMemberResponse -> Maybe ISO8601
invitedAt :: Prelude.Maybe Data.ISO8601,
    -- | (Deprecated) The Amazon Web Services account ID for the administrator
    -- account. This property has been replaced by the administratorAccountId
    -- property and is retained only for backward compatibility.
    GetMemberResponse -> Maybe Text
masterAccountId :: Prelude.Maybe Prelude.Text,
    -- | The current status of the relationship between the account and the
    -- administrator account.
    GetMemberResponse -> Maybe RelationshipStatus
relationshipStatus :: Prelude.Maybe RelationshipStatus,
    -- | A map of key-value pairs that specifies which tags (keys and values) are
    -- associated with the account in Amazon Macie.
    GetMemberResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The date and time, in UTC and extended ISO 8601 format, of the most
    -- recent change to the status of the relationship between the account and
    -- the administrator account.
    GetMemberResponse -> Maybe ISO8601
updatedAt :: Prelude.Maybe Data.ISO8601,
    -- | The response's http status code.
    GetMemberResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetMemberResponse -> GetMemberResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMemberResponse -> GetMemberResponse -> Bool
$c/= :: GetMemberResponse -> GetMemberResponse -> Bool
== :: GetMemberResponse -> GetMemberResponse -> Bool
$c== :: GetMemberResponse -> GetMemberResponse -> Bool
Prelude.Eq, ReadPrec [GetMemberResponse]
ReadPrec GetMemberResponse
Int -> ReadS GetMemberResponse
ReadS [GetMemberResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMemberResponse]
$creadListPrec :: ReadPrec [GetMemberResponse]
readPrec :: ReadPrec GetMemberResponse
$creadPrec :: ReadPrec GetMemberResponse
readList :: ReadS [GetMemberResponse]
$creadList :: ReadS [GetMemberResponse]
readsPrec :: Int -> ReadS GetMemberResponse
$creadsPrec :: Int -> ReadS GetMemberResponse
Prelude.Read, Int -> GetMemberResponse -> ShowS
[GetMemberResponse] -> ShowS
GetMemberResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMemberResponse] -> ShowS
$cshowList :: [GetMemberResponse] -> ShowS
show :: GetMemberResponse -> String
$cshow :: GetMemberResponse -> String
showsPrec :: Int -> GetMemberResponse -> ShowS
$cshowsPrec :: Int -> GetMemberResponse -> ShowS
Prelude.Show, forall x. Rep GetMemberResponse x -> GetMemberResponse
forall x. GetMemberResponse -> Rep GetMemberResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetMemberResponse x -> GetMemberResponse
$cfrom :: forall x. GetMemberResponse -> Rep GetMemberResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetMemberResponse' 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:
--
-- 'accountId', 'getMemberResponse_accountId' - The Amazon Web Services account ID for the account.
--
-- 'administratorAccountId', 'getMemberResponse_administratorAccountId' - The Amazon Web Services account ID for the administrator account.
--
-- 'arn', 'getMemberResponse_arn' - The Amazon Resource Name (ARN) of the account.
--
-- 'email', 'getMemberResponse_email' - The email address for the account.
--
-- 'invitedAt', 'getMemberResponse_invitedAt' - The date and time, in UTC and extended ISO 8601 format, when an Amazon
-- Macie membership invitation was last sent to the account. This value is
-- null if an invitation hasn\'t been sent to the account.
--
-- 'masterAccountId', 'getMemberResponse_masterAccountId' - (Deprecated) The Amazon Web Services account ID for the administrator
-- account. This property has been replaced by the administratorAccountId
-- property and is retained only for backward compatibility.
--
-- 'relationshipStatus', 'getMemberResponse_relationshipStatus' - The current status of the relationship between the account and the
-- administrator account.
--
-- 'tags', 'getMemberResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are
-- associated with the account in Amazon Macie.
--
-- 'updatedAt', 'getMemberResponse_updatedAt' - The date and time, in UTC and extended ISO 8601 format, of the most
-- recent change to the status of the relationship between the account and
-- the administrator account.
--
-- 'httpStatus', 'getMemberResponse_httpStatus' - The response's http status code.
newGetMemberResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetMemberResponse
newGetMemberResponse :: Int -> GetMemberResponse
newGetMemberResponse Int
pHttpStatus_ =
  GetMemberResponse'
    { $sel:accountId:GetMemberResponse' :: Maybe Text
accountId = forall a. Maybe a
Prelude.Nothing,
      $sel:administratorAccountId:GetMemberResponse' :: Maybe Text
administratorAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:GetMemberResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:email:GetMemberResponse' :: Maybe Text
email = forall a. Maybe a
Prelude.Nothing,
      $sel:invitedAt:GetMemberResponse' :: Maybe ISO8601
invitedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:masterAccountId:GetMemberResponse' :: Maybe Text
masterAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:relationshipStatus:GetMemberResponse' :: Maybe RelationshipStatus
relationshipStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetMemberResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedAt:GetMemberResponse' :: Maybe ISO8601
updatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetMemberResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Web Services account ID for the account.
getMemberResponse_accountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)
getMemberResponse_accountId :: Lens' GetMemberResponse (Maybe Text)
getMemberResponse_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe Text
accountId :: Maybe Text
$sel:accountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
accountId} -> Maybe Text
accountId) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe Text
a -> GetMemberResponse
s {$sel:accountId:GetMemberResponse' :: Maybe Text
accountId = Maybe Text
a} :: GetMemberResponse)

-- | The Amazon Web Services account ID for the administrator account.
getMemberResponse_administratorAccountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)
getMemberResponse_administratorAccountId :: Lens' GetMemberResponse (Maybe Text)
getMemberResponse_administratorAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe Text
administratorAccountId :: Maybe Text
$sel:administratorAccountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
administratorAccountId} -> Maybe Text
administratorAccountId) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe Text
a -> GetMemberResponse
s {$sel:administratorAccountId:GetMemberResponse' :: Maybe Text
administratorAccountId = Maybe Text
a} :: GetMemberResponse)

-- | The Amazon Resource Name (ARN) of the account.
getMemberResponse_arn :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)
getMemberResponse_arn :: Lens' GetMemberResponse (Maybe Text)
getMemberResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:GetMemberResponse' :: GetMemberResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe Text
a -> GetMemberResponse
s {$sel:arn:GetMemberResponse' :: Maybe Text
arn = Maybe Text
a} :: GetMemberResponse)

-- | The email address for the account.
getMemberResponse_email :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)
getMemberResponse_email :: Lens' GetMemberResponse (Maybe Text)
getMemberResponse_email = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe Text
email :: Maybe Text
$sel:email:GetMemberResponse' :: GetMemberResponse -> Maybe Text
email} -> Maybe Text
email) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe Text
a -> GetMemberResponse
s {$sel:email:GetMemberResponse' :: Maybe Text
email = Maybe Text
a} :: GetMemberResponse)

-- | The date and time, in UTC and extended ISO 8601 format, when an Amazon
-- Macie membership invitation was last sent to the account. This value is
-- null if an invitation hasn\'t been sent to the account.
getMemberResponse_invitedAt :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.UTCTime)
getMemberResponse_invitedAt :: Lens' GetMemberResponse (Maybe UTCTime)
getMemberResponse_invitedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe ISO8601
invitedAt :: Maybe ISO8601
$sel:invitedAt:GetMemberResponse' :: GetMemberResponse -> Maybe ISO8601
invitedAt} -> Maybe ISO8601
invitedAt) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe ISO8601
a -> GetMemberResponse
s {$sel:invitedAt:GetMemberResponse' :: Maybe ISO8601
invitedAt = Maybe ISO8601
a} :: GetMemberResponse) 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

-- | (Deprecated) The Amazon Web Services account ID for the administrator
-- account. This property has been replaced by the administratorAccountId
-- property and is retained only for backward compatibility.
getMemberResponse_masterAccountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)
getMemberResponse_masterAccountId :: Lens' GetMemberResponse (Maybe Text)
getMemberResponse_masterAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe Text
masterAccountId :: Maybe Text
$sel:masterAccountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
masterAccountId} -> Maybe Text
masterAccountId) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe Text
a -> GetMemberResponse
s {$sel:masterAccountId:GetMemberResponse' :: Maybe Text
masterAccountId = Maybe Text
a} :: GetMemberResponse)

-- | The current status of the relationship between the account and the
-- administrator account.
getMemberResponse_relationshipStatus :: Lens.Lens' GetMemberResponse (Prelude.Maybe RelationshipStatus)
getMemberResponse_relationshipStatus :: Lens' GetMemberResponse (Maybe RelationshipStatus)
getMemberResponse_relationshipStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe RelationshipStatus
relationshipStatus :: Maybe RelationshipStatus
$sel:relationshipStatus:GetMemberResponse' :: GetMemberResponse -> Maybe RelationshipStatus
relationshipStatus} -> Maybe RelationshipStatus
relationshipStatus) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe RelationshipStatus
a -> GetMemberResponse
s {$sel:relationshipStatus:GetMemberResponse' :: Maybe RelationshipStatus
relationshipStatus = Maybe RelationshipStatus
a} :: GetMemberResponse)

-- | A map of key-value pairs that specifies which tags (keys and values) are
-- associated with the account in Amazon Macie.
getMemberResponse_tags :: Lens.Lens' GetMemberResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getMemberResponse_tags :: Lens' GetMemberResponse (Maybe (HashMap Text Text))
getMemberResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetMemberResponse' :: GetMemberResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe (HashMap Text Text)
a -> GetMemberResponse
s {$sel:tags:GetMemberResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetMemberResponse) 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, in UTC and extended ISO 8601 format, of the most
-- recent change to the status of the relationship between the account and
-- the administrator account.
getMemberResponse_updatedAt :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.UTCTime)
getMemberResponse_updatedAt :: Lens' GetMemberResponse (Maybe UTCTime)
getMemberResponse_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Maybe ISO8601
updatedAt :: Maybe ISO8601
$sel:updatedAt:GetMemberResponse' :: GetMemberResponse -> Maybe ISO8601
updatedAt} -> Maybe ISO8601
updatedAt) (\s :: GetMemberResponse
s@GetMemberResponse' {} Maybe ISO8601
a -> GetMemberResponse
s {$sel:updatedAt:GetMemberResponse' :: Maybe ISO8601
updatedAt = Maybe ISO8601
a} :: GetMemberResponse) 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.
getMemberResponse_httpStatus :: Lens.Lens' GetMemberResponse Prelude.Int
getMemberResponse_httpStatus :: Lens' GetMemberResponse Int
getMemberResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMemberResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetMemberResponse' :: GetMemberResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetMemberResponse
s@GetMemberResponse' {} Int
a -> GetMemberResponse
s {$sel:httpStatus:GetMemberResponse' :: Int
httpStatus = Int
a} :: GetMemberResponse)

instance Prelude.NFData GetMemberResponse where
  rnf :: GetMemberResponse -> ()
rnf GetMemberResponse' {Int
Maybe Text
Maybe (HashMap Text Text)
Maybe ISO8601
Maybe RelationshipStatus
httpStatus :: Int
updatedAt :: Maybe ISO8601
tags :: Maybe (HashMap Text Text)
relationshipStatus :: Maybe RelationshipStatus
masterAccountId :: Maybe Text
invitedAt :: Maybe ISO8601
email :: Maybe Text
arn :: Maybe Text
administratorAccountId :: Maybe Text
accountId :: Maybe Text
$sel:httpStatus:GetMemberResponse' :: GetMemberResponse -> Int
$sel:updatedAt:GetMemberResponse' :: GetMemberResponse -> Maybe ISO8601
$sel:tags:GetMemberResponse' :: GetMemberResponse -> Maybe (HashMap Text Text)
$sel:relationshipStatus:GetMemberResponse' :: GetMemberResponse -> Maybe RelationshipStatus
$sel:masterAccountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
$sel:invitedAt:GetMemberResponse' :: GetMemberResponse -> Maybe ISO8601
$sel:email:GetMemberResponse' :: GetMemberResponse -> Maybe Text
$sel:arn:GetMemberResponse' :: GetMemberResponse -> Maybe Text
$sel:administratorAccountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
$sel:accountId:GetMemberResponse' :: GetMemberResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
administratorAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
email
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
invitedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
masterAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RelationshipStatus
relationshipStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      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 Int
httpStatus