{-# 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 #-}
module Amazonka.DeviceFarm.Types.Problem where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DeviceFarm.Types.Device
import Amazonka.DeviceFarm.Types.ExecutionResult
import Amazonka.DeviceFarm.Types.ProblemDetail
import qualified Amazonka.Prelude as Prelude
data Problem = Problem'
{
Problem -> Maybe Device
device :: Prelude.Maybe Device,
Problem -> Maybe ProblemDetail
job :: Prelude.Maybe ProblemDetail,
Problem -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
Problem -> Maybe ExecutionResult
result :: Prelude.Maybe ExecutionResult,
Problem -> Maybe ProblemDetail
run :: Prelude.Maybe ProblemDetail,
Problem -> Maybe ProblemDetail
suite :: Prelude.Maybe ProblemDetail,
Problem -> Maybe ProblemDetail
test :: Prelude.Maybe ProblemDetail
}
deriving (Problem -> Problem -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Problem -> Problem -> Bool
$c/= :: Problem -> Problem -> Bool
== :: Problem -> Problem -> Bool
$c== :: Problem -> Problem -> Bool
Prelude.Eq, ReadPrec [Problem]
ReadPrec Problem
Int -> ReadS Problem
ReadS [Problem]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Problem]
$creadListPrec :: ReadPrec [Problem]
readPrec :: ReadPrec Problem
$creadPrec :: ReadPrec Problem
readList :: ReadS [Problem]
$creadList :: ReadS [Problem]
readsPrec :: Int -> ReadS Problem
$creadsPrec :: Int -> ReadS Problem
Prelude.Read, Int -> Problem -> ShowS
[Problem] -> ShowS
Problem -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Problem] -> ShowS
$cshowList :: [Problem] -> ShowS
show :: Problem -> String
$cshow :: Problem -> String
showsPrec :: Int -> Problem -> ShowS
$cshowsPrec :: Int -> Problem -> ShowS
Prelude.Show, forall x. Rep Problem x -> Problem
forall x. Problem -> Rep Problem x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Problem x -> Problem
$cfrom :: forall x. Problem -> Rep Problem x
Prelude.Generic)
newProblem ::
Problem
newProblem :: Problem
newProblem =
Problem'
{ $sel:device:Problem' :: Maybe Device
device = forall a. Maybe a
Prelude.Nothing,
$sel:job:Problem' :: Maybe ProblemDetail
job = forall a. Maybe a
Prelude.Nothing,
$sel:message:Problem' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
$sel:result:Problem' :: Maybe ExecutionResult
result = forall a. Maybe a
Prelude.Nothing,
$sel:run:Problem' :: Maybe ProblemDetail
run = forall a. Maybe a
Prelude.Nothing,
$sel:suite:Problem' :: Maybe ProblemDetail
suite = forall a. Maybe a
Prelude.Nothing,
$sel:test:Problem' :: Maybe ProblemDetail
test = forall a. Maybe a
Prelude.Nothing
}
problem_device :: Lens.Lens' Problem (Prelude.Maybe Device)
problem_device :: Lens' Problem (Maybe Device)
problem_device = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe Device
device :: Maybe Device
$sel:device:Problem' :: Problem -> Maybe Device
device} -> Maybe Device
device) (\s :: Problem
s@Problem' {} Maybe Device
a -> Problem
s {$sel:device:Problem' :: Maybe Device
device = Maybe Device
a} :: Problem)
problem_job :: Lens.Lens' Problem (Prelude.Maybe ProblemDetail)
problem_job :: Lens' Problem (Maybe ProblemDetail)
problem_job = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe ProblemDetail
job :: Maybe ProblemDetail
$sel:job:Problem' :: Problem -> Maybe ProblemDetail
job} -> Maybe ProblemDetail
job) (\s :: Problem
s@Problem' {} Maybe ProblemDetail
a -> Problem
s {$sel:job:Problem' :: Maybe ProblemDetail
job = Maybe ProblemDetail
a} :: Problem)
problem_message :: Lens.Lens' Problem (Prelude.Maybe Prelude.Text)
problem_message :: Lens' Problem (Maybe Text)
problem_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe Text
message :: Maybe Text
$sel:message:Problem' :: Problem -> Maybe Text
message} -> Maybe Text
message) (\s :: Problem
s@Problem' {} Maybe Text
a -> Problem
s {$sel:message:Problem' :: Maybe Text
message = Maybe Text
a} :: Problem)
problem_result :: Lens.Lens' Problem (Prelude.Maybe ExecutionResult)
problem_result :: Lens' Problem (Maybe ExecutionResult)
problem_result = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe ExecutionResult
result :: Maybe ExecutionResult
$sel:result:Problem' :: Problem -> Maybe ExecutionResult
result} -> Maybe ExecutionResult
result) (\s :: Problem
s@Problem' {} Maybe ExecutionResult
a -> Problem
s {$sel:result:Problem' :: Maybe ExecutionResult
result = Maybe ExecutionResult
a} :: Problem)
problem_run :: Lens.Lens' Problem (Prelude.Maybe ProblemDetail)
problem_run :: Lens' Problem (Maybe ProblemDetail)
problem_run = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe ProblemDetail
run :: Maybe ProblemDetail
$sel:run:Problem' :: Problem -> Maybe ProblemDetail
run} -> Maybe ProblemDetail
run) (\s :: Problem
s@Problem' {} Maybe ProblemDetail
a -> Problem
s {$sel:run:Problem' :: Maybe ProblemDetail
run = Maybe ProblemDetail
a} :: Problem)
problem_suite :: Lens.Lens' Problem (Prelude.Maybe ProblemDetail)
problem_suite :: Lens' Problem (Maybe ProblemDetail)
problem_suite = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe ProblemDetail
suite :: Maybe ProblemDetail
$sel:suite:Problem' :: Problem -> Maybe ProblemDetail
suite} -> Maybe ProblemDetail
suite) (\s :: Problem
s@Problem' {} Maybe ProblemDetail
a -> Problem
s {$sel:suite:Problem' :: Maybe ProblemDetail
suite = Maybe ProblemDetail
a} :: Problem)
problem_test :: Lens.Lens' Problem (Prelude.Maybe ProblemDetail)
problem_test :: Lens' Problem (Maybe ProblemDetail)
problem_test = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Problem' {Maybe ProblemDetail
test :: Maybe ProblemDetail
$sel:test:Problem' :: Problem -> Maybe ProblemDetail
test} -> Maybe ProblemDetail
test) (\s :: Problem
s@Problem' {} Maybe ProblemDetail
a -> Problem
s {$sel:test:Problem' :: Maybe ProblemDetail
test = Maybe ProblemDetail
a} :: Problem)
instance Data.FromJSON Problem where
parseJSON :: Value -> Parser Problem
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Problem"
( \Object
x ->
Maybe Device
-> Maybe ProblemDetail
-> Maybe Text
-> Maybe ExecutionResult
-> Maybe ProblemDetail
-> Maybe ProblemDetail
-> Maybe ProblemDetail
-> Problem
Problem'
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
"device")
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
"job")
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
"message")
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
"result")
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
"run")
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
"suite")
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
"test")
)
instance Prelude.Hashable Problem where
hashWithSalt :: Int -> Problem -> Int
hashWithSalt Int
_salt Problem' {Maybe Text
Maybe ExecutionResult
Maybe ProblemDetail
Maybe Device
test :: Maybe ProblemDetail
suite :: Maybe ProblemDetail
run :: Maybe ProblemDetail
result :: Maybe ExecutionResult
message :: Maybe Text
job :: Maybe ProblemDetail
device :: Maybe Device
$sel:test:Problem' :: Problem -> Maybe ProblemDetail
$sel:suite:Problem' :: Problem -> Maybe ProblemDetail
$sel:run:Problem' :: Problem -> Maybe ProblemDetail
$sel:result:Problem' :: Problem -> Maybe ExecutionResult
$sel:message:Problem' :: Problem -> Maybe Text
$sel:job:Problem' :: Problem -> Maybe ProblemDetail
$sel:device:Problem' :: Problem -> Maybe Device
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Device
device
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProblemDetail
job
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
message
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExecutionResult
result
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProblemDetail
run
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProblemDetail
suite
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProblemDetail
test
instance Prelude.NFData Problem where
rnf :: Problem -> ()
rnf Problem' {Maybe Text
Maybe ExecutionResult
Maybe ProblemDetail
Maybe Device
test :: Maybe ProblemDetail
suite :: Maybe ProblemDetail
run :: Maybe ProblemDetail
result :: Maybe ExecutionResult
message :: Maybe Text
job :: Maybe ProblemDetail
device :: Maybe Device
$sel:test:Problem' :: Problem -> Maybe ProblemDetail
$sel:suite:Problem' :: Problem -> Maybe ProblemDetail
$sel:run:Problem' :: Problem -> Maybe ProblemDetail
$sel:result:Problem' :: Problem -> Maybe ExecutionResult
$sel:message:Problem' :: Problem -> Maybe Text
$sel:job:Problem' :: Problem -> Maybe ProblemDetail
$sel:device:Problem' :: Problem -> Maybe Device
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Device
device
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProblemDetail
job
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExecutionResult
result
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProblemDetail
run
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProblemDetail
suite
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProblemDetail
test