{-# 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.IoTFleetWise.GetRegisterAccountStatus
-- 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 the status of registering your Amazon Web
-- Services account, IAM, and Amazon Timestream resources so that Amazon
-- Web Services IoT FleetWise can transfer your vehicle data to the Amazon
-- Web Services Cloud.
--
-- For more information, including step-by-step procedures, see
-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html Setting up Amazon Web Services IoT FleetWise>.
--
-- This API operation doesn\'t require input parameters.
module Amazonka.IoTFleetWise.GetRegisterAccountStatus
  ( -- * Creating a Request
    GetRegisterAccountStatus (..),
    newGetRegisterAccountStatus,

    -- * Destructuring the Response
    GetRegisterAccountStatusResponse (..),
    newGetRegisterAccountStatusResponse,

    -- * Response Lenses
    getRegisterAccountStatusResponse_httpStatus,
    getRegisterAccountStatusResponse_customerAccountId,
    getRegisterAccountStatusResponse_accountStatus,
    getRegisterAccountStatusResponse_timestreamRegistrationResponse,
    getRegisterAccountStatusResponse_iamRegistrationResponse,
    getRegisterAccountStatusResponse_creationTime,
    getRegisterAccountStatusResponse_lastModificationTime,
  )
where

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

-- | /See:/ 'newGetRegisterAccountStatus' smart constructor.
data GetRegisterAccountStatus = GetRegisterAccountStatus'
  {
  }
  deriving (GetRegisterAccountStatus -> GetRegisterAccountStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRegisterAccountStatus -> GetRegisterAccountStatus -> Bool
$c/= :: GetRegisterAccountStatus -> GetRegisterAccountStatus -> Bool
== :: GetRegisterAccountStatus -> GetRegisterAccountStatus -> Bool
$c== :: GetRegisterAccountStatus -> GetRegisterAccountStatus -> Bool
Prelude.Eq, ReadPrec [GetRegisterAccountStatus]
ReadPrec GetRegisterAccountStatus
Int -> ReadS GetRegisterAccountStatus
ReadS [GetRegisterAccountStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRegisterAccountStatus]
$creadListPrec :: ReadPrec [GetRegisterAccountStatus]
readPrec :: ReadPrec GetRegisterAccountStatus
$creadPrec :: ReadPrec GetRegisterAccountStatus
readList :: ReadS [GetRegisterAccountStatus]
$creadList :: ReadS [GetRegisterAccountStatus]
readsPrec :: Int -> ReadS GetRegisterAccountStatus
$creadsPrec :: Int -> ReadS GetRegisterAccountStatus
Prelude.Read, Int -> GetRegisterAccountStatus -> ShowS
[GetRegisterAccountStatus] -> ShowS
GetRegisterAccountStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRegisterAccountStatus] -> ShowS
$cshowList :: [GetRegisterAccountStatus] -> ShowS
show :: GetRegisterAccountStatus -> String
$cshow :: GetRegisterAccountStatus -> String
showsPrec :: Int -> GetRegisterAccountStatus -> ShowS
$cshowsPrec :: Int -> GetRegisterAccountStatus -> ShowS
Prelude.Show, forall x.
Rep GetRegisterAccountStatus x -> GetRegisterAccountStatus
forall x.
GetRegisterAccountStatus -> Rep GetRegisterAccountStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRegisterAccountStatus x -> GetRegisterAccountStatus
$cfrom :: forall x.
GetRegisterAccountStatus -> Rep GetRegisterAccountStatus x
Prelude.Generic)

-- |
-- Create a value of 'GetRegisterAccountStatus' 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.
newGetRegisterAccountStatus ::
  GetRegisterAccountStatus
newGetRegisterAccountStatus :: GetRegisterAccountStatus
newGetRegisterAccountStatus =
  GetRegisterAccountStatus
GetRegisterAccountStatus'

