{-# 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.RobOMaker.Types.SimulationJob
-- 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.RobOMaker.Types.SimulationJob 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 Amazonka.RobOMaker.Types.ComputeResponse
import Amazonka.RobOMaker.Types.DataSource
import Amazonka.RobOMaker.Types.FailureBehavior
import Amazonka.RobOMaker.Types.LoggingConfig
import Amazonka.RobOMaker.Types.NetworkInterface
import Amazonka.RobOMaker.Types.OutputLocation
import Amazonka.RobOMaker.Types.RobotApplicationConfig
import Amazonka.RobOMaker.Types.SimulationApplicationConfig
import Amazonka.RobOMaker.Types.SimulationJobErrorCode
import Amazonka.RobOMaker.Types.SimulationJobStatus
import Amazonka.RobOMaker.Types.VPCConfigResponse

-- | Information about a simulation job.
--
-- /See:/ 'newSimulationJob' smart constructor.
data SimulationJob = SimulationJob'
  { -- | The Amazon Resource Name (ARN) of the simulation job.
    SimulationJob -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | A unique identifier for this @SimulationJob@ request.
    SimulationJob -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
    -- | Compute information for the simulation job
    SimulationJob -> Maybe ComputeResponse
compute :: Prelude.Maybe ComputeResponse,
    -- | The data sources for the simulation job.
    SimulationJob -> Maybe [DataSource]
dataSources :: Prelude.Maybe [DataSource],
    -- | The failure behavior the simulation job.
    --
    -- [Continue]
    --     Leaves the host running for its maximum timeout duration after a
    --     @4XX@ error code.
    --
    -- [Fail]
    --     Stop the simulation job and terminate the instance.
    SimulationJob -> Maybe FailureBehavior
failureBehavior :: Prelude.Maybe FailureBehavior,
    -- | The failure code of the simulation job if it failed.
    SimulationJob -> Maybe SimulationJobErrorCode
failureCode :: Prelude.Maybe SimulationJobErrorCode,
    -- | The reason why the simulation job failed.
    SimulationJob -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The IAM role that allows the simulation instance to call the AWS APIs
    -- that are specified in its associated policies on your behalf. This is
    -- how credentials are passed in to your simulation job.
    SimulationJob -> Maybe Text
iamRole :: Prelude.Maybe Prelude.Text,
    -- | The time, in milliseconds since the epoch, when the simulation job was
    -- last started.
    SimulationJob -> Maybe POSIX
lastStartedAt :: Prelude.Maybe Data.POSIX,
    -- | The time, in milliseconds since the epoch, when the simulation job was
    -- last updated.
    SimulationJob -> Maybe POSIX
lastUpdatedAt :: Prelude.Maybe Data.POSIX,
    -- | The logging configuration.
    SimulationJob -> Maybe LoggingConfig
loggingConfig :: Prelude.Maybe LoggingConfig,
    -- | The maximum simulation job duration in seconds. The value must be 8 days
    -- (691,200 seconds) or less.
    SimulationJob -> Maybe Integer
maxJobDurationInSeconds :: Prelude.Maybe Prelude.Integer,
    -- | The name of the simulation job.
    SimulationJob -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Information about a network interface.
    SimulationJob -> Maybe NetworkInterface
networkInterface :: Prelude.Maybe NetworkInterface,
    -- | Location for output files generated by the simulation job.
    SimulationJob -> Maybe OutputLocation
outputLocation :: Prelude.Maybe OutputLocation,
    -- | A list of robot applications.
    SimulationJob -> Maybe (NonEmpty RobotApplicationConfig)
robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),
    -- | A list of simulation applications.
    SimulationJob -> Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),
    -- | The simulation job execution duration in milliseconds.
    SimulationJob -> Maybe Integer
simulationTimeMillis :: Prelude.Maybe Prelude.Integer,
    -- | Status of the simulation job.
    SimulationJob -> Maybe SimulationJobStatus
status :: Prelude.Maybe SimulationJobStatus,
    -- | A map that contains tag keys and tag values that are attached to the
    -- simulation job.
    SimulationJob -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | VPC configuration information.
    SimulationJob -> Maybe VPCConfigResponse
