{-# 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.SnowDeviceManagement.DescribeTask
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Checks the metadata for a given task on a device.
module Amazonka.SnowDeviceManagement.DescribeTask
  ( -- * Creating a Request
    DescribeTask (..),
    newDescribeTask,

    -- * Request Lenses
    describeTask_taskId,

    -- * Destructuring the Response
    DescribeTaskResponse (..),
    newDescribeTaskResponse,

    -- * Response Lenses
    describeTaskResponse_completedAt,
    describeTaskResponse_createdAt,
    describeTaskResponse_description,
    describeTaskResponse_lastUpdatedAt,
    describeTaskResponse_state,
    describeTaskResponse_tags,
    describeTaskResponse_targets,
    describeTaskResponse_taskArn,
    describeTaskResponse_taskId,
    describeTaskResponse_httpStatus,
  )
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SnowDeviceManagement.Types

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

-- |
-- Create a value of 'DescribeTask' 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', 'describeTask_taskId' - The ID of the task to be described.
newDescribeTask ::
  -- | 'taskId'
  Prelude.Text ->
  DescribeTask
newDescribeTask :: Text -> DescribeTask
newDescribeTask Text
pTaskId_ =
  DescribeTask' {$sel:taskId:DescribeTask' :: Text
taskId = Text
pTaskId_}

-- | The ID of the task to be described.
describeTask_taskId :: Lens.Lens' DescribeTask Prelude.Text
describeTask_taskId :: Lens' DescribeTask Text
describeTask_taskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTask' {Text
taskId :: Text
$sel:taskId:DescribeTask' :: DescribeTask -> Text
taskId} -> Text
taskId) (\s :: DescribeTask
s@DescribeTask' {} Text
a -> DescribeTask
s {$sel:taskId:DescribeTask' :: Text
taskId = Text
a} :: DescribeTask)

instance Core.AWSRequest DescribeTask where
  type AWSResponse DescribeTask = DescribeTaskResponse
  request :: (Service -> Service) -> DescribeTask -> Request DescribeTask
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 DescribeTask
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeTask)))
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 POSIX
-> Maybe Text
-> Maybe POSIX
-> Maybe TaskState
-> Maybe (HashMap Text Text)
-> Maybe (NonEmpty Text)
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeTaskResponse
DescribeTaskResponse'
            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
"completedAt")
            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
"createdAt")
            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
"description")
            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
"lastUpdatedAt")
            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
"state")
            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
"targets")
            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
"taskArn")
            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeTask where
  hashWithSalt :: Int -> DescribeTask -> Int
hashWithSalt Int
_salt DescribeTask' {Text
taskId :: Text
$sel:taskId:DescribeTask' :: DescribeTask -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
taskId

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

instance Data.ToHeaders DescribeTask where
  toHeaders :: DescribeTask -> 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.ToJSON DescribeTask where
  toJSON :: DescribeTask -> Value
toJSON = forall a b. a -> b -> a
Prelude.const (Object -> Value
Data.Object forall a. Monoid a => a
Prelude.mempty)

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

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

