{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.AmplifyBackend.Types.BackendJobRespObj
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.AmplifyBackend.Types.BackendJobRespObj 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

-- | The response object for this operation.
--
-- /See:/ 'newBackendJobRespObj' smart constructor.
data BackendJobRespObj = BackendJobRespObj'
  { -- | The time when the job was created.
    BackendJobRespObj -> Maybe Text
createTime :: Prelude.Maybe Prelude.Text,
    -- | If the request fails, this error is returned.
    BackendJobRespObj -> Maybe Text
error :: Prelude.Maybe Prelude.Text,
    -- | The ID for the job.
    BackendJobRespObj -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | The name of the operation.
    BackendJobRespObj -> Maybe Text
operation :: Prelude.Maybe Prelude.Text,
    -- | The current status of the request.
    BackendJobRespObj -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The time when the job was last updated.
    BackendJobRespObj -> Maybe Text
updateTime :: Prelude.Maybe Prelude.Text,
    -- | The app ID.
    BackendJobRespObj -> Text
appId :: Prelude.Text,
    -- | The name of the backend environment.
    BackendJobRespObj -> Text
backendEnvironmentName :: Prelude.Text
  }
  deriving (BackendJobRespObj -> BackendJobRespObj -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BackendJobRespObj -> BackendJobRespObj -> Bool
$c/= :: BackendJobRespObj -> BackendJobRespObj -> Bool
== :: BackendJobRespObj -> BackendJobRespObj -> Bool
$c== :: BackendJobRespObj -> BackendJobRespObj -> Bool
Prelude.Eq, ReadPrec [BackendJobRespObj]
ReadPrec BackendJobRespObj
Int -> ReadS BackendJobRespObj
ReadS [BackendJobRespObj]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BackendJobRespObj]
$creadListPrec :: ReadPrec [BackendJobRespObj]
readPrec :: ReadPrec BackendJobRespObj
$creadPrec :: ReadPrec BackendJobRespObj
readList :: ReadS [BackendJobRespObj]
$creadList :: ReadS [BackendJobRespObj]
readsPrec :: Int -> ReadS BackendJobRespObj
$creadsPrec :: Int -> ReadS BackendJobRespObj
Prelude.Read, Int -> BackendJobRespObj -> ShowS
[BackendJobRespObj] -> ShowS
BackendJobRespObj -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BackendJobRespObj] -> ShowS
$cshowList :: [BackendJobRespObj] -> ShowS
show :: BackendJobRespObj -> String
$cshow :: BackendJobRespObj -> String
showsPrec :: Int -> BackendJobRespObj -> ShowS
$cshowsPrec :: Int -> BackendJobRespObj -> ShowS
Prelude.Show, forall x. Rep BackendJobRespObj x -> BackendJobRespObj
forall x. BackendJobRespObj -> Rep BackendJobRespObj x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BackendJobRespObj x -> BackendJobRespObj
$cfrom :: forall x. BackendJobRespObj -> Rep BackendJobRespObj x
Prelude.Generic)

-- |
-- Create a value of 'BackendJobRespObj' 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:
--
-- 'createTime', 'backendJobRespObj_createTime' - The time when the job was created.
--
-- 'error', 'backendJobRespObj_error' - If the request fails, this error is returned.
--
-- 'jobId', 'backendJobRespObj_jobId' - The ID for the job.
--
-- 'operation', 'backendJobRespObj_operation' - The name of the operation.
--
-- 'status', 'backendJobRespObj_status' - The current status of the request.
--
-- 'updateTime', 'backendJobRespObj_updateTime' - The time when the job was last updated.
--
-- 'appId', 'backendJobRespObj_appId' - The app ID.
--
-- 'backendEnvironmentName', 'backendJobRespObj_backendEnvironmentName' - The name of the backend environment.
newBackendJobRespObj ::
  -- | 'appId'
  Prelude.Text ->
  -- | 'backendEnvironmentName'
  Prelude.Text ->
  BackendJobRespObj
newBackendJobRespObj :: Text -> Text -> BackendJobRespObj
newBackendJobRespObj Text
pAppId_ Text
pBackendEnvironmentName_ =
  BackendJobRespObj'
    { $sel:createTime:BackendJobRespObj' :: Maybe Text
createTime = forall a. Maybe a
Prelude.Nothing,
      $sel:error:BackendJobRespObj' :: Maybe Text
error = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:BackendJobRespObj' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:operation:BackendJobRespObj' :: Maybe Text
operation = forall a. Maybe a
Prelude.Nothing,
      $sel:status:BackendJobRespObj' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:updateTime:BackendJobRespObj' :: Maybe Text
updateTime = forall a. Maybe a
Prelude.Nothing,
      $sel:appId:BackendJobRespObj' :: Text
appId = Text
pAppId_,
      $sel:backendEnvironmentName:BackendJobRespObj' :: Text
backendEnvironmentName = Text
pBackendEnvironmentName_
    }

-- | The time when the job was created.
backendJobRespObj_createTime :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_createTime :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_createTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
createTime :: Maybe Text
$sel:createTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
createTime} -> Maybe Text
createTime) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:createTime:BackendJobRespObj' :: Maybe Text
createTime = Maybe Text
a} :: BackendJobRespObj)

-- | If the request fails, this error is returned.
backendJobRespObj_error :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_error :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
error :: Maybe Text
$sel:error:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
error} -> Maybe Text
error) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:error:BackendJobRespObj' :: Maybe Text
error = Maybe Text
a} :: BackendJobRespObj)

-- | The ID for the job.
backendJobRespObj_jobId :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_jobId :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
jobId :: Maybe Text
$sel:jobId:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:jobId:BackendJobRespObj' :: Maybe Text
jobId = Maybe Text
a} :: BackendJobRespObj)

-- | The name of the operation.
backendJobRespObj_operation :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_operation :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_operation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
operation :: Maybe Text
$sel:operation:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
operation} -> Maybe Text
operation) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:operation:BackendJobRespObj' :: Maybe Text
operation = Maybe Text
a} :: BackendJobRespObj)

-- | The current status of the request.
backendJobRespObj_status :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_status :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
status :: Maybe Text
$sel:status:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
status} -> Maybe Text
status) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:status:BackendJobRespObj' :: Maybe Text
status = Maybe Text
a} :: BackendJobRespObj)

-- | The time when the job was last updated.
backendJobRespObj_updateTime :: Lens.Lens' BackendJobRespObj (Prelude.Maybe Prelude.Text)
backendJobRespObj_updateTime :: Lens' BackendJobRespObj (Maybe Text)
backendJobRespObj_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Maybe Text
updateTime :: Maybe Text
$sel:updateTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
updateTime} -> Maybe Text
updateTime) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Maybe Text
a -> BackendJobRespObj
s {$sel:updateTime:BackendJobRespObj' :: Maybe Text
updateTime = Maybe Text
a} :: BackendJobRespObj)

-- | The app ID.
backendJobRespObj_appId :: Lens.Lens' BackendJobRespObj Prelude.Text
backendJobRespObj_appId :: Lens' BackendJobRespObj Text
backendJobRespObj_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Text
appId :: Text
$sel:appId:BackendJobRespObj' :: BackendJobRespObj -> Text
appId} -> Text
appId) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Text
a -> BackendJobRespObj
s {$sel:appId:BackendJobRespObj' :: Text
appId = Text
a} :: BackendJobRespObj)

-- | The name of the backend environment.
backendJobRespObj_backendEnvironmentName :: Lens.Lens' BackendJobRespObj Prelude.Text
backendJobRespObj_backendEnvironmentName :: Lens' BackendJobRespObj Text
backendJobRespObj_backendEnvironmentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BackendJobRespObj' {Text
backendEnvironmentName :: Text
$sel:backendEnvironmentName:BackendJobRespObj' :: BackendJobRespObj -> Text
backendEnvironmentName} -> Text
backendEnvironmentName) (\s :: BackendJobRespObj
s@BackendJobRespObj' {} Text
a -> BackendJobRespObj
s {$sel:backendEnvironmentName:BackendJobRespObj' :: Text
backendEnvironmentName = Text
a} :: BackendJobRespObj)

instance Data.FromJSON BackendJobRespObj where
  parseJSON :: Value -> Parser BackendJobRespObj
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"BackendJobRespObj"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> BackendJobRespObj
BackendJobRespObj'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"createTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"error")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"jobId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"operation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"updateTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"appId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"backendEnvironmentName")
      )

instance Prelude.Hashable BackendJobRespObj where
  hashWithSalt :: Int -> BackendJobRespObj -> Int
hashWithSalt Int
_salt BackendJobRespObj' {Maybe Text
Text
backendEnvironmentName :: Text
appId :: Text
updateTime :: Maybe Text
status :: Maybe Text
operation :: Maybe Text
jobId :: Maybe Text
error :: Maybe Text
createTime :: Maybe Text
$sel:backendEnvironmentName:BackendJobRespObj' :: BackendJobRespObj -> Text
$sel:appId:BackendJobRespObj' :: BackendJobRespObj -> Text
$sel:updateTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:status:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:operation:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:jobId:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:error:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:createTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
error
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
operation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
updateTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
backendEnvironmentName

instance Prelude.NFData BackendJobRespObj where
  rnf :: BackendJobRespObj -> ()
rnf BackendJobRespObj' {Maybe Text
Text
backendEnvironmentName :: Text
appId :: Text
updateTime :: Maybe Text
status :: Maybe Text
operation :: Maybe Text
jobId :: Maybe Text
error :: Maybe Text
createTime :: Maybe Text
$sel:backendEnvironmentName:BackendJobRespObj' :: BackendJobRespObj -> Text
$sel:appId:BackendJobRespObj' :: BackendJobRespObj -> Text
$sel:updateTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:status:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:operation:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:jobId:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:error:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
$sel:createTime:BackendJobRespObj' :: BackendJobRespObj -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
operation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
updateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
backendEnvironmentName