instance Core.AWSRequest GetRegisterAccountStatus where
  type
    AWSResponse GetRegisterAccountStatus =
      GetRegisterAccountStatusResponse
  request :: (Service -> Service)
-> GetRegisterAccountStatus -> Request GetRegisterAccountStatus
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetRegisterAccountStatus
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetRegisterAccountStatus)))
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 ->
          Int
-> Text
-> RegistrationStatus
-> TimestreamRegistrationResponse
-> IamRegistrationResponse
-> POSIX
-> POSIX
-> GetRegisterAccountStatusResponse
GetRegisterAccountStatusResponse'
            forall (f :: * -> *) a b. Functor 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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"customerAccountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"accountStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"timestreamRegistrationResponse")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"iamRegistrationResponse")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"creationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"lastModificationTime")
      )

instance Prelude.Hashable GetRegisterAccountStatus where
  hashWithSalt :: Int -> GetRegisterAccountStatus -> Int
hashWithSalt Int
_salt GetRegisterAccountStatus
_ =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ()

instance Prelude.NFData GetRegisterAccountStatus where
  rnf :: GetRegisterAccountStatus -> ()
rnf GetRegisterAccountStatus
_ = ()

instance Data.ToHeaders GetRegisterAccountStatus where
  toHeaders :: GetRegisterAccountStatus -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"IoTAutobahnControlPlane.GetRegisterAccountStatus" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON GetRegisterAccountStatus where
  toJSON :: GetRegisterAccountStatus -> Value
toJSON = forall a b. a -> b -> a
Prelude.const (Object -> Value
Data.Object forall a. Monoid a => a
Prelude.mempty)

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

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