-- | /See:/ 'newDescribeTaskResponse' smart constructor.
data DescribeTaskResponse = DescribeTaskResponse'
  { -- | When the task was completed.
    DescribeTaskResponse -> Maybe POSIX
completedAt :: Prelude.Maybe Data.POSIX,
    -- | When the @CreateTask@ operation was called.
    DescribeTaskResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | The description provided of the task and managed devices.
    DescribeTaskResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | When the state of the task was last updated.
    DescribeTaskResponse -> Maybe POSIX
lastUpdatedAt :: Prelude.Maybe Data.POSIX,
    -- | The current state of the task.
    DescribeTaskResponse -> Maybe TaskState
state :: Prelude.Maybe TaskState,
    -- | Optional metadata that you assign to a resource. You can use tags to
    -- categorize a resource in different ways, such as by purpose, owner, or
    -- environment.
    DescribeTaskResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The managed devices that the task was sent to.
    DescribeTaskResponse -> Maybe (NonEmpty Text)
targets :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The Amazon Resource Name (ARN) of the task.
    DescribeTaskResponse -> Maybe Text
taskArn :: Prelude.Maybe Prelude.Text,
    -- | The ID of the task.
    DescribeTaskResponse -> Maybe Text
taskId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeTaskResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeTaskResponse -> DescribeTaskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTaskResponse -> DescribeTaskResponse -> Bool
$c/= :: DescribeTaskResponse -> DescribeTaskResponse -> Bool
== :: DescribeTaskResponse -> DescribeTaskResponse -> Bool
$c== :: DescribeTaskResponse -> DescribeTaskResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTaskResponse]
ReadPrec DescribeTaskResponse
Int -> ReadS DescribeTaskResponse
ReadS [DescribeTaskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTaskResponse]
$creadListPrec :: ReadPrec [DescribeTaskResponse]
readPrec :: ReadPrec DescribeTaskResponse
$creadPrec :: ReadPrec DescribeTaskResponse
readList :: ReadS [DescribeTaskResponse]
$creadList :: ReadS [DescribeTaskResponse]
readsPrec :: Int -> ReadS DescribeTaskResponse
$creadsPrec :: Int -> ReadS DescribeTaskResponse
Prelude.Read, Int -> DescribeTaskResponse -> ShowS
[DescribeTaskResponse] -> ShowS
DescribeTaskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTaskResponse] -> ShowS
$cshowList :: [DescribeTaskResponse] -> ShowS
show :: DescribeTaskResponse -> String
$cshow :: DescribeTaskResponse -> String
showsPrec :: Int -> DescribeTaskResponse -> ShowS
$cshowsPrec :: Int -> DescribeTaskResponse -> ShowS
Prelude.Show, forall x. Rep DescribeTaskResponse x -> DescribeTaskResponse
forall x. DescribeTaskResponse -> Rep DescribeTaskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTaskResponse x -> DescribeTaskResponse
$cfrom :: forall x. DescribeTaskResponse -> Rep DescribeTaskResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTaskResponse' 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:
--
-- 'completedAt', 'describeTaskResponse_completedAt' - When the task was completed.
--
-- 'createdAt', 'describeTaskResponse_createdAt' - When the @CreateTask@ operation was called.
--
-- 'description', 'describeTaskResponse_description' - The description provided of the task and managed devices.
--
-- 'lastUpdatedAt', 'describeTaskResponse_lastUpdatedAt' - When the state of the task was last updated.
--
-- 'state', 'describeTaskResponse_state' - The current state of the task.
--
-- 'tags', 'describeTaskResponse_tags' - Optional metadata that you assign to a resource. You can use tags to
-- categorize a resource in different ways, such as by purpose, owner, or
-- environment.
--
-- 'targets', 'describeTaskResponse_targets' - The managed devices that the task was sent to.
--
-- 'taskArn', 'describeTaskResponse_taskArn' - The Amazon Resource Name (ARN) of the task.
--
-- 'taskId', 'describeTaskResponse_taskId' - The ID of the task.
--
-- 'httpStatus', 'describeTaskResponse_httpStatus' - The response's http status code.
newDescribeTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeTaskResponse
newDescribeTaskResponse :: Int -> DescribeTaskResponse
newDescribeTaskResponse Int
pHttpStatus_ =
  DescribeTaskResponse'
    { $sel:completedAt:DescribeTaskResponse' :: Maybe POSIX
completedAt =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeTaskResponse' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeTaskResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedAt:DescribeTaskResponse' :: Maybe POSIX
lastUpdatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:state:DescribeTaskResponse' :: Maybe TaskState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeTaskResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:targets:DescribeTaskResponse' :: Maybe (NonEmpty Text)
targets = forall a. Maybe a
Prelude.Nothing,
      $sel:taskArn:DescribeTaskResponse' :: Maybe Text
taskArn = forall a. Maybe a
Prelude.Nothing,
      $sel:taskId:DescribeTaskResponse' :: Maybe Text
taskId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeTaskResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | When the task was completed.
describeTaskResponse_completedAt :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeTaskResponse_completedAt :: Lens' DescribeTaskResponse (Maybe UTCTime)
describeTaskResponse_completedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe POSIX
completedAt :: Maybe POSIX
$sel:completedAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
completedAt} -> Maybe POSIX
completedAt) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe POSIX
a -> DescribeTaskResponse
s {$sel:completedAt:DescribeTaskResponse' :: Maybe POSIX
completedAt = Maybe POSIX
a} :: DescribeTaskResponse) 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