vpcConfig :: Prelude.Maybe VPCConfigResponse
  }
  deriving (SimulationJob -> SimulationJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SimulationJob -> SimulationJob -> Bool
$c/= :: SimulationJob -> SimulationJob -> Bool
== :: SimulationJob -> SimulationJob -> Bool
$c== :: SimulationJob -> SimulationJob -> Bool
Prelude.Eq, ReadPrec [SimulationJob]
ReadPrec SimulationJob
Int -> ReadS SimulationJob
ReadS [SimulationJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SimulationJob]
$creadListPrec :: ReadPrec [SimulationJob]
readPrec :: ReadPrec SimulationJob
$creadPrec :: ReadPrec SimulationJob
readList :: ReadS [SimulationJob]
$creadList :: ReadS [SimulationJob]
readsPrec :: Int -> ReadS SimulationJob
$creadsPrec :: Int -> ReadS SimulationJob
Prelude.Read, Int -> SimulationJob -> ShowS
[SimulationJob] -> ShowS
SimulationJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SimulationJob] -> ShowS
$cshowList :: [SimulationJob] -> ShowS
show :: SimulationJob -> String
$cshow :: SimulationJob -> String
showsPrec :: Int -> SimulationJob -> ShowS
$cshowsPrec :: Int -> SimulationJob -> ShowS
Prelude.Show, forall x. Rep SimulationJob x -> SimulationJob
forall x. SimulationJob -> Rep SimulationJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SimulationJob x -> SimulationJob
$cfrom :: forall x. SimulationJob -> Rep SimulationJob x
Prelude.Generic)

-- |
-- Create a value of 'SimulationJob' 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:
--
-- 'arn', 'simulationJob_arn' - The Amazon Resource Name (ARN) of the simulation job.
--
-- 'clientRequestToken', 'simulationJob_clientRequestToken' - A unique identifier for this @SimulationJob@ request.
--
-- 'compute', 'simulationJob_compute' - Compute information for the simulation job
--
-- 'dataSources', 'simulationJob_dataSources' - The data sources for the simulation job.
--
-- 'failureBehavior', 'simulationJob_failureBehavior' - The failure behavior the simulation job.
--
-- [Continue]
--     Leaves the host running for its maximum timeout duration after a
--     @4XX@ error code.
--
-- [Fail]
--     Stop the simulation job and terminate the instance.
--
-- 'failureCode', 'simulationJob_failureCode' - The failure code of the simulation job if it failed.
--
-- 'failureReason', 'simulationJob_failureReason' - The reason why the simulation job failed.
--
-- 'iamRole', 'simulationJob_iamRole' - The IAM role that allows the simulation instance to call the AWS APIs
-- that are specified in its associated policies on your behalf. This is
-- how credentials are passed in to your simulation job.
--
-- 'lastStartedAt', 'simulationJob_lastStartedAt' - The time, in milliseconds since the epoch, when the simulation job was
-- last started.
--
-- 'lastUpdatedAt', 'simulationJob_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was
-- last updated.
--
-- 'loggingConfig', 'simulationJob_loggingConfig' - The logging configuration.
--
-- 'maxJobDurationInSeconds', 'simulationJob_maxJobDurationInSeconds' - The maximum simulation job duration in seconds. The value must be 8 days
-- (691,200 seconds) or less.
--
-- 'name', 'simulationJob_name' - The name of the simulation job.
--
-- 'networkInterface', 'simulationJob_networkInterface' - Information about a network interface.
--
-- 'outputLocation', 'simulationJob_outputLocation' - Location for output files generated by the simulation job.
--
-- 'robotApplications', 'simulationJob_robotApplications' - A list of robot applications.
--
-- 'simulationApplications', 'simulationJob_simulationApplications' - A list of simulation applications.
--
-- 'simulationTimeMillis', 'simulationJob_simulationTimeMillis' - The simulation job execution duration in milliseconds.
--
-- 'status', 'simulationJob_status' - Status of the simulation job.
--
-- 'tags', 'simulationJob_tags' - A map that contains tag keys and tag values that are attached to the
-- simulation job.
--
-- 'vpcConfig', 'simulationJob_vpcConfig' - VPC configuration information.
newSimulationJob ::
  SimulationJob
newSimulationJob :: SimulationJob
newSimulationJob =
  SimulationJob'
    { $sel:arn:SimulationJob' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:clientRequestToken:SimulationJob' :: Maybe Text
clientRequestToken = forall a. Maybe a
Prelude.Nothing,
      $sel:compute:SimulationJob' :: Maybe ComputeResponse
compute = forall a. Maybe a
Prelude.Nothing,
      $sel:dataSources:SimulationJob' :: Maybe [DataSource]
dataSources = forall a. Maybe a
Prelude.Nothing,
      $sel:failureBehavior:SimulationJob' :: Maybe FailureBehavior
failureBehavior = forall a. Maybe a
Prelude.Nothing,
      $sel:failureCode:SimulationJob' :: Maybe SimulationJobErrorCode
failureCode = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:SimulationJob' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
      $sel:iamRole:SimulationJob' :: Maybe Text
iamRole = forall a. Maybe a
Prelude.Nothing,
      $sel:lastStartedAt:SimulationJob' :: Maybe POSIX
lastStartedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedAt:SimulationJob' :: Maybe POSIX
lastUpdatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:loggingConfig:SimulationJob' :: Maybe LoggingConfig
loggingConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:maxJobDurationInSeconds:SimulationJob' :: Maybe Integer
maxJobDurationInSeconds = forall a. Maybe a
Prelude.Nothing,
      $sel:name:SimulationJob' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterface:SimulationJob' :: Maybe NetworkInterface
networkInterface = forall a. Maybe a
Prelude.Nothing,
      $sel:outputLocation:SimulationJob' :: Maybe OutputLocation
outputLocation = forall a. Maybe a
Prelude.Nothing,
      $sel:robotApplications:SimulationJob' :: Maybe (NonEmpty RobotApplicationConfig)
robotApplications = forall a. Maybe a
Prelude.Nothing,
      $sel:simulationApplications:SimulationJob' :: Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications = forall a. Maybe a
Prelude.Nothing,
      $sel:simulationTimeMillis:SimulationJob' :: Maybe Integer
simulationTimeMillis = forall a. Maybe a
Prelude.Nothing,
      $sel:status:SimulationJob' :: Maybe SimulationJobStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:SimulationJob' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:SimulationJob' :: Maybe VPCConfigResponse
vpcConfig = forall a. Maybe a
Prelude.Nothing
    }

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

-- | A unique identifier for this @SimulationJob@ request.
simulationJob_clientRequestToken :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)
simulationJob_clientRequestToken :: Lens' SimulationJob (Maybe Text)
simulationJob_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:SimulationJob' :: SimulationJob -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: SimulationJob
s@SimulationJob' {} Maybe Text
a -> SimulationJob
s {$sel:clientRequestToken:SimulationJob' :: Maybe Text
clientRequestToken = Maybe Text
a} :: SimulationJob)

-- | Compute information for the simulation job
simulationJob_compute :: Lens.Lens' SimulationJob (Prelude.Maybe ComputeResponse)
simulationJob_compute :: Lens' SimulationJob (Maybe ComputeResponse)
simulationJob_compute = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe ComputeResponse
compute :: Maybe ComputeResponse
$sel:compute:SimulationJob' :: SimulationJob -> Maybe ComputeResponse
compute} -> Maybe ComputeResponse
compute) (\s :: SimulationJob
s@SimulationJob' {} Maybe ComputeResponse
a -> SimulationJob
s {$sel:compute:SimulationJob' :: Maybe ComputeResponse
compute = Maybe ComputeResponse
a} :: SimulationJob)

-- | The data sources for the simulation job.
simulationJob_dataSources :: Lens.Lens' SimulationJob (Prelude.Maybe [DataSource])
simulationJob_dataSources :: Lens' SimulationJob (Maybe [DataSource])
simulationJob_dataSources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe [DataSource]
dataSources :: Maybe [DataSource]
$sel:dataSources:SimulationJob' :: SimulationJob -> Maybe [DataSource]
dataSources} -> Maybe [DataSource]
dataSources) (\s :: SimulationJob
s@SimulationJob' {} Maybe [DataSource]
a -> SimulationJob
s {$sel:dataSources:SimulationJob' :: Maybe [DataSource]
dataSources = Maybe [DataSource]
a} :: SimulationJob) 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 failure behavior the simulation job.
--
-- [Continue]
--     Leaves the host running for its maximum timeout duration after a
--     @4XX@ error code.
--
-- [Fail]
--     Stop the simulation job and terminate the instance.
simulationJob_failureBehavior :: Lens.Lens' SimulationJob (Prelude.Maybe FailureBehavior)
simulationJob_failureBehavior :: Lens' SimulationJob (Maybe FailureBehavior)
simulationJob_failureBehavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe FailureBehavior
failureBehavior :: Maybe FailureBehavior
$sel:failureBehavior:SimulationJob' :: SimulationJob -> Maybe FailureBehavior
failureBehavior} -> Maybe FailureBehavior
failureBehavior) (\s :: SimulationJob
s@SimulationJob' {} Maybe FailureBehavior
a -> SimulationJob
s {$sel:failureBehavior:SimulationJob' :: Maybe FailureBehavior
failureBehavior = Maybe FailureBehavior
a} :: SimulationJob)

-- | The failure code of the simulation job if it failed.
simulationJob_failureCode :: Lens.Lens' SimulationJob (Prelude.Maybe SimulationJobErrorCode)
simulationJob_failureCode :: Lens' SimulationJob (Maybe SimulationJobErrorCode)
simulationJob_failureCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe SimulationJobErrorCode
failureCode :: Maybe SimulationJobErrorCode
$sel:failureCode:SimulationJob' :: SimulationJob -> Maybe SimulationJobErrorCode
failureCode} -> Maybe SimulationJobErrorCode
failureCode) (\s :: SimulationJob
s@SimulationJob' {} Maybe SimulationJobErrorCode
a -> SimulationJob
s {$sel:failureCode:SimulationJob' :: Maybe SimulationJobErrorCode
failureCode = Maybe SimulationJobErrorCode
a} :: SimulationJob)

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

-- | The IAM role that allows the simulation instance to call the AWS APIs
-- that are specified in its associated policies on your behalf. This is
-- how credentials are passed in to your simulation job.
simulationJob_iamRole :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)
simulationJob_iamRole :: Lens' SimulationJob (Maybe Text)
simulationJob_iamRole = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe Text
iamRole :: Maybe Text
$sel:iamRole:SimulationJob' :: SimulationJob -> Maybe Text
iamRole} -> Maybe Text
iamRole) (\s :: SimulationJob
s@SimulationJob' {} Maybe Text
a -> SimulationJob
s {$sel:iamRole:SimulationJob' :: Maybe Text
iamRole = Maybe Text
a} :: SimulationJob)

-- | The time, in milliseconds since the epoch, when the simulation job was
-- last started.
simulationJob_lastStartedAt :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.UTCTime)
simulationJob_lastStartedAt :: Lens' SimulationJob (Maybe UTCTime)
simulationJob_lastStartedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe POSIX
lastStartedAt :: Maybe POSIX
$sel:lastStartedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
lastStartedAt} -> Maybe POSIX
lastStartedAt) (\s :: SimulationJob
s@SimulationJob' {} Maybe POSIX
a -> SimulationJob
s {$sel:lastStartedAt:SimulationJob' :: Maybe POSIX
lastStartedAt = Maybe POSIX
a} :: SimulationJob) 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 time, in milliseconds since the epoch, when the simulation job was
-- last updated.
simulationJob_lastUpdatedAt :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.UTCTime)
simulationJob_lastUpdatedAt :: Lens' SimulationJob (Maybe UTCTime)
simulationJob_lastUpdatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe POSIX
lastUpdatedAt :: Maybe POSIX
$sel:lastUpdatedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
lastUpdatedAt} -> Maybe POSIX
lastUpdatedAt) (\s :: SimulationJob
s@SimulationJob' {} Maybe POSIX
a -> SimulationJob
s {$sel:lastUpdatedAt:SimulationJob' :: Maybe POSIX
lastUpdatedAt = Maybe POSIX
a} :: SimulationJob) 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 logging configuration.
simulationJob_loggingConfig :: Lens.Lens' SimulationJob (Prelude.Maybe LoggingConfig)
simulationJob_loggingConfig :: Lens' SimulationJob (Maybe LoggingConfig)
simulationJob_loggingConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe LoggingConfig
loggingConfig :: Maybe LoggingConfig
$sel:loggingConfig:SimulationJob' :: SimulationJob -> Maybe LoggingConfig
loggingConfig} -> Maybe LoggingConfig
loggingConfig) (\s :: SimulationJob
s@SimulationJob' {} Maybe LoggingConfig
a -> SimulationJob
s {$sel:loggingConfig:SimulationJob' :: Maybe LoggingConfig
loggingConfig = Maybe LoggingConfig
a} :: SimulationJob)

-- | The maximum simulation job duration in seconds. The value must be 8 days
-- (691,200 seconds) or less.
simulationJob_maxJobDurationInSeconds :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Integer)
simulationJob_maxJobDurationInSeconds :: Lens' SimulationJob (Maybe Integer)
simulationJob_maxJobDurationInSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe Integer
maxJobDurationInSeconds :: Maybe Integer
$sel:maxJobDurationInSeconds:SimulationJob' :: SimulationJob -> Maybe Integer
maxJobDurationInSeconds} -> Maybe Integer
maxJobDurationInSeconds) (\s :: SimulationJob
s@SimulationJob' {} Maybe Integer
a -> SimulationJob
s {$sel:maxJobDurationInSeconds:SimulationJob' :: Maybe Integer
maxJobDurationInSeconds = Maybe Integer
a} :: SimulationJob)

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

-- | Information about a network interface.
simulationJob_networkInterface :: Lens.Lens' SimulationJob (Prelude.Maybe NetworkInterface)
simulationJob_networkInterface :: Lens' SimulationJob (Maybe NetworkInterface)
simulationJob_networkInterface = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe NetworkInterface
networkInterface :: Maybe NetworkInterface
$sel:networkInterface:SimulationJob' :: SimulationJob -> Maybe NetworkInterface
networkInterface} -> Maybe NetworkInterface
networkInterface) (\s :: SimulationJob
s@SimulationJob' {} Maybe NetworkInterface
a -> SimulationJob
s {$sel:networkInterface:SimulationJob' :: Maybe NetworkInterface
networkInterface = Maybe NetworkInterface
a} :: SimulationJob)

-- | Location for output files generated by the simulation job.
simulationJob_outputLocation :: Lens.Lens' SimulationJob (Prelude.Maybe OutputLocation)
simulationJob_outputLocation :: Lens' SimulationJob (Maybe OutputLocation)
simulationJob_outputLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe OutputLocation
outputLocation :: Maybe OutputLocation
$sel:outputLocation:SimulationJob' :: SimulationJob -> Maybe OutputLocation
outputLocation} -> Maybe OutputLocation
outputLocation) (\s :: SimulationJob
s@SimulationJob' {} Maybe OutputLocation
a -> SimulationJob
s {$sel:outputLocation:SimulationJob' :: Maybe OutputLocation
outputLocation = Maybe OutputLocation
a} :: SimulationJob)

-- | A list of robot applications.
simulationJob_robotApplications :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))
simulationJob_robotApplications :: Lens' SimulationJob (Maybe (NonEmpty RobotApplicationConfig))
simulationJob_robotApplications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe (NonEmpty RobotApplicationConfig)
robotApplications :: Maybe (NonEmpty RobotApplicationConfig)
$sel:robotApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty RobotApplicationConfig)
robotApplications} -> Maybe (NonEmpty RobotApplicationConfig)
robotApplications) (\s :: SimulationJob
s@SimulationJob' {} Maybe (NonEmpty RobotApplicationConfig)
a -> SimulationJob
s {$sel:robotApplications:SimulationJob' :: Maybe (NonEmpty RobotApplicationConfig)
robotApplications = Maybe (NonEmpty RobotApplicationConfig)
a} :: SimulationJob) 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

-- | A list of simulation applications.
simulationJob_simulationApplications :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))
simulationJob_simulationApplications :: Lens' SimulationJob (Maybe (NonEmpty SimulationApplicationConfig))
simulationJob_simulationApplications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications :: Maybe (NonEmpty SimulationApplicationConfig)
$sel:simulationApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications} -> Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications) (\s :: SimulationJob
s@SimulationJob' {} Maybe (NonEmpty SimulationApplicationConfig)
a -> SimulationJob
s {$sel:simulationApplications:SimulationJob' :: Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications = Maybe (NonEmpty SimulationApplicationConfig)
a} :: SimulationJob) 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 simulation job execution duration in milliseconds.
simulationJob_simulationTimeMillis :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Integer)
simulationJob_simulationTimeMillis :: Lens' SimulationJob (Maybe Integer)
simulationJob_simulationTimeMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe Integer
simulationTimeMillis :: Maybe Integer
$sel:simulationTimeMillis:SimulationJob' :: SimulationJob -> Maybe Integer
simulationTimeMillis} -> Maybe Integer
simulationTimeMillis) (\s :: SimulationJob
s@SimulationJob' {} Maybe Integer
a -> SimulationJob
s {$sel:simulationTimeMillis:SimulationJob' :: Maybe Integer
simulationTimeMillis = Maybe Integer
a} :: SimulationJob)

-- | Status of the simulation job.
simulationJob_status :: Lens.Lens' SimulationJob (Prelude.Maybe SimulationJobStatus)
simulationJob_status :: Lens' SimulationJob (Maybe SimulationJobStatus)
simulationJob_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe SimulationJobStatus
status :: Maybe SimulationJobStatus
$sel:status:SimulationJob' :: SimulationJob -> Maybe SimulationJobStatus
status} -> Maybe SimulationJobStatus
status) (\s :: SimulationJob
s@SimulationJob' {} Maybe SimulationJobStatus
a -> SimulationJob
s {$sel:status:SimulationJob' :: Maybe SimulationJobStatus
status = Maybe SimulationJobStatus
a} :: SimulationJob)

-- | A map that contains tag keys and tag values that are attached to the
-- simulation job.
simulationJob_tags :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
simulationJob_tags :: Lens' SimulationJob (Maybe (HashMap Text Text))
simulationJob_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:SimulationJob' :: SimulationJob -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: SimulationJob
s@SimulationJob' {} Maybe (HashMap Text Text)
a -> SimulationJob
s {$sel:tags:SimulationJob' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: SimulationJob) 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

-- | VPC configuration information.
simulationJob_vpcConfig :: Lens.Lens' SimulationJob (Prelude.Maybe VPCConfigResponse)
simulationJob_vpcConfig :: Lens' SimulationJob (Maybe VPCConfigResponse)
simulationJob_vpcConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SimulationJob' {Maybe VPCConfigResponse
vpcConfig :: Maybe VPCConfigResponse
$sel:vpcConfig:SimulationJob' :: SimulationJob -> Maybe VPCConfigResponse
vpcConfig} -> Maybe VPCConfigResponse
vpcConfig) (\s :: SimulationJob
s@SimulationJob' {} Maybe VPCConfigResponse
a -> SimulationJob
s {$sel:vpcConfig:SimulationJob' :: Maybe VPCConfigResponse
vpcConfig = Maybe VPCConfigResponse
a} :: SimulationJob)

instance Data.FromJSON SimulationJob where
  parseJSON :: Value -> Parser SimulationJob
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"SimulationJob"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe ComputeResponse
-> Maybe [DataSource]
-> Maybe FailureBehavior
-> Maybe SimulationJobErrorCode
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe LoggingConfig
-> Maybe Integer
-> Maybe Text
-> Maybe NetworkInterface
-> Maybe OutputLocation
-> Maybe (NonEmpty RobotApplicationConfig)
-> Maybe (NonEmpty SimulationApplicationConfig)
-> Maybe Integer
-> Maybe SimulationJobStatus
-> Maybe (HashMap Text Text)
-> Maybe VPCConfigResponse
-> SimulationJob
SimulationJob'
            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
"arn")
            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
"clientRequestToken")
            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
"compute")
            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
"dataSources" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"failureBehavior")
            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
"failureCode")
            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
"failureReason")
            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
"iamRole")
            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
"lastStartedAt")
            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
"lastUpdatedAt")
            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
"loggingConfig")
            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
"maxJobDurationInSeconds")
            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
"name")
            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
"networkInterface")
            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
"outputLocation")
            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
"robotApplications")
            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
"simulationApplications")
            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
"simulationTimeMillis")
            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
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"vpcConfig")
      )

instance Prelude.Hashable SimulationJob where
  hashWithSalt :: Int -> SimulationJob -> Int
hashWithSalt Int
_salt SimulationJob' {Maybe Integer
Maybe [DataSource]
Maybe (NonEmpty RobotApplicationConfig)
Maybe (NonEmpty SimulationApplicationConfig)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe ComputeResponse
Maybe FailureBehavior
Maybe LoggingConfig
Maybe NetworkInterface
Maybe OutputLocation
Maybe SimulationJobErrorCode
Maybe SimulationJobStatus
Maybe VPCConfigResponse
vpcConfig :: Maybe VPCConfigResponse
tags :: Maybe (HashMap Text Text)
status :: Maybe SimulationJobStatus
simulationTimeMillis :: Maybe Integer
simulationApplications :: Maybe (NonEmpty SimulationApplicationConfig)
robotApplications :: Maybe (NonEmpty RobotApplicationConfig)
outputLocation :: Maybe OutputLocation
networkInterface :: Maybe NetworkInterface
name :: Maybe Text
maxJobDurationInSeconds :: Maybe Integer
loggingConfig :: Maybe LoggingConfig
lastUpdatedAt :: Maybe POSIX
lastStartedAt :: Maybe POSIX
iamRole :: Maybe Text
failureReason :: Maybe Text
failureCode :: Maybe SimulationJobErrorCode
failureBehavior :: Maybe FailureBehavior
dataSources :: Maybe [DataSource]
compute :: Maybe ComputeResponse
clientRequestToken :: Maybe Text
arn :: Maybe Text
$sel:vpcConfig:SimulationJob' :: SimulationJob -> Maybe VPCConfigResponse
$sel:tags:SimulationJob' :: SimulationJob -> Maybe (HashMap Text Text)
$sel:status:SimulationJob' :: SimulationJob -> Maybe SimulationJobStatus
$sel:simulationTimeMillis:SimulationJob' :: SimulationJob -> Maybe Integer
$sel:simulationApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty SimulationApplicationConfig)
$sel:robotApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty RobotApplicationConfig)
$sel:outputLocation:SimulationJob' :: SimulationJob -> Maybe OutputLocation
$sel:networkInterface:SimulationJob' :: SimulationJob -> Maybe NetworkInterface
$sel:name:SimulationJob' :: SimulationJob -> Maybe Text
$sel:maxJobDurationInSeconds:SimulationJob' :: SimulationJob -> Maybe Integer
$sel:loggingConfig:SimulationJob' :: SimulationJob -> Maybe LoggingConfig
$sel:lastUpdatedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
$sel:lastStartedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
$sel:iamRole:SimulationJob' :: SimulationJob -> Maybe Text
$sel:failureReason:SimulationJob' :: SimulationJob -> Maybe Text
$sel:failureCode:SimulationJob' :: SimulationJob -> Maybe SimulationJobErrorCode
$sel:failureBehavior:SimulationJob' :: SimulationJob -> Maybe FailureBehavior
$sel:dataSources:SimulationJob' :: SimulationJob -> Maybe [DataSource]
$sel:compute:SimulationJob' :: SimulationJob -> Maybe ComputeResponse
$sel:clientRequestToken:SimulationJob' :: SimulationJob -> Maybe Text
$sel:arn:SimulationJob' :: SimulationJob -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientRequestToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComputeResponse
compute
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [DataSource]
dataSources
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FailureBehavior
failureBehavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SimulationJobErrorCode
failureCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
failureReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
iamRole
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastStartedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdatedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LoggingConfig
loggingConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
maxJobDurationInSeconds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkInterface
networkInterface
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OutputLocation
outputLocation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty RobotApplicationConfig)
robotApplications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
simulationTimeMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SimulationJobStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VPCConfigResponse
vpcConfig

instance Prelude.NFData SimulationJob where
  rnf :: SimulationJob -> ()
rnf SimulationJob' {Maybe Integer
Maybe [DataSource]
Maybe (NonEmpty RobotApplicationConfig)
Maybe (NonEmpty SimulationApplicationConfig)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe ComputeResponse
Maybe FailureBehavior
Maybe LoggingConfig
Maybe NetworkInterface
Maybe OutputLocation
Maybe SimulationJobErrorCode
Maybe SimulationJobStatus
Maybe VPCConfigResponse
vpcConfig :: Maybe VPCConfigResponse
tags :: Maybe (HashMap Text Text)
status :: Maybe SimulationJobStatus
simulationTimeMillis :: Maybe Integer
simulationApplications :: Maybe (NonEmpty SimulationApplicationConfig)
robotApplications :: Maybe (NonEmpty RobotApplicationConfig)
outputLocation :: Maybe OutputLocation
networkInterface :: Maybe NetworkInterface
name :: Maybe Text
maxJobDurationInSeconds :: Maybe Integer
loggingConfig :: Maybe LoggingConfig
lastUpdatedAt :: Maybe POSIX
lastStartedAt :: Maybe POSIX
iamRole :: Maybe Text
failureReason :: Maybe Text
failureCode :: Maybe SimulationJobErrorCode
failureBehavior :: Maybe FailureBehavior
dataSources :: Maybe [DataSource]
compute :: Maybe ComputeResponse
clientRequestToken :: Maybe Text
arn :: Maybe Text
$sel:vpcConfig:SimulationJob' :: SimulationJob -> Maybe VPCConfigResponse
$sel:tags:SimulationJob' :: SimulationJob -> Maybe (HashMap Text Text)
$sel:status:SimulationJob' :: SimulationJob -> Maybe SimulationJobStatus
$sel:simulationTimeMillis:SimulationJob' :: SimulationJob -> Maybe Integer
$sel:simulationApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty SimulationApplicationConfig)
$sel:robotApplications:SimulationJob' :: SimulationJob -> Maybe (NonEmpty RobotApplicationConfig)
$sel:outputLocation:SimulationJob' :: SimulationJob -> Maybe OutputLocation
$sel:networkInterface:SimulationJob' :: SimulationJob -> Maybe NetworkInterface
$sel:name:SimulationJob' :: SimulationJob -> Maybe Text
$sel:maxJobDurationInSeconds:SimulationJob' :: SimulationJob -> Maybe Integer
$sel:loggingConfig:SimulationJob' :: SimulationJob -> Maybe LoggingConfig
$sel:lastUpdatedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
$sel:lastStartedAt:SimulationJob' :: SimulationJob -> Maybe POSIX
$sel:iamRole:SimulationJob' :: SimulationJob -> Maybe Text
$sel:failureReason:SimulationJob' :: SimulationJob -> Maybe Text
$sel:failureCode:SimulationJob' :: SimulationJob -> Maybe SimulationJobErrorCode
$sel:failureBehavior:SimulationJob' :: SimulationJob -> Maybe FailureBehavior
$sel:dataSources:SimulationJob' :: SimulationJob -> Maybe [DataSource]
$sel:compute:SimulationJob' :: SimulationJob -> Maybe ComputeResponse
$sel:clientRequestToken:SimulationJob' :: SimulationJob -> Maybe Text
$sel:arn:SimulationJob' :: SimulationJob -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientRequestToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComputeResponse
compute
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [DataSource]
dataSources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FailureBehavior
failureBehavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SimulationJobErrorCode
failureCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
iamRole
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastStartedAt
      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 LoggingConfig
loggingConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
maxJobDurationInSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NetworkInterface
networkInterface
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OutputLocation
outputLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty RobotApplicationConfig)
robotApplications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty SimulationApplicationConfig)
simulationApplications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
simulationTimeMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SimulationJobStatus
status
      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 VPCConfigResponse
vpcConfig