{-# 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.Organizations.Types.Handshake where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Organizations.Types.ActionType
import Amazonka.Organizations.Types.HandshakeParty
import Amazonka.Organizations.Types.HandshakeResource
import Amazonka.Organizations.Types.HandshakeState
import qualified Amazonka.Prelude as Prelude
data Handshake = Handshake'
{
Handshake -> Maybe ActionType
action :: Prelude.Maybe ActionType,
Handshake -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
Handshake -> Maybe POSIX
expirationTimestamp :: Prelude.Maybe Data.POSIX,
Handshake -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
Handshake -> Maybe [HandshakeParty]
parties :: Prelude.Maybe [HandshakeParty],
Handshake -> Maybe POSIX
requestedTimestamp :: Prelude.Maybe Data.POSIX,
Handshake -> Maybe [HandshakeResource]
resources :: Prelude.Maybe [HandshakeResource],
Handshake -> Maybe HandshakeState
state :: Prelude.Maybe HandshakeState
}
deriving (Handshake -> Handshake -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Handshake -> Handshake -> Bool
$c/= :: Handshake -> Handshake -> Bool
== :: Handshake -> Handshake -> Bool
$c== :: Handshake -> Handshake -> Bool
Prelude.Eq, Int -> Handshake -> ShowS
[Handshake] -> ShowS
Handshake -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Handshake] -> ShowS
$cshowList :: [Handshake] -> ShowS
show :: Handshake -> String
$cshow :: Handshake -> String
showsPrec :: Int -> Handshake -> ShowS
$cshowsPrec :: Int -> Handshake -> ShowS
Prelude.Show, forall x. Rep Handshake x -> Handshake
forall x. Handshake -> Rep Handshake x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Handshake x -> Handshake
$cfrom :: forall x. Handshake -> Rep Handshake x
Prelude.Generic)
newHandshake ::
Handshake
newHandshake :: Handshake
newHandshake =
Handshake'
{ $sel:action:Handshake' :: Maybe ActionType
action = forall a. Maybe a
Prelude.Nothing,
$sel:arn:Handshake' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:expirationTimestamp:Handshake' :: Maybe POSIX
expirationTimestamp = forall a. Maybe a
Prelude.Nothing,
$sel:id:Handshake' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
$sel:parties:Handshake' :: Maybe [HandshakeParty]
parties = forall a. Maybe a
Prelude.Nothing,
$sel:requestedTimestamp:Handshake' :: Maybe POSIX
requestedTimestamp = forall a. Maybe a
Prelude.Nothing,
$sel:resources:Handshake' :: Maybe [HandshakeResource]
resources = forall a. Maybe a
Prelude.Nothing,
$sel:state:Handshake' :: Maybe HandshakeState
state = forall a. Maybe a
Prelude.Nothing
}
handshake_action :: Lens.Lens' Handshake (Prelude.Maybe ActionType)
handshake_action :: Lens' Handshake (Maybe ActionType)
handshake_action = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe ActionType
action :: Maybe ActionType
$sel:action:Handshake' :: Handshake -> Maybe ActionType
action} -> Maybe ActionType
action) (\s :: Handshake
s@Handshake' {} Maybe ActionType
a -> Handshake
s {$sel:action:Handshake' :: Maybe ActionType
action = Maybe ActionType
a} :: Handshake)
handshake_arn :: Lens.Lens' Handshake (Prelude.Maybe Prelude.Text)
handshake_arn :: Lens' Handshake (Maybe Text)
handshake_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe Text
arn :: Maybe Text
$sel:arn:Handshake' :: Handshake -> Maybe Text
arn} -> Maybe Text
arn) (\s :: Handshake
s@Handshake' {} Maybe Text
a -> Handshake
s {$sel:arn:Handshake' :: Maybe Text
arn = Maybe Text
a} :: Handshake)
handshake_expirationTimestamp :: Lens.Lens' Handshake (Prelude.Maybe Prelude.UTCTime)
handshake_expirationTimestamp :: Lens' Handshake (Maybe UTCTime)
handshake_expirationTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe POSIX
expirationTimestamp :: Maybe POSIX
$sel:expirationTimestamp:Handshake' :: Handshake -> Maybe POSIX
expirationTimestamp} -> Maybe POSIX
expirationTimestamp) (\s :: Handshake
s@Handshake' {} Maybe POSIX
a -> Handshake
s {$sel:expirationTimestamp:Handshake' :: Maybe POSIX
expirationTimestamp = Maybe POSIX
a} :: Handshake) 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
handshake_id :: Lens.Lens' Handshake (Prelude.Maybe Prelude.Text)
handshake_id :: Lens' Handshake (Maybe Text)
handshake_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe Text
id :: Maybe Text
$sel:id:Handshake' :: Handshake -> Maybe Text
id} -> Maybe Text
id) (\s :: Handshake
s@Handshake' {} Maybe Text
a -> Handshake
s {$sel:id:Handshake' :: Maybe Text
id = Maybe Text
a} :: Handshake)
handshake_parties :: Lens.Lens' Handshake (Prelude.Maybe [HandshakeParty])
handshake_parties :: Lens' Handshake (Maybe [HandshakeParty])
handshake_parties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe [HandshakeParty]
parties :: Maybe [HandshakeParty]
$sel:parties:Handshake' :: Handshake -> Maybe [HandshakeParty]
parties} -> Maybe [HandshakeParty]
parties) (\s :: Handshake
s@Handshake' {} Maybe [HandshakeParty]
a -> Handshake
s {$sel:parties:Handshake' :: Maybe [HandshakeParty]
parties = Maybe [HandshakeParty]
a} :: Handshake) 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
handshake_requestedTimestamp :: Lens.Lens' Handshake (Prelude.Maybe Prelude.UTCTime)
handshake_requestedTimestamp :: Lens' Handshake (Maybe UTCTime)
handshake_requestedTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe POSIX
requestedTimestamp :: Maybe POSIX
$sel:requestedTimestamp:Handshake' :: Handshake -> Maybe POSIX
requestedTimestamp} -> Maybe POSIX
requestedTimestamp) (\s :: Handshake
s@Handshake' {} Maybe POSIX
a -> Handshake
s {$sel:requestedTimestamp:Handshake' :: Maybe POSIX
requestedTimestamp = Maybe POSIX
a} :: Handshake) 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
handshake_resources :: Lens.Lens' Handshake (Prelude.Maybe [HandshakeResource])
handshake_resources :: Lens' Handshake (Maybe [HandshakeResource])
handshake_resources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe [HandshakeResource]
resources :: Maybe [HandshakeResource]
$sel:resources:Handshake' :: Handshake -> Maybe [HandshakeResource]
resources} -> Maybe [HandshakeResource]
resources) (\s :: Handshake
s@Handshake' {} Maybe [HandshakeResource]
a -> Handshake
s {$sel:resources:Handshake' :: Maybe [HandshakeResource]
resources = Maybe [HandshakeResource]
a} :: Handshake) 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
handshake_state :: Lens.Lens' Handshake (Prelude.Maybe HandshakeState)
handshake_state :: Lens' Handshake (Maybe HandshakeState)
handshake_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Handshake' {Maybe HandshakeState
state :: Maybe HandshakeState
$sel:state:Handshake' :: Handshake -> Maybe HandshakeState
state} -> Maybe HandshakeState
state) (\s :: Handshake
s@Handshake' {} Maybe HandshakeState
a -> Handshake
s {$sel:state:Handshake' :: Maybe HandshakeState
state = Maybe HandshakeState
a} :: Handshake)
instance Data.FromJSON Handshake where
parseJSON :: Value -> Parser Handshake
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Handshake"
( \Object
x ->
Maybe ActionType
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe [HandshakeParty]
-> Maybe POSIX
-> Maybe [HandshakeResource]
-> Maybe HandshakeState
-> Handshake
Handshake'
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
"Action")
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
"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
"ExpirationTimestamp")
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
"Id")
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
"Parties" 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
"RequestedTimestamp")
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
"Resources" 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
"State")
)
instance Prelude.Hashable Handshake where
hashWithSalt :: Int -> Handshake -> Int
hashWithSalt Int
_salt Handshake' {Maybe [HandshakeParty]
Maybe [HandshakeResource]
Maybe Text
Maybe POSIX
Maybe ActionType
Maybe HandshakeState
state :: Maybe HandshakeState
resources :: Maybe [HandshakeResource]
requestedTimestamp :: Maybe POSIX
parties :: Maybe [HandshakeParty]
id :: Maybe Text
expirationTimestamp :: Maybe POSIX
arn :: Maybe Text
action :: Maybe ActionType
$sel:state:Handshake' :: Handshake -> Maybe HandshakeState
$sel:resources:Handshake' :: Handshake -> Maybe [HandshakeResource]
$sel:requestedTimestamp:Handshake' :: Handshake -> Maybe POSIX
$sel:parties:Handshake' :: Handshake -> Maybe [HandshakeParty]
$sel:id:Handshake' :: Handshake -> Maybe Text
$sel:expirationTimestamp:Handshake' :: Handshake -> Maybe POSIX
$sel:arn:Handshake' :: Handshake -> Maybe Text
$sel:action:Handshake' :: Handshake -> Maybe ActionType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActionType
action
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
expirationTimestamp
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [HandshakeParty]
parties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
requestedTimestamp
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [HandshakeResource]
resources
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HandshakeState
state
instance Prelude.NFData Handshake where
rnf :: Handshake -> ()
rnf Handshake' {Maybe [HandshakeParty]
Maybe [HandshakeResource]
Maybe Text
Maybe POSIX
Maybe ActionType
Maybe HandshakeState
state :: Maybe HandshakeState
resources :: Maybe [HandshakeResource]
requestedTimestamp :: Maybe POSIX
parties :: Maybe [HandshakeParty]
id :: Maybe Text
expirationTimestamp :: Maybe POSIX
arn :: Maybe Text
action :: Maybe ActionType
$sel:state:Handshake' :: Handshake -> Maybe HandshakeState
$sel:resources:Handshake' :: Handshake -> Maybe [HandshakeResource]
$sel:requestedTimestamp:Handshake' :: Handshake -> Maybe POSIX
$sel:parties:Handshake' :: Handshake -> Maybe [HandshakeParty]
$sel:id:Handshake' :: Handshake -> Maybe Text
$sel:expirationTimestamp:Handshake' :: Handshake -> Maybe POSIX
$sel:arn:Handshake' :: Handshake -> Maybe Text
$sel:action:Handshake' :: Handshake -> Maybe ActionType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ActionType
action
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 POSIX
expirationTimestamp
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [HandshakeParty]
parties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
requestedTimestamp
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [HandshakeResource]
resources
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HandshakeState
state