{-# 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.IoT.DescribeThingRegistrationTask
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes a bulk thing provisioning task.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions DescribeThingRegistrationTask>
-- action.
module Amazonka.IoT.DescribeThingRegistrationTask
  ( -- * Creating a Request
    DescribeThingRegistrationTask (..),
    newDescribeThingRegistrationTask,

    -- * Request Lenses
    describeThingRegistrationTask_taskId,

    -- * Destructuring the Response
    DescribeThingRegistrationTaskResponse (..),
    newDescribeThingRegistrationTaskResponse,

    -- * Response Lenses
    describeThingRegistrationTaskResponse_creationDate,
    describeThingRegistrationTaskResponse_failureCount,
    describeThingRegistrationTaskResponse_inputFileBucket,
    describeThingRegistrationTaskResponse_inputFileKey,
    describeThingRegistrationTaskResponse_lastModifiedDate,
    describeThingRegistrationTaskResponse_message,
    describeThingRegistrationTaskResponse_percentageProgress,
    describeThingRegistrationTaskResponse_roleArn,
    describeThingRegistrationTaskResponse_status,
    describeThingRegistrationTaskResponse_successCount,
    describeThingRegistrationTaskResponse_taskId,
    describeThingRegistrationTaskResponse_templateBody,
    describeThingRegistrationTaskResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'DescribeThingRegistrationTask' 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:
--
-- 'taskId', 'describeThingRegistrationTask_taskId' - The task ID.
newDescribeThingRegistrationTask ::
  -- | 'taskId'
  Prelude.Text ->
  DescribeThingRegistrationTask
newDescribeThingRegistrationTask :: Text -> DescribeThingRegistrationTask
newDescribeThingRegistrationTask Text
pTaskId_ =
  DescribeThingRegistrationTask' {$sel:taskId:DescribeThingRegistrationTask' :: Text
taskId = Text
pTaskId_}

-- | The task ID.
describeThingRegistrationTask_taskId :: Lens.Lens' DescribeThingRegistrationTask Prelude.Text
describeThingRegistrationTask_taskId :: Lens' DescribeThingRegistrationTask Text
describeThingRegistrationTask_taskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTask' {Text
taskId :: Text
$sel:taskId:DescribeThingRegistrationTask' :: DescribeThingRegistrationTask -> Text
taskId} -> Text
taskId) (\s :: DescribeThingRegistrationTask
s@DescribeThingRegistrationTask' {} Text
a -> DescribeThingRegistrationTask
s {$sel:taskId:DescribeThingRegistrationTask' :: Text
taskId = Text
a} :: DescribeThingRegistrationTask)

instance
  Core.AWSRequest
    DescribeThingRegistrationTask
  where
  type
    AWSResponse DescribeThingRegistrationTask =
      DescribeThingRegistrationTaskResponse
  request :: (Service -> Service)
-> DescribeThingRegistrationTask
-> Request DescribeThingRegistrationTask
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 DescribeThingRegistrationTask
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeThingRegistrationTask)))
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 POSIX
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe TaskStatus
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeThingRegistrationTaskResponse
DescribeThingRegistrationTaskResponse'
            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
"creationDate")
            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
"failureCount")
            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
"inputFileBucket")
            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
"inputFileKey")
            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
"lastModifiedDate")
            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
"message")
            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
"percentageProgress")
            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
"roleArn")
            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
"status")
            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
"successCount")
            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
"taskId")
            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
"templateBody")
            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
    DescribeThingRegistrationTask
  where
  hashWithSalt :: Int -> DescribeThingRegistrationTask -> Int
hashWithSalt Int
_salt DescribeThingRegistrationTask' {Text
taskId :: Text
$sel:taskId:DescribeThingRegistrationTask' :: DescribeThingRegistrationTask -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
taskId

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

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

instance Data.ToPath DescribeThingRegistrationTask where
  toPath :: DescribeThingRegistrationTask -> ByteString