-- | /See:/ 'newGetRegisterAccountStatusResponse' smart constructor.
data GetRegisterAccountStatusResponse = GetRegisterAccountStatusResponse'
  { -- | The response's http status code.
    GetRegisterAccountStatusResponse -> Int
httpStatus :: Prelude.Int,
    -- | The unique ID of the Amazon Web Services account, provided at account
    -- creation.
    GetRegisterAccountStatusResponse -> Text
customerAccountId :: Prelude.Text,
    -- | The status of registering your account and resources. The status can be
    -- one of:
    --
    -- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is
    --     successfully registered.
    --
    -- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is
    --     processing the registration request. This process takes
    --     approximately five minutes to complete.
    --
    -- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t
    --     register the AWS resource. Try again later.
    GetRegisterAccountStatusResponse -> RegistrationStatus
accountStatus :: RegistrationStatus,
    -- | Information about the registered Amazon Timestream resources or errors,
    -- if any.
    GetRegisterAccountStatusResponse -> TimestreamRegistrationResponse
timestreamRegistrationResponse :: TimestreamRegistrationResponse,
    -- | Information about the registered IAM resources or errors, if any.
    GetRegisterAccountStatusResponse -> IamRegistrationResponse
iamRegistrationResponse :: IamRegistrationResponse,
    -- | The time the account was registered, in seconds since epoch (January 1,
    -- 1970 at midnight UTC time).
    GetRegisterAccountStatusResponse -> POSIX
creationTime :: Data.POSIX,
    -- | The time this registration was last updated, in seconds since epoch
    -- (January 1, 1970 at midnight UTC time).
    GetRegisterAccountStatusResponse -> POSIX
lastModificationTime :: Data.POSIX
  }
  deriving (GetRegisterAccountStatusResponse
-> GetRegisterAccountStatusResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRegisterAccountStatusResponse
-> GetRegisterAccountStatusResponse -> Bool
$c/= :: GetRegisterAccountStatusResponse
-> GetRegisterAccountStatusResponse -> Bool
== :: GetRegisterAccountStatusResponse
-> GetRegisterAccountStatusResponse -> Bool
$c== :: GetRegisterAccountStatusResponse
-> GetRegisterAccountStatusResponse -> Bool
Prelude.Eq, ReadPrec [GetRegisterAccountStatusResponse]
ReadPrec GetRegisterAccountStatusResponse
Int -> ReadS GetRegisterAccountStatusResponse
ReadS [GetRegisterAccountStatusResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRegisterAccountStatusResponse]
$creadListPrec :: ReadPrec [GetRegisterAccountStatusResponse]
readPrec :: ReadPrec GetRegisterAccountStatusResponse
$creadPrec :: ReadPrec GetRegisterAccountStatusResponse
readList :: ReadS [GetRegisterAccountStatusResponse]
$creadList :: ReadS [GetRegisterAccountStatusResponse]
readsPrec :: Int -> ReadS GetRegisterAccountStatusResponse
$creadsPrec :: Int -> ReadS GetRegisterAccountStatusResponse
Prelude.Read, Int -> GetRegisterAccountStatusResponse -> ShowS
[GetRegisterAccountStatusResponse] -> ShowS
GetRegisterAccountStatusResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRegisterAccountStatusResponse] -> ShowS
$cshowList :: [GetRegisterAccountStatusResponse] -> ShowS
show :: GetRegisterAccountStatusResponse -> String
$cshow :: GetRegisterAccountStatusResponse -> String
showsPrec :: Int -> GetRegisterAccountStatusResponse -> ShowS
$cshowsPrec :: Int -> GetRegisterAccountStatusResponse -> ShowS
Prelude.Show, forall x.
Rep GetRegisterAccountStatusResponse x
-> GetRegisterAccountStatusResponse
forall x.
GetRegisterAccountStatusResponse
-> Rep GetRegisterAccountStatusResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRegisterAccountStatusResponse x
-> GetRegisterAccountStatusResponse
$cfrom :: forall x.
GetRegisterAccountStatusResponse
-> Rep GetRegisterAccountStatusResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetRegisterAccountStatusResponse' 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:
--
-- 'httpStatus', 'getRegisterAccountStatusResponse_httpStatus' - The response's http status code.
--
-- 'customerAccountId', 'getRegisterAccountStatusResponse_customerAccountId' - The unique ID of the Amazon Web Services account, provided at account
-- creation.
--
-- 'accountStatus', 'getRegisterAccountStatusResponse_accountStatus' - The status of registering your account and resources. The status can be
-- one of:
--
-- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is
--     successfully registered.
--
-- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is
--     processing the registration request. This process takes
--     approximately five minutes to complete.
--
-- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t
--     register the AWS resource. Try again later.
--
-- 'timestreamRegistrationResponse', 'getRegisterAccountStatusResponse_timestreamRegistrationResponse' - Information about the registered Amazon Timestream resources or errors,
-- if any.
--
-- 'iamRegistrationResponse', 'getRegisterAccountStatusResponse_iamRegistrationResponse' - Information about the registered IAM resources or errors, if any.
--
-- 'creationTime', 'getRegisterAccountStatusResponse_creationTime' - The time the account was registered, in seconds since epoch (January 1,
-- 1970 at midnight UTC time).
--
-- 'lastModificationTime', 'getRegisterAccountStatusResponse_lastModificationTime' - The time this registration was last updated, in seconds since epoch
-- (January 1, 1970 at midnight UTC time).
newGetRegisterAccountStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'customerAccountId'
  Prelude.Text ->
  -- | 'accountStatus'
  RegistrationStatus ->
  -- | 'timestreamRegistrationResponse'
  TimestreamRegistrationResponse ->
  -- | 'iamRegistrationResponse'
  IamRegistrationResponse ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'lastModificationTime'
  Prelude.UTCTime ->
  GetRegisterAccountStatusResponse
newGetRegisterAccountStatusResponse :: Int
-> Text
-> RegistrationStatus
-> TimestreamRegistrationResponse
-> IamRegistrationResponse
-> UTCTime
-> UTCTime
-> GetRegisterAccountStatusResponse
newGetRegisterAccountStatusResponse
  Int
pHttpStatus_
  Text
pCustomerAccountId_
  RegistrationStatus
pAccountStatus_
  TimestreamRegistrationResponse
pTimestreamRegistrationResponse_
  IamRegistrationResponse
pIamRegistrationResponse_
  UTCTime
pCreationTime_
  UTCTime
pLastModificationTime_ =
    GetRegisterAccountStatusResponse'
      { $sel:httpStatus:GetRegisterAccountStatusResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:customerAccountId:GetRegisterAccountStatusResponse' :: Text
customerAccountId = Text
pCustomerAccountId_,
        $sel:accountStatus:GetRegisterAccountStatusResponse' :: RegistrationStatus
accountStatus = RegistrationStatus
pAccountStatus_,
        $sel:timestreamRegistrationResponse:GetRegisterAccountStatusResponse' :: TimestreamRegistrationResponse
timestreamRegistrationResponse =
          TimestreamRegistrationResponse
pTimestreamRegistrationResponse_,
        $sel:iamRegistrationResponse:GetRegisterAccountStatusResponse' :: IamRegistrationResponse
iamRegistrationResponse =
          IamRegistrationResponse
pIamRegistrationResponse_,
        $sel:creationTime:GetRegisterAccountStatusResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:lastModificationTime:GetRegisterAccountStatusResponse' :: POSIX
lastModificationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
            forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastModificationTime_
      }

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

-- | The unique ID of the Amazon Web Services account, provided at account
-- creation.
getRegisterAccountStatusResponse_customerAccountId :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.Text
getRegisterAccountStatusResponse_customerAccountId :: Lens' GetRegisterAccountStatusResponse Text
getRegisterAccountStatusResponse_customerAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {Text
customerAccountId :: Text
$sel:customerAccountId:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> Text
customerAccountId} -> Text
customerAccountId) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} Text
a -> GetRegisterAccountStatusResponse
s {$sel:customerAccountId:GetRegisterAccountStatusResponse' :: Text
customerAccountId = Text
a} :: GetRegisterAccountStatusResponse)

-- | The status of registering your account and resources. The status can be
-- one of:
--
-- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is
--     successfully registered.
--
-- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is
--     processing the registration request. This process takes
--     approximately five minutes to complete.
--
-- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t
--     register the AWS resource. Try again later.
getRegisterAccountStatusResponse_accountStatus :: Lens.Lens' GetRegisterAccountStatusResponse RegistrationStatus
getRegisterAccountStatusResponse_accountStatus :: Lens' GetRegisterAccountStatusResponse RegistrationStatus
getRegisterAccountStatusResponse_accountStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {RegistrationStatus
accountStatus :: RegistrationStatus
$sel:accountStatus:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> RegistrationStatus
accountStatus} -> RegistrationStatus
accountStatus) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} RegistrationStatus
a -> GetRegisterAccountStatusResponse
s {$sel:accountStatus:GetRegisterAccountStatusResponse' :: RegistrationStatus
accountStatus = RegistrationStatus
a} :: GetRegisterAccountStatusResponse)

-- | Information about the registered Amazon Timestream resources or errors,
-- if any.
getRegisterAccountStatusResponse_timestreamRegistrationResponse :: Lens.Lens' GetRegisterAccountStatusResponse TimestreamRegistrationResponse
getRegisterAccountStatusResponse_timestreamRegistrationResponse :: Lens'
  GetRegisterAccountStatusResponse TimestreamRegistrationResponse
getRegisterAccountStatusResponse_timestreamRegistrationResponse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {TimestreamRegistrationResponse
timestreamRegistrationResponse :: TimestreamRegistrationResponse
$sel:timestreamRegistrationResponse:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> TimestreamRegistrationResponse
timestreamRegistrationResponse} -> TimestreamRegistrationResponse
timestreamRegistrationResponse) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} TimestreamRegistrationResponse
a -> GetRegisterAccountStatusResponse
s {$sel:timestreamRegistrationResponse:GetRegisterAccountStatusResponse' :: TimestreamRegistrationResponse
timestreamRegistrationResponse = TimestreamRegistrationResponse
a} :: GetRegisterAccountStatusResponse)

-- | Information about the registered IAM resources or errors, if any.
getRegisterAccountStatusResponse_iamRegistrationResponse :: Lens.Lens' GetRegisterAccountStatusResponse IamRegistrationResponse
getRegisterAccountStatusResponse_iamRegistrationResponse :: Lens' GetRegisterAccountStatusResponse IamRegistrationResponse
getRegisterAccountStatusResponse_iamRegistrationResponse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {IamRegistrationResponse
iamRegistrationResponse :: IamRegistrationResponse
$sel:iamRegistrationResponse:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> IamRegistrationResponse
iamRegistrationResponse} -> IamRegistrationResponse
iamRegistrationResponse) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} IamRegistrationResponse
a -> GetRegisterAccountStatusResponse
s {$sel:iamRegistrationResponse:GetRegisterAccountStatusResponse' :: IamRegistrationResponse
iamRegistrationResponse = IamRegistrationResponse
a} :: GetRegisterAccountStatusResponse)

-- | The time the account was registered, in seconds since epoch (January 1,
-- 1970 at midnight UTC time).
getRegisterAccountStatusResponse_creationTime :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.UTCTime
getRegisterAccountStatusResponse_creationTime :: Lens' GetRegisterAccountStatusResponse UTCTime
getRegisterAccountStatusResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} POSIX
a -> GetRegisterAccountStatusResponse
s {$sel:creationTime:GetRegisterAccountStatusResponse' :: POSIX
creationTime = POSIX
a} :: GetRegisterAccountStatusResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The time this registration was last updated, in seconds since epoch
-- (January 1, 1970 at midnight UTC time).
getRegisterAccountStatusResponse_lastModificationTime :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.UTCTime
getRegisterAccountStatusResponse_lastModificationTime :: Lens' GetRegisterAccountStatusResponse UTCTime
getRegisterAccountStatusResponse_lastModificationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRegisterAccountStatusResponse' {POSIX
lastModificationTime :: POSIX
$sel:lastModificationTime:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> POSIX
lastModificationTime} -> POSIX
lastModificationTime) (\s :: GetRegisterAccountStatusResponse
s@GetRegisterAccountStatusResponse' {} POSIX
a -> GetRegisterAccountStatusResponse
s {$sel:lastModificationTime:GetRegisterAccountStatusResponse' :: POSIX
lastModificationTime = POSIX
a} :: GetRegisterAccountStatusResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance
  Prelude.NFData
    GetRegisterAccountStatusResponse
  where
  rnf :: GetRegisterAccountStatusResponse -> ()
rnf GetRegisterAccountStatusResponse' {Int
Text
POSIX
RegistrationStatus
IamRegistrationResponse
TimestreamRegistrationResponse
lastModificationTime :: POSIX
creationTime :: POSIX
iamRegistrationResponse :: IamRegistrationResponse
timestreamRegistrationResponse :: TimestreamRegistrationResponse
accountStatus :: RegistrationStatus
customerAccountId :: Text
httpStatus :: Int
$sel:lastModificationTime:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> POSIX
$sel:creationTime:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> POSIX
$sel:iamRegistrationResponse:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> IamRegistrationResponse
$sel:timestreamRegistrationResponse:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> TimestreamRegistrationResponse
$sel:accountStatus:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> RegistrationStatus
$sel:customerAccountId:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> Text
$sel:httpStatus:GetRegisterAccountStatusResponse' :: GetRegisterAccountStatusResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
customerAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf RegistrationStatus
accountStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TimestreamRegistrationResponse
timestreamRegistrationResponse
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf IamRegistrationResponse
iamRegistrationResponse
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
lastModificationTime