{-# 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.CodeCommit.Types.Approval where
import Amazonka.CodeCommit.Types.ApprovalState
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
data Approval = Approval'
{
Approval -> Maybe ApprovalState
approvalState :: Prelude.Maybe ApprovalState,
Approval -> Maybe Text
userArn :: Prelude.Maybe Prelude.Text
}
deriving (Approval -> Approval -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Approval -> Approval -> Bool
$c/= :: Approval -> Approval -> Bool
== :: Approval -> Approval -> Bool
$c== :: Approval -> Approval -> Bool
Prelude.Eq, ReadPrec [Approval]
ReadPrec Approval
Int -> ReadS Approval
ReadS [Approval]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Approval]
$creadListPrec :: ReadPrec [Approval]
readPrec :: ReadPrec Approval
$creadPrec :: ReadPrec Approval
readList :: ReadS [Approval]
$creadList :: ReadS [Approval]
readsPrec :: Int -> ReadS Approval
$creadsPrec :: Int -> ReadS Approval
Prelude.Read, Int -> Approval -> ShowS
[Approval] -> ShowS
Approval -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Approval] -> ShowS
$cshowList :: [Approval] -> ShowS
show :: Approval -> String
$cshow :: Approval -> String
showsPrec :: Int -> Approval -> ShowS
$cshowsPrec :: Int -> Approval -> ShowS
Prelude.Show, forall x. Rep Approval x -> Approval
forall x. Approval -> Rep Approval x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Approval x -> Approval
$cfrom :: forall x. Approval -> Rep Approval x
Prelude.Generic)
newApproval ::
Approval
newApproval :: Approval
newApproval =
Approval'
{ $sel:approvalState:Approval' :: Maybe ApprovalState
approvalState = forall a. Maybe a
Prelude.Nothing,
$sel:userArn:Approval' :: Maybe Text
userArn = forall a. Maybe a
Prelude.Nothing
}
approval_approvalState :: Lens.Lens' Approval (Prelude.Maybe ApprovalState)
approval_approvalState :: Lens' Approval (Maybe ApprovalState)
approval_approvalState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Approval' {Maybe ApprovalState
approvalState :: Maybe ApprovalState
$sel:approvalState:Approval' :: Approval -> Maybe ApprovalState
approvalState} -> Maybe ApprovalState
approvalState) (\s :: Approval
s@Approval' {} Maybe ApprovalState
a -> Approval
s {$sel:approvalState:Approval' :: Maybe ApprovalState
approvalState = Maybe ApprovalState
a} :: Approval)
approval_userArn :: Lens.Lens' Approval (Prelude.Maybe Prelude.Text)
approval_userArn :: Lens' Approval (Maybe Text)
approval_userArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Approval' {Maybe Text
userArn :: Maybe Text
$sel:userArn:Approval' :: Approval -> Maybe Text
userArn} -> Maybe Text
userArn) (\s :: Approval
s@Approval' {} Maybe Text
a -> Approval
s {$sel:userArn:Approval' :: Maybe Text
userArn = Maybe Text
a} :: Approval)
instance Data.FromJSON Approval where
parseJSON :: Value -> Parser Approval
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Approval"
( \Object
x ->
Maybe ApprovalState -> Maybe Text -> Approval
Approval'
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
"approvalState")
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
"userArn")
)
instance Prelude.Hashable Approval where
hashWithSalt :: Int -> Approval -> Int
hashWithSalt Int
_salt Approval' {Maybe Text
Maybe ApprovalState
userArn :: Maybe Text
approvalState :: Maybe ApprovalState
$sel:userArn:Approval' :: Approval -> Maybe Text
$sel:approvalState:Approval' :: Approval -> Maybe ApprovalState
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ApprovalState
approvalState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
userArn
instance Prelude.NFData Approval where
rnf :: Approval -> ()
rnf Approval' {Maybe Text
Maybe ApprovalState
userArn :: Maybe Text
approvalState :: Maybe ApprovalState
$sel:userArn:Approval' :: Approval -> Maybe Text
$sel:approvalState:Approval' :: Approval -> Maybe ApprovalState
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ApprovalState
approvalState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
userArn