toPath DescribeThingRegistrationTask' {Text
taskId :: Text
$sel:taskId:DescribeThingRegistrationTask' :: DescribeThingRegistrationTask -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/thing-registration-tasks/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
taskId]

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

-- | /See:/ 'newDescribeThingRegistrationTaskResponse' smart constructor.
data DescribeThingRegistrationTaskResponse = DescribeThingRegistrationTaskResponse'
  { -- | The task creation date.
    DescribeThingRegistrationTaskResponse -> Maybe POSIX
creationDate :: Prelude.Maybe Data.POSIX,
    -- | The number of things that failed to be provisioned.
    DescribeThingRegistrationTaskResponse -> Maybe Int
failureCount :: Prelude.Maybe Prelude.Int,
    -- | The S3 bucket that contains the input file.
    DescribeThingRegistrationTaskResponse -> Maybe Text
inputFileBucket :: Prelude.Maybe Prelude.Text,
    -- | The input file key.
    DescribeThingRegistrationTaskResponse -> Maybe Text
inputFileKey :: Prelude.Maybe Prelude.Text,
    -- | The date when the task was last modified.
    DescribeThingRegistrationTaskResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
    -- | The message.
    DescribeThingRegistrationTaskResponse -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
    -- | The progress of the bulk provisioning task expressed as a percentage.
    DescribeThingRegistrationTaskResponse -> Maybe Natural
percentageProgress :: Prelude.Maybe Prelude.Natural,
    -- | The role ARN that grants access to the input file bucket.
    DescribeThingRegistrationTaskResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The status of the bulk thing provisioning task.
    DescribeThingRegistrationTaskResponse -> Maybe TaskStatus
status :: Prelude.Maybe TaskStatus,
    -- | The number of things successfully provisioned.
    DescribeThingRegistrationTaskResponse -> Maybe Int
successCount :: Prelude.Maybe Prelude.Int,
    -- | The task ID.
    DescribeThingRegistrationTaskResponse -> Maybe Text
taskId :: Prelude.Maybe Prelude.Text,
    -- | The task\'s template.
    DescribeThingRegistrationTaskResponse -> Maybe Text
templateBody :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeThingRegistrationTaskResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeThingRegistrationTaskResponse
-> DescribeThingRegistrationTaskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeThingRegistrationTaskResponse
-> DescribeThingRegistrationTaskResponse -> Bool
$c/= :: DescribeThingRegistrationTaskResponse
-> DescribeThingRegistrationTaskResponse -> Bool
== :: DescribeThingRegistrationTaskResponse
-> DescribeThingRegistrationTaskResponse -> Bool
$c== :: DescribeThingRegistrationTaskResponse
-> DescribeThingRegistrationTaskResponse -> Bool
Prelude.Eq, ReadPrec [DescribeThingRegistrationTaskResponse]
ReadPrec DescribeThingRegistrationTaskResponse
Int -> ReadS DescribeThingRegistrationTaskResponse
ReadS [DescribeThingRegistrationTaskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeThingRegistrationTaskResponse]
$creadListPrec :: ReadPrec [DescribeThingRegistrationTaskResponse]
readPrec :: ReadPrec DescribeThingRegistrationTaskResponse
$creadPrec :: ReadPrec DescribeThingRegistrationTaskResponse
readList :: ReadS [DescribeThingRegistrationTaskResponse]
$creadList :: ReadS [DescribeThingRegistrationTaskResponse]
readsPrec :: Int -> ReadS DescribeThingRegistrationTaskResponse
$creadsPrec :: Int -> ReadS DescribeThingRegistrationTaskResponse
Prelude.Read, Int -> DescribeThingRegistrationTaskResponse -> ShowS
[DescribeThingRegistrationTaskResponse] -> ShowS
DescribeThingRegistrationTaskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeThingRegistrationTaskResponse] -> ShowS
$cshowList :: [DescribeThingRegistrationTaskResponse] -> ShowS
show :: DescribeThingRegistrationTaskResponse -> String
$cshow :: DescribeThingRegistrationTaskResponse -> String
showsPrec :: Int -> DescribeThingRegistrationTaskResponse -> ShowS
$cshowsPrec :: Int -> DescribeThingRegistrationTaskResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeThingRegistrationTaskResponse x
-> DescribeThingRegistrationTaskResponse
forall x.
DescribeThingRegistrationTaskResponse
-> Rep DescribeThingRegistrationTaskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeThingRegistrationTaskResponse x
-> DescribeThingRegistrationTaskResponse
$cfrom :: forall x.
DescribeThingRegistrationTaskResponse
-> Rep DescribeThingRegistrationTaskResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeThingRegistrationTaskResponse' 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:
--
-- 'creationDate', 'describeThingRegistrationTaskResponse_creationDate' - The task creation date.
--
-- 'failureCount', 'describeThingRegistrationTaskResponse_failureCount' - The number of things that failed to be provisioned.
--
-- 'inputFileBucket', 'describeThingRegistrationTaskResponse_inputFileBucket' - The S3 bucket that contains the input file.
--
-- 'inputFileKey', 'describeThingRegistrationTaskResponse_inputFileKey' - The input file key.
--
-- 'lastModifiedDate', 'describeThingRegistrationTaskResponse_lastModifiedDate' - The date when the task was last modified.
--
-- 'message', 'describeThingRegistrationTaskResponse_message' - The message.
--
-- 'percentageProgress', 'describeThingRegistrationTaskResponse_percentageProgress' - The progress of the bulk provisioning task expressed as a percentage.
--
-- 'roleArn', 'describeThingRegistrationTaskResponse_roleArn' - The role ARN that grants access to the input file bucket.
--
-- 'status', 'describeThingRegistrationTaskResponse_status' - The status of the bulk thing provisioning task.
--
-- 'successCount', 'describeThingRegistrationTaskResponse_successCount' - The number of things successfully provisioned.
--
-- 'taskId', 'describeThingRegistrationTaskResponse_taskId' - The task ID.
--
-- 'templateBody', 'describeThingRegistrationTaskResponse_templateBody' - The task\'s template.
--
-- 'httpStatus', 'describeThingRegistrationTaskResponse_httpStatus' - The response's http status code.
newDescribeThingRegistrationTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeThingRegistrationTaskResponse
newDescribeThingRegistrationTaskResponse :: Int -> DescribeThingRegistrationTaskResponse
newDescribeThingRegistrationTaskResponse Int
pHttpStatus_ =
  DescribeThingRegistrationTaskResponse'
    { $sel:creationDate:DescribeThingRegistrationTaskResponse' :: Maybe POSIX
creationDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:failureCount:DescribeThingRegistrationTaskResponse' :: Maybe Int
failureCount = forall a. Maybe a
Prelude.Nothing,
      $sel:inputFileBucket:DescribeThingRegistrationTaskResponse' :: Maybe Text
inputFileBucket = forall a. Maybe a
Prelude.Nothing,
      $sel:inputFileKey:DescribeThingRegistrationTaskResponse' :: Maybe Text
inputFileKey = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:DescribeThingRegistrationTaskResponse' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:message:DescribeThingRegistrationTaskResponse' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
      $sel:percentageProgress:DescribeThingRegistrationTaskResponse' :: Maybe Natural
percentageProgress = forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:DescribeThingRegistrationTaskResponse' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeThingRegistrationTaskResponse' :: Maybe TaskStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:successCount:DescribeThingRegistrationTaskResponse' :: Maybe Int
successCount = forall a. Maybe a
Prelude.Nothing,
      $sel:taskId:DescribeThingRegistrationTaskResponse' :: Maybe Text
taskId = forall a. Maybe a
Prelude.Nothing,
      $sel:templateBody:DescribeThingRegistrationTaskResponse' :: Maybe Text
templateBody = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeThingRegistrationTaskResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The task creation date.
describeThingRegistrationTaskResponse_creationDate :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeThingRegistrationTaskResponse_creationDate :: Lens' DescribeThingRegistrationTaskResponse (Maybe UTCTime)
describeThingRegistrationTaskResponse_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe POSIX
creationDate :: Maybe POSIX
$sel:creationDate:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe POSIX
creationDate} -> Maybe POSIX
creationDate) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe POSIX
a -> DescribeThingRegistrationTaskResponse
s {$sel:creationDate:DescribeThingRegistrationTaskResponse' :: Maybe POSIX
creationDate = Maybe POSIX
a} :: DescribeThingRegistrationTaskResponse) 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 number of things that failed to be provisioned.
describeThingRegistrationTaskResponse_failureCount :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Int)
describeThingRegistrationTaskResponse_failureCount :: Lens' DescribeThingRegistrationTaskResponse (Maybe Int)
describeThingRegistrationTaskResponse_failureCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Int
failureCount :: Maybe Int
$sel:failureCount:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Int
failureCount} -> Maybe Int
failureCount) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Int
a -> DescribeThingRegistrationTaskResponse
s {$sel:failureCount:DescribeThingRegistrationTaskResponse' :: Maybe Int
failureCount = Maybe Int
a} :: DescribeThingRegistrationTaskResponse)

