{-# 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.RobOMaker.DescribeWorldGenerationJob
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes a world generation job.
module Amazonka.RobOMaker.DescribeWorldGenerationJob
  ( -- * Creating a Request
    DescribeWorldGenerationJob (..),
    newDescribeWorldGenerationJob,

    -- * Request Lenses
    describeWorldGenerationJob_job,

    -- * Destructuring the Response
    DescribeWorldGenerationJobResponse (..),
    newDescribeWorldGenerationJobResponse,

    -- * Response Lenses
    describeWorldGenerationJobResponse_failureReason,
    describeWorldGenerationJobResponse_status,
    describeWorldGenerationJobResponse_arn,
    describeWorldGenerationJobResponse_createdAt,
    describeWorldGenerationJobResponse_failureCode,
    describeWorldGenerationJobResponse_worldCount,
    describeWorldGenerationJobResponse_finishedWorldsSummary,
    describeWorldGenerationJobResponse_template,
    describeWorldGenerationJobResponse_worldTags,
    describeWorldGenerationJobResponse_clientRequestToken,
    describeWorldGenerationJobResponse_tags,
    describeWorldGenerationJobResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.RobOMaker.Types

-- | /See:/ 'newDescribeWorldGenerationJob' smart constructor.
data DescribeWorldGenerationJob = DescribeWorldGenerationJob'
  { -- | The Amazon Resource Name (arn) of the world generation job to describe.
    DescribeWorldGenerationJob -> Text
job :: Prelude.Text
  }
  deriving (DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool
(DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool)
-> (DescribeWorldGenerationJob
    -> DescribeWorldGenerationJob -> Bool)
-> Eq DescribeWorldGenerationJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool
$c/= :: DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool
== :: DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool
$c== :: DescribeWorldGenerationJob -> DescribeWorldGenerationJob -> Bool
Prelude.Eq, ReadPrec [DescribeWorldGenerationJob]
ReadPrec DescribeWorldGenerationJob
Int -> ReadS DescribeWorldGenerationJob
ReadS [DescribeWorldGenerationJob]
(Int -> ReadS DescribeWorldGenerationJob)
-> ReadS [DescribeWorldGenerationJob]
-> ReadPrec DescribeWorldGenerationJob
-> ReadPrec [DescribeWorldGenerationJob]
-> Read DescribeWorldGenerationJob
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeWorldGenerationJob]
$creadListPrec :: ReadPrec [DescribeWorldGenerationJob]
readPrec :: ReadPrec DescribeWorldGenerationJob
$creadPrec :: ReadPrec DescribeWorldGenerationJob
readList :: ReadS [DescribeWorldGenerationJob]
$creadList :: ReadS [DescribeWorldGenerationJob]
readsPrec :: Int -> ReadS DescribeWorldGenerationJob
$creadsPrec :: Int -> ReadS DescribeWorldGenerationJob
Prelude.Read, Int -> DescribeWorldGenerationJob -> ShowS
[DescribeWorldGenerationJob] -> ShowS
DescribeWorldGenerationJob -> String
(Int -> DescribeWorldGenerationJob -> ShowS)
-> (DescribeWorldGenerationJob -> String)
-> ([DescribeWorldGenerationJob] -> ShowS)
-> Show DescribeWorldGenerationJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeWorldGenerationJob] -> ShowS
$cshowList :: [DescribeWorldGenerationJob] -> ShowS
show :: DescribeWorldGenerationJob -> String
$cshow :: DescribeWorldGenerationJob -> String
showsPrec :: Int -> DescribeWorldGenerationJob -> ShowS
$cshowsPrec :: Int -> DescribeWorldGenerationJob -> ShowS
Prelude.Show, (forall x.
 DescribeWorldGenerationJob -> Rep DescribeWorldGenerationJob x)
-> (forall x.
    Rep DescribeWorldGenerationJob x -> DescribeWorldGenerationJob)
-> Generic DescribeWorldGenerationJob
forall x.
Rep DescribeWorldGenerationJob x -> DescribeWorldGenerationJob
forall x.
DescribeWorldGenerationJob -> Rep DescribeWorldGenerationJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeWorldGenerationJob x -> DescribeWorldGenerationJob
$cfrom :: forall x.
DescribeWorldGenerationJob -> Rep DescribeWorldGenerationJob x
Prelude.Generic)

-- |
-- Create a value of 'DescribeWorldGenerationJob' 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:
--
-- 'job', 'describeWorldGenerationJob_job' - The Amazon Resource Name (arn) of the world generation job to describe.
newDescribeWorldGenerationJob ::
  -- | 'job'
  Prelude.Text ->
  DescribeWorldGenerationJob
newDescribeWorldGenerationJob :: Text -> DescribeWorldGenerationJob
newDescribeWorldGenerationJob Text
pJob_ =
  DescribeWorldGenerationJob' :: Text -> DescribeWorldGenerationJob
DescribeWorldGenerationJob' {$sel:job:DescribeWorldGenerationJob' :: Text
job = Text
pJob_}

-- | The Amazon Resource Name (arn) of the world generation job to describe.
describeWorldGenerationJob_job :: Lens.Lens' DescribeWorldGenerationJob Prelude.Text
describeWorldGenerationJob_job :: (Text -> f Text)
-> DescribeWorldGenerationJob -> f DescribeWorldGenerationJob
describeWorldGenerationJob_job = (DescribeWorldGenerationJob -> Text)
-> (DescribeWorldGenerationJob
    -> Text -> DescribeWorldGenerationJob)
-> Lens
     DescribeWorldGenerationJob DescribeWorldGenerationJob Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJob' {Text
job :: Text
$sel:job:DescribeWorldGenerationJob' :: DescribeWorldGenerationJob -> Text
job} -> Text
job) (\s :: DescribeWorldGenerationJob
s@DescribeWorldGenerationJob' {} Text
a -> DescribeWorldGenerationJob
s {$sel:job:DescribeWorldGenerationJob' :: Text
job = Text
a} :: DescribeWorldGenerationJob)

instance Core.AWSRequest DescribeWorldGenerationJob where
  type
    AWSResponse DescribeWorldGenerationJob =
      DescribeWorldGenerationJobResponse
  request :: DescribeWorldGenerationJob -> Request DescribeWorldGenerationJob
request = Service
-> DescribeWorldGenerationJob -> Request DescribeWorldGenerationJob
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeWorldGenerationJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeWorldGenerationJob)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeWorldGenerationJob))
-> Logger
-> Service
-> Proxy DescribeWorldGenerationJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeWorldGenerationJob)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe WorldGenerationJobStatus
-> Maybe Text
-> Maybe POSIX
-> Maybe WorldGenerationJobErrorCode
-> Maybe WorldCount
-> Maybe FinishedWorldsSummary
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> DescribeWorldGenerationJobResponse
DescribeWorldGenerationJobResponse'
            (Maybe Text
 -> Maybe WorldGenerationJobStatus
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe WorldGenerationJobErrorCode
 -> Maybe WorldCount
 -> Maybe FinishedWorldsSummary
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Int
 -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe WorldGenerationJobStatus
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe WorldGenerationJobErrorCode
      -> Maybe WorldCount
      -> Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"failureReason")
            Either
  String
  (Maybe WorldGenerationJobStatus
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe WorldGenerationJobErrorCode
   -> Maybe WorldCount
   -> Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe WorldGenerationJobStatus)
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe WorldGenerationJobErrorCode
      -> Maybe WorldCount
      -> Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe WorldGenerationJobStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"status")
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe WorldGenerationJobErrorCode
   -> Maybe WorldCount
   -> Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe WorldGenerationJobErrorCode
      -> Maybe WorldCount
      -> Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"arn")
            Either
  String
  (Maybe POSIX
   -> Maybe WorldGenerationJobErrorCode
   -> Maybe WorldCount
   -> Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe WorldGenerationJobErrorCode
      -> Maybe WorldCount
      -> Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"createdAt")
            Either
  String
  (Maybe WorldGenerationJobErrorCode
   -> Maybe WorldCount
   -> Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe WorldGenerationJobErrorCode)
-> Either
     String
     (Maybe WorldCount
      -> Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe WorldGenerationJobErrorCode)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"failureCode")
            Either
  String
  (Maybe WorldCount
   -> Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe WorldCount)
-> Either
     String
     (Maybe FinishedWorldsSummary
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe WorldCount)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"worldCount")
            Either
  String
  (Maybe FinishedWorldsSummary
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe FinishedWorldsSummary)
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe FinishedWorldsSummary)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"finishedWorldsSummary")
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"template")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"worldTags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Int -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"clientRequestToken")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Int -> DescribeWorldGenerationJobResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either String (Int -> DescribeWorldGenerationJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"tags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> DescribeWorldGenerationJobResponse)
-> Either String Int
-> Either String DescribeWorldGenerationJobResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeWorldGenerationJob

instance Prelude.NFData DescribeWorldGenerationJob

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

instance Core.ToJSON DescribeWorldGenerationJob where
  toJSON :: DescribeWorldGenerationJob -> Value
toJSON DescribeWorldGenerationJob' {Text
job :: Text
$sel:job:DescribeWorldGenerationJob' :: DescribeWorldGenerationJob -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"job" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
job)]
      )

instance Core.ToPath DescribeWorldGenerationJob where
  toPath :: DescribeWorldGenerationJob -> ByteString
toPath = ByteString -> DescribeWorldGenerationJob -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/describeWorldGenerationJob"

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

-- | /See:/ 'newDescribeWorldGenerationJobResponse' smart constructor.
data DescribeWorldGenerationJobResponse = DescribeWorldGenerationJobResponse'
  { -- | The reason why the world generation job failed.
    DescribeWorldGenerationJobResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The status of the world generation job:
    --
    -- [Pending]
    --     The world generation job request is pending.
    --
    -- [Running]
    --     The world generation job is running.
    --
    -- [Completed]
    --     The world generation job completed.
    --
    -- [Failed]
    --     The world generation job failed. See @failureCode@ for more
    --     information.
    --
    -- [PartialFailed]
    --     Some worlds did not generate.
    --
    -- [Canceled]
    --     The world generation job was cancelled.
    --
    -- [Canceling]
    --     The world generation job is being cancelled.
    DescribeWorldGenerationJobResponse
-> Maybe WorldGenerationJobStatus
status :: Prelude.Maybe WorldGenerationJobStatus,
    -- | The Amazon Resource Name (ARN) of the world generation job.
    DescribeWorldGenerationJobResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The time, in milliseconds since the epoch, when the world generation job
    -- was created.
    DescribeWorldGenerationJobResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Core.POSIX,
    -- | The failure code of the world generation job if it failed:
    --
    -- [InternalServiceError]
    --     Internal service error.
    --
    -- [LimitExceeded]
    --     The requested resource exceeds the maximum number allowed, or the
    --     number of concurrent stream requests exceeds the maximum number
    --     allowed.
    --
    -- [ResourceNotFound]
    --     The specified resource could not be found.
    --
    -- [RequestThrottled]
    --     The request was throttled.
    --
    -- [InvalidInput]
    --     An input parameter in the request is not valid.
    DescribeWorldGenerationJobResponse
-> Maybe WorldGenerationJobErrorCode
failureCode :: Prelude.Maybe WorldGenerationJobErrorCode,
    -- | Information about the world count.
    DescribeWorldGenerationJobResponse -> Maybe WorldCount
worldCount :: Prelude.Maybe WorldCount,
    -- | Summary information about finished worlds.
    DescribeWorldGenerationJobResponse -> Maybe FinishedWorldsSummary
finishedWorldsSummary :: Prelude.Maybe FinishedWorldsSummary,
    -- | The Amazon Resource Name (arn) of the world template.
    DescribeWorldGenerationJobResponse -> Maybe Text
template :: Prelude.Maybe Prelude.Text,
    -- | A map that contains tag keys and tag values that are attached to the
    -- generated worlds.
    DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text)
worldTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Unique, case-sensitive identifier that you provide to ensure the
    -- idempotency of the request.
    DescribeWorldGenerationJobResponse -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
    -- | A map that contains tag keys and tag values that are attached to the
    -- world generation job.
    DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeWorldGenerationJobResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeWorldGenerationJobResponse
-> DescribeWorldGenerationJobResponse -> Bool
(DescribeWorldGenerationJobResponse
 -> DescribeWorldGenerationJobResponse -> Bool)
-> (DescribeWorldGenerationJobResponse
    -> DescribeWorldGenerationJobResponse -> Bool)
-> Eq DescribeWorldGenerationJobResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeWorldGenerationJobResponse
-> DescribeWorldGenerationJobResponse -> Bool
$c/= :: DescribeWorldGenerationJobResponse
-> DescribeWorldGenerationJobResponse -> Bool
== :: DescribeWorldGenerationJobResponse
-> DescribeWorldGenerationJobResponse -> Bool
$c== :: DescribeWorldGenerationJobResponse
-> DescribeWorldGenerationJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeWorldGenerationJobResponse]
ReadPrec DescribeWorldGenerationJobResponse
Int -> ReadS DescribeWorldGenerationJobResponse
ReadS [DescribeWorldGenerationJobResponse]
(Int -> ReadS DescribeWorldGenerationJobResponse)
-> ReadS [DescribeWorldGenerationJobResponse]
-> ReadPrec DescribeWorldGenerationJobResponse
-> ReadPrec [DescribeWorldGenerationJobResponse]
-> Read DescribeWorldGenerationJobResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeWorldGenerationJobResponse]
$creadListPrec :: ReadPrec [DescribeWorldGenerationJobResponse]
readPrec :: ReadPrec DescribeWorldGenerationJobResponse
$creadPrec :: ReadPrec DescribeWorldGenerationJobResponse
readList :: ReadS [DescribeWorldGenerationJobResponse]
$creadList :: ReadS [DescribeWorldGenerationJobResponse]
readsPrec :: Int -> ReadS DescribeWorldGenerationJobResponse
$creadsPrec :: Int -> ReadS DescribeWorldGenerationJobResponse
Prelude.Read, Int -> DescribeWorldGenerationJobResponse -> ShowS
[DescribeWorldGenerationJobResponse] -> ShowS
DescribeWorldGenerationJobResponse -> String
(Int -> DescribeWorldGenerationJobResponse -> ShowS)
-> (DescribeWorldGenerationJobResponse -> String)
-> ([DescribeWorldGenerationJobResponse] -> ShowS)
-> Show DescribeWorldGenerationJobResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeWorldGenerationJobResponse] -> ShowS
$cshowList :: [DescribeWorldGenerationJobResponse] -> ShowS
show :: DescribeWorldGenerationJobResponse -> String
$cshow :: DescribeWorldGenerationJobResponse -> String
showsPrec :: Int -> DescribeWorldGenerationJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeWorldGenerationJobResponse -> ShowS
Prelude.Show, (forall x.
 DescribeWorldGenerationJobResponse
 -> Rep DescribeWorldGenerationJobResponse x)
-> (forall x.
    Rep DescribeWorldGenerationJobResponse x
    -> DescribeWorldGenerationJobResponse)
-> Generic DescribeWorldGenerationJobResponse
forall x.
Rep DescribeWorldGenerationJobResponse x
-> DescribeWorldGenerationJobResponse
forall x.
DescribeWorldGenerationJobResponse
-> Rep DescribeWorldGenerationJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeWorldGenerationJobResponse x
-> DescribeWorldGenerationJobResponse
$cfrom :: forall x.
DescribeWorldGenerationJobResponse
-> Rep DescribeWorldGenerationJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeWorldGenerationJobResponse' 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:
--
-- 'failureReason', 'describeWorldGenerationJobResponse_failureReason' - The reason why the world generation job failed.
--
-- 'status', 'describeWorldGenerationJobResponse_status' - The status of the world generation job:
--
-- [Pending]
--     The world generation job request is pending.
--
-- [Running]
--     The world generation job is running.
--
-- [Completed]
--     The world generation job completed.
--
-- [Failed]
--     The world generation job failed. See @failureCode@ for more
--     information.
--
-- [PartialFailed]
--     Some worlds did not generate.
--
-- [Canceled]
--     The world generation job was cancelled.
--
-- [Canceling]
--     The world generation job is being cancelled.
--
-- 'arn', 'describeWorldGenerationJobResponse_arn' - The Amazon Resource Name (ARN) of the world generation job.
--
-- 'createdAt', 'describeWorldGenerationJobResponse_createdAt' - The time, in milliseconds since the epoch, when the world generation job
-- was created.
--
-- 'failureCode', 'describeWorldGenerationJobResponse_failureCode' - The failure code of the world generation job if it failed:
--
-- [InternalServiceError]
--     Internal service error.
--
-- [LimitExceeded]
--     The requested resource exceeds the maximum number allowed, or the
--     number of concurrent stream requests exceeds the maximum number
--     allowed.
--
-- [ResourceNotFound]
--     The specified resource could not be found.
--
-- [RequestThrottled]
--     The request was throttled.
--
-- [InvalidInput]
--     An input parameter in the request is not valid.
--
-- 'worldCount', 'describeWorldGenerationJobResponse_worldCount' - Information about the world count.
--
-- 'finishedWorldsSummary', 'describeWorldGenerationJobResponse_finishedWorldsSummary' - Summary information about finished worlds.
--
-- 'template', 'describeWorldGenerationJobResponse_template' - The Amazon Resource Name (arn) of the world template.
--
-- 'worldTags', 'describeWorldGenerationJobResponse_worldTags' - A map that contains tag keys and tag values that are attached to the
-- generated worlds.
--
-- 'clientRequestToken', 'describeWorldGenerationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request.
--
-- 'tags', 'describeWorldGenerationJobResponse_tags' - A map that contains tag keys and tag values that are attached to the
-- world generation job.
--
-- 'httpStatus', 'describeWorldGenerationJobResponse_httpStatus' - The response's http status code.
newDescribeWorldGenerationJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeWorldGenerationJobResponse
newDescribeWorldGenerationJobResponse :: Int -> DescribeWorldGenerationJobResponse
newDescribeWorldGenerationJobResponse Int
pHttpStatus_ =
  DescribeWorldGenerationJobResponse' :: Maybe Text
-> Maybe WorldGenerationJobStatus
-> Maybe Text
-> Maybe POSIX
-> Maybe WorldGenerationJobErrorCode
-> Maybe WorldCount
-> Maybe FinishedWorldsSummary
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> DescribeWorldGenerationJobResponse
DescribeWorldGenerationJobResponse'
    { $sel:failureReason:DescribeWorldGenerationJobResponse' :: Maybe Text
failureReason =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeWorldGenerationJobResponse' :: Maybe WorldGenerationJobStatus
status = Maybe WorldGenerationJobStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:DescribeWorldGenerationJobResponse' :: Maybe Text
arn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeWorldGenerationJobResponse' :: Maybe POSIX
createdAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:failureCode:DescribeWorldGenerationJobResponse' :: Maybe WorldGenerationJobErrorCode
failureCode = Maybe WorldGenerationJobErrorCode
forall a. Maybe a
Prelude.Nothing,
      $sel:worldCount:DescribeWorldGenerationJobResponse' :: Maybe WorldCount
worldCount = Maybe WorldCount
forall a. Maybe a
Prelude.Nothing,
      $sel:finishedWorldsSummary:DescribeWorldGenerationJobResponse' :: Maybe FinishedWorldsSummary
finishedWorldsSummary = Maybe FinishedWorldsSummary
forall a. Maybe a
Prelude.Nothing,
      $sel:template:DescribeWorldGenerationJobResponse' :: Maybe Text
template = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:worldTags:DescribeWorldGenerationJobResponse' :: Maybe (HashMap Text Text)
worldTags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:clientRequestToken:DescribeWorldGenerationJobResponse' :: Maybe Text
clientRequestToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeWorldGenerationJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeWorldGenerationJobResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The reason why the world generation job failed.
describeWorldGenerationJobResponse_failureReason :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)
describeWorldGenerationJobResponse_failureReason :: (Maybe Text -> f (Maybe Text))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_failureReason = (DescribeWorldGenerationJobResponse -> Maybe Text)
-> (DescribeWorldGenerationJobResponse
    -> Maybe Text -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe Text
a -> DescribeWorldGenerationJobResponse
s {$sel:failureReason:DescribeWorldGenerationJobResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeWorldGenerationJobResponse)

-- | The status of the world generation job:
--
-- [Pending]
--     The world generation job request is pending.
--
-- [Running]
--     The world generation job is running.
--
-- [Completed]
--     The world generation job completed.
--
-- [Failed]
--     The world generation job failed. See @failureCode@ for more
--     information.
--
-- [PartialFailed]
--     Some worlds did not generate.
--
-- [Canceled]
--     The world generation job was cancelled.
--
-- [Canceling]
--     The world generation job is being cancelled.
describeWorldGenerationJobResponse_status :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobStatus)
describeWorldGenerationJobResponse_status :: (Maybe WorldGenerationJobStatus
 -> f (Maybe WorldGenerationJobStatus))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_status = (DescribeWorldGenerationJobResponse
 -> Maybe WorldGenerationJobStatus)
-> (DescribeWorldGenerationJobResponse
    -> Maybe WorldGenerationJobStatus
    -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe WorldGenerationJobStatus)
     (Maybe WorldGenerationJobStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe WorldGenerationJobStatus
status :: Maybe WorldGenerationJobStatus
$sel:status:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse
-> Maybe WorldGenerationJobStatus
status} -> Maybe WorldGenerationJobStatus
status) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe WorldGenerationJobStatus
a -> DescribeWorldGenerationJobResponse
s {$sel:status:DescribeWorldGenerationJobResponse' :: Maybe WorldGenerationJobStatus
status = Maybe WorldGenerationJobStatus
a} :: DescribeWorldGenerationJobResponse)

-- | The Amazon Resource Name (ARN) of the world generation job.
describeWorldGenerationJobResponse_arn :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)
describeWorldGenerationJobResponse_arn :: (Maybe Text -> f (Maybe Text))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_arn = (DescribeWorldGenerationJobResponse -> Maybe Text)
-> (DescribeWorldGenerationJobResponse
    -> Maybe Text -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe Text
a -> DescribeWorldGenerationJobResponse
s {$sel:arn:DescribeWorldGenerationJobResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeWorldGenerationJobResponse)

-- | The time, in milliseconds since the epoch, when the world generation job
-- was created.
describeWorldGenerationJobResponse_createdAt :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.UTCTime)
describeWorldGenerationJobResponse_createdAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_createdAt = (DescribeWorldGenerationJobResponse -> Maybe POSIX)
-> (DescribeWorldGenerationJobResponse
    -> Maybe POSIX -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe POSIX
a -> DescribeWorldGenerationJobResponse
s {$sel:createdAt:DescribeWorldGenerationJobResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: DescribeWorldGenerationJobResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeWorldGenerationJobResponse
 -> f DescribeWorldGenerationJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The failure code of the world generation job if it failed:
--
-- [InternalServiceError]
--     Internal service error.
--
-- [LimitExceeded]
--     The requested resource exceeds the maximum number allowed, or the
--     number of concurrent stream requests exceeds the maximum number
--     allowed.
--
-- [ResourceNotFound]
--     The specified resource could not be found.
--
-- [RequestThrottled]
--     The request was throttled.
--
-- [InvalidInput]
--     An input parameter in the request is not valid.
describeWorldGenerationJobResponse_failureCode :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobErrorCode)
describeWorldGenerationJobResponse_failureCode :: (Maybe WorldGenerationJobErrorCode
 -> f (Maybe WorldGenerationJobErrorCode))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_failureCode = (DescribeWorldGenerationJobResponse
 -> Maybe WorldGenerationJobErrorCode)
-> (DescribeWorldGenerationJobResponse
    -> Maybe WorldGenerationJobErrorCode
    -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe WorldGenerationJobErrorCode)
     (Maybe WorldGenerationJobErrorCode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe WorldGenerationJobErrorCode
failureCode :: Maybe WorldGenerationJobErrorCode
$sel:failureCode:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse
-> Maybe WorldGenerationJobErrorCode
failureCode} -> Maybe WorldGenerationJobErrorCode
failureCode) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe WorldGenerationJobErrorCode
a -> DescribeWorldGenerationJobResponse
s {$sel:failureCode:DescribeWorldGenerationJobResponse' :: Maybe WorldGenerationJobErrorCode
failureCode = Maybe WorldGenerationJobErrorCode
a} :: DescribeWorldGenerationJobResponse)

-- | Information about the world count.
describeWorldGenerationJobResponse_worldCount :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldCount)
describeWorldGenerationJobResponse_worldCount :: (Maybe WorldCount -> f (Maybe WorldCount))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_worldCount = (DescribeWorldGenerationJobResponse -> Maybe WorldCount)
-> (DescribeWorldGenerationJobResponse
    -> Maybe WorldCount -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe WorldCount)
     (Maybe WorldCount)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe WorldCount
worldCount :: Maybe WorldCount
$sel:worldCount:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe WorldCount
worldCount} -> Maybe WorldCount
worldCount) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe WorldCount
a -> DescribeWorldGenerationJobResponse
s {$sel:worldCount:DescribeWorldGenerationJobResponse' :: Maybe WorldCount
worldCount = Maybe WorldCount
a} :: DescribeWorldGenerationJobResponse)

-- | Summary information about finished worlds.
describeWorldGenerationJobResponse_finishedWorldsSummary :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe FinishedWorldsSummary)
describeWorldGenerationJobResponse_finishedWorldsSummary :: (Maybe FinishedWorldsSummary -> f (Maybe FinishedWorldsSummary))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_finishedWorldsSummary = (DescribeWorldGenerationJobResponse -> Maybe FinishedWorldsSummary)
-> (DescribeWorldGenerationJobResponse
    -> Maybe FinishedWorldsSummary
    -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe FinishedWorldsSummary)
     (Maybe FinishedWorldsSummary)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe FinishedWorldsSummary
finishedWorldsSummary :: Maybe FinishedWorldsSummary
$sel:finishedWorldsSummary:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe FinishedWorldsSummary
finishedWorldsSummary} -> Maybe FinishedWorldsSummary
finishedWorldsSummary) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe FinishedWorldsSummary
a -> DescribeWorldGenerationJobResponse
s {$sel:finishedWorldsSummary:DescribeWorldGenerationJobResponse' :: Maybe FinishedWorldsSummary
finishedWorldsSummary = Maybe FinishedWorldsSummary
a} :: DescribeWorldGenerationJobResponse)

-- | The Amazon Resource Name (arn) of the world template.
describeWorldGenerationJobResponse_template :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)
describeWorldGenerationJobResponse_template :: (Maybe Text -> f (Maybe Text))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_template = (DescribeWorldGenerationJobResponse -> Maybe Text)
-> (DescribeWorldGenerationJobResponse
    -> Maybe Text -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe Text
template :: Maybe Text
$sel:template:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe Text
template} -> Maybe Text
template) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe Text
a -> DescribeWorldGenerationJobResponse
s {$sel:template:DescribeWorldGenerationJobResponse' :: Maybe Text
template = Maybe Text
a} :: DescribeWorldGenerationJobResponse)

-- | A map that contains tag keys and tag values that are attached to the
-- generated worlds.
describeWorldGenerationJobResponse_worldTags :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeWorldGenerationJobResponse_worldTags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_worldTags = (DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text))
-> (DescribeWorldGenerationJobResponse
    -> Maybe (HashMap Text Text) -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe (HashMap Text Text)
worldTags :: Maybe (HashMap Text Text)
$sel:worldTags:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text)
worldTags} -> Maybe (HashMap Text Text)
worldTags) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeWorldGenerationJobResponse
s {$sel:worldTags:DescribeWorldGenerationJobResponse' :: Maybe (HashMap Text Text)
worldTags = Maybe (HashMap Text Text)
a} :: DescribeWorldGenerationJobResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeWorldGenerationJobResponse
 -> f DescribeWorldGenerationJobResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request.
describeWorldGenerationJobResponse_clientRequestToken :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)
describeWorldGenerationJobResponse_clientRequestToken :: (Maybe Text -> f (Maybe Text))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_clientRequestToken = (DescribeWorldGenerationJobResponse -> Maybe Text)
-> (DescribeWorldGenerationJobResponse
    -> Maybe Text -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe Text
a -> DescribeWorldGenerationJobResponse
s {$sel:clientRequestToken:DescribeWorldGenerationJobResponse' :: Maybe Text
clientRequestToken = Maybe Text
a} :: DescribeWorldGenerationJobResponse)

-- | A map that contains tag keys and tag values that are attached to the
-- world generation job.
describeWorldGenerationJobResponse_tags :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeWorldGenerationJobResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
describeWorldGenerationJobResponse_tags = (DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text))
-> (DescribeWorldGenerationJobResponse
    -> Maybe (HashMap Text Text) -> DescribeWorldGenerationJobResponse)
-> Lens
     DescribeWorldGenerationJobResponse
     DescribeWorldGenerationJobResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeWorldGenerationJobResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeWorldGenerationJobResponse' :: DescribeWorldGenerationJobResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeWorldGenerationJobResponse
s@DescribeWorldGenerationJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeWorldGenerationJobResponse
s {$sel:tags:DescribeWorldGenerationJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeWorldGenerationJobResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeWorldGenerationJobResponse
 -> f DescribeWorldGenerationJobResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeWorldGenerationJobResponse
-> f DescribeWorldGenerationJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance
  Prelude.NFData
    DescribeWorldGenerationJobResponse