-- | When the @CreateTask@ operation was called.
describeTaskResponse_createdAt :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeTaskResponse_createdAt :: Lens' DescribeTaskResponse (Maybe UTCTime)
describeTaskResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe POSIX
a -> DescribeTaskResponse
s {$sel:createdAt:DescribeTaskResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: DescribeTaskResponse) 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 description provided of the task and managed devices.
describeTaskResponse_description :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)
describeTaskResponse_description :: Lens' DescribeTaskResponse (Maybe Text)
describeTaskResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe Text
a -> DescribeTaskResponse
s {$sel:description:DescribeTaskResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeTaskResponse)

-- | When the state of the task was last updated.
describeTaskResponse_lastUpdatedAt :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeTaskResponse_lastUpdatedAt :: Lens' DescribeTaskResponse (Maybe UTCTime)
describeTaskResponse_lastUpdatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe POSIX
lastUpdatedAt :: Maybe POSIX
$sel:lastUpdatedAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
lastUpdatedAt} -> Maybe POSIX
lastUpdatedAt) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe POSIX
a -> DescribeTaskResponse
s {$sel:lastUpdatedAt:DescribeTaskResponse' :: Maybe POSIX
lastUpdatedAt = Maybe POSIX
a} :: DescribeTaskResponse) 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 current state of the task.
describeTaskResponse_state :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe TaskState)
describeTaskResponse_state :: Lens' DescribeTaskResponse (Maybe TaskState)
describeTaskResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe TaskState
state :: Maybe TaskState
$sel:state:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe TaskState
state} -> Maybe TaskState
state) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe TaskState
a -> DescribeTaskResponse
s {$sel:state:DescribeTaskResponse' :: Maybe TaskState
state = Maybe TaskState
a} :: DescribeTaskResponse)

-- | Optional metadata that you assign to a resource. You can use tags to
-- categorize a resource in different ways, such as by purpose, owner, or
-- environment.
describeTaskResponse_tags :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeTaskResponse_tags :: Lens' DescribeTaskResponse (Maybe (HashMap Text Text))
describeTaskResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe (HashMap Text Text)
a -> DescribeTaskResponse
s {$sel:tags:DescribeTaskResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeTaskResponse) 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 managed devices that the task was sent to.
describeTaskResponse_targets :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
describeTaskResponse_targets :: Lens' DescribeTaskResponse (Maybe (NonEmpty Text))
describeTaskResponse_targets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe (NonEmpty Text)
targets :: Maybe (NonEmpty Text)
$sel:targets:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe (NonEmpty Text)
targets} -> Maybe (NonEmpty Text)
targets) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe (NonEmpty Text)
a -> DescribeTaskResponse
s {$sel:targets:DescribeTaskResponse' :: Maybe (NonEmpty Text)
targets = Maybe (NonEmpty Text)
a} :: DescribeTaskResponse) 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 Amazon Resource Name (ARN) of the task.
describeTaskResponse_taskArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)
describeTaskResponse_taskArn :: Lens' DescribeTaskResponse (Maybe Text)
describeTaskResponse_taskArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTaskResponse' {Maybe Text
taskArn :: Maybe Text
$sel:taskArn:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe Text
taskArn} -> Maybe Text
taskArn) (\s :: DescribeTaskResponse
s@DescribeTaskResponse' {} Maybe Text
a -> DescribeTaskResponse
s {$sel:taskArn:DescribeTaskResponse' :: Maybe Text
taskArn = Maybe Text
a} :: DescribeTaskResponse)

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

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

instance Prelude.NFData DescribeTaskResponse where
  rnf :: DescribeTaskResponse -> ()
rnf DescribeTaskResponse' {Int
Maybe (NonEmpty Text)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe TaskState
httpStatus :: Int
taskId :: Maybe Text
taskArn :: Maybe Text
targets :: Maybe (NonEmpty Text)
tags :: Maybe (HashMap Text Text)
state :: Maybe TaskState
lastUpdatedAt :: Maybe POSIX
description :: Maybe Text
createdAt :: Maybe POSIX
completedAt :: Maybe POSIX
$sel:httpStatus:DescribeTaskResponse' :: DescribeTaskResponse -> Int
$sel:taskId:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe Text
$sel:taskArn:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe Text
$sel:targets:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe (NonEmpty Text)
$sel:tags:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe (HashMap Text Text)
$sel:state:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe TaskState
$sel:lastUpdatedAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
$sel:description:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe Text
$sel:createdAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
$sel:completedAt:DescribeTaskResponse' :: DescribeTaskResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
completedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TaskState
state
      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 (NonEmpty Text)
targets
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
taskArn
      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 Int
httpStatus