-- | The S3 bucket that contains the input file.
describeThingRegistrationTaskResponse_inputFileBucket :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_inputFileBucket :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_inputFileBucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
inputFileBucket :: Maybe Text
$sel:inputFileBucket:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
inputFileBucket} -> Maybe Text
inputFileBucket) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:inputFileBucket:DescribeThingRegistrationTaskResponse' :: Maybe Text
inputFileBucket = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

-- | The input file key.
describeThingRegistrationTaskResponse_inputFileKey :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_inputFileKey :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_inputFileKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
inputFileKey :: Maybe Text
$sel:inputFileKey:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
inputFileKey} -> Maybe Text
inputFileKey) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:inputFileKey:DescribeThingRegistrationTaskResponse' :: Maybe Text
inputFileKey = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

-- | The date when the task was last modified.
describeThingRegistrationTaskResponse_lastModifiedDate :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeThingRegistrationTaskResponse_lastModifiedDate :: Lens' DescribeThingRegistrationTaskResponse (Maybe UTCTime)
describeThingRegistrationTaskResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe POSIX
a -> DescribeThingRegistrationTaskResponse
s {$sel:lastModifiedDate:DescribeThingRegistrationTaskResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: DescribeThingRegistrationTaskResponse) 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 message.
describeThingRegistrationTaskResponse_message :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_message :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
message :: Maybe Text
$sel:message:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
message} -> Maybe Text
message) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:message:DescribeThingRegistrationTaskResponse' :: Maybe Text
message = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

-- | The progress of the bulk provisioning task expressed as a percentage.
describeThingRegistrationTaskResponse_percentageProgress :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Natural)
describeThingRegistrationTaskResponse_percentageProgress :: Lens' DescribeThingRegistrationTaskResponse (Maybe Natural)
describeThingRegistrationTaskResponse_percentageProgress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Natural
percentageProgress :: Maybe Natural
$sel:percentageProgress:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Natural
percentageProgress} -> Maybe Natural
percentageProgress) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Natural
a -> DescribeThingRegistrationTaskResponse
s {$sel:percentageProgress:DescribeThingRegistrationTaskResponse' :: Maybe Natural
percentageProgress = Maybe Natural
a} :: DescribeThingRegistrationTaskResponse)

-- | The role ARN that grants access to the input file bucket.
describeThingRegistrationTaskResponse_roleArn :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_roleArn :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:roleArn:DescribeThingRegistrationTaskResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

-- | The status of the bulk thing provisioning task.
describeThingRegistrationTaskResponse_status :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe TaskStatus)
describeThingRegistrationTaskResponse_status :: Lens' DescribeThingRegistrationTaskResponse (Maybe TaskStatus)
describeThingRegistrationTaskResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe TaskStatus
status :: Maybe TaskStatus
$sel:status:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe TaskStatus
status} -> Maybe TaskStatus
status) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe TaskStatus
a -> DescribeThingRegistrationTaskResponse
s {$sel:status:DescribeThingRegistrationTaskResponse' :: Maybe TaskStatus
status = Maybe TaskStatus
a} :: DescribeThingRegistrationTaskResponse)

-- | The number of things successfully provisioned.
describeThingRegistrationTaskResponse_successCount :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Int)
describeThingRegistrationTaskResponse_successCount :: Lens' DescribeThingRegistrationTaskResponse (Maybe Int)
describeThingRegistrationTaskResponse_successCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Int
successCount :: Maybe Int
$sel:successCount:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Int
successCount} -> Maybe Int
successCount) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Int
a -> DescribeThingRegistrationTaskResponse
s {$sel:successCount:DescribeThingRegistrationTaskResponse' :: Maybe Int
successCount = Maybe Int
a} :: DescribeThingRegistrationTaskResponse)

-- | The task ID.
describeThingRegistrationTaskResponse_taskId :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_taskId :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_taskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
taskId :: Maybe Text
$sel:taskId:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
taskId} -> Maybe Text
taskId) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:taskId:DescribeThingRegistrationTaskResponse' :: Maybe Text
taskId = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

-- | The task\'s template.
describeThingRegistrationTaskResponse_templateBody :: Lens.Lens' DescribeThingRegistrationTaskResponse (Prelude.Maybe Prelude.Text)
describeThingRegistrationTaskResponse_templateBody :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)
describeThingRegistrationTaskResponse_templateBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeThingRegistrationTaskResponse' {Maybe Text
templateBody :: Maybe Text
$sel:templateBody:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
templateBody} -> Maybe Text
templateBody) (\s :: DescribeThingRegistrationTaskResponse
s@DescribeThingRegistrationTaskResponse' {} Maybe Text
a -> DescribeThingRegistrationTaskResponse
s {$sel:templateBody:DescribeThingRegistrationTaskResponse' :: Maybe Text
templateBody = Maybe Text
a} :: DescribeThingRegistrationTaskResponse)

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

instance
  Prelude.NFData
    DescribeThingRegistrationTaskResponse
  where
  rnf :: DescribeThingRegistrationTaskResponse -> ()
rnf DescribeThingRegistrationTaskResponse' {Int
Maybe Int
Maybe Natural
Maybe Text
Maybe POSIX
Maybe TaskStatus
httpStatus :: Int
templateBody :: Maybe Text
taskId :: Maybe Text
successCount :: Maybe Int
status :: Maybe TaskStatus
roleArn :: Maybe Text
percentageProgress :: Maybe Natural
message :: Maybe Text
lastModifiedDate :: Maybe POSIX
inputFileKey :: Maybe Text
inputFileBucket :: Maybe Text
failureCount :: Maybe Int
creationDate :: Maybe POSIX
$sel:httpStatus:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Int
$sel:templateBody:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:taskId:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:successCount:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Int
$sel:status:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe TaskStatus
$sel:roleArn:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:percentageProgress:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Natural
$sel:message:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:lastModifiedDate:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe POSIX
$sel:inputFileKey:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:inputFileBucket:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Text
$sel:failureCount:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe Int
$sel:creationDate:DescribeThingRegistrationTaskResponse' :: DescribeThingRegistrationTaskResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
failureCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
inputFileBucket
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
inputFileKey
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
percentageProgress
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TaskStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
successCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
taskId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateBody
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus