{-# 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.AppMesh.Types.VirtualGatewayData where
import Amazonka.AppMesh.Types.ResourceMetadata
import Amazonka.AppMesh.Types.VirtualGatewaySpec
import Amazonka.AppMesh.Types.VirtualGatewayStatus
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 VirtualGatewayData = VirtualGatewayData'
{
VirtualGatewayData -> Text
meshName :: Prelude.Text,
VirtualGatewayData -> ResourceMetadata
metadata :: ResourceMetadata,
VirtualGatewayData -> VirtualGatewaySpec
spec :: VirtualGatewaySpec,
VirtualGatewayData -> VirtualGatewayStatus
status :: VirtualGatewayStatus,
VirtualGatewayData -> Text
virtualGatewayName :: Prelude.Text
}
deriving (VirtualGatewayData -> VirtualGatewayData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VirtualGatewayData -> VirtualGatewayData -> Bool
$c/= :: VirtualGatewayData -> VirtualGatewayData -> Bool
== :: VirtualGatewayData -> VirtualGatewayData -> Bool
$c== :: VirtualGatewayData -> VirtualGatewayData -> Bool
Prelude.Eq, ReadPrec [VirtualGatewayData]
ReadPrec VirtualGatewayData
Int -> ReadS VirtualGatewayData
ReadS [VirtualGatewayData]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VirtualGatewayData]
$creadListPrec :: ReadPrec [VirtualGatewayData]
readPrec :: ReadPrec VirtualGatewayData
$creadPrec :: ReadPrec VirtualGatewayData
readList :: ReadS [VirtualGatewayData]
$creadList :: ReadS [VirtualGatewayData]
readsPrec :: Int -> ReadS VirtualGatewayData
$creadsPrec :: Int -> ReadS VirtualGatewayData
Prelude.Read, Int -> VirtualGatewayData -> ShowS
[VirtualGatewayData] -> ShowS
VirtualGatewayData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VirtualGatewayData] -> ShowS
$cshowList :: [VirtualGatewayData] -> ShowS
show :: VirtualGatewayData -> String
$cshow :: VirtualGatewayData -> String
showsPrec :: Int -> VirtualGatewayData -> ShowS
$cshowsPrec :: Int -> VirtualGatewayData -> ShowS
Prelude.Show, forall x. Rep VirtualGatewayData x -> VirtualGatewayData
forall x. VirtualGatewayData -> Rep VirtualGatewayData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VirtualGatewayData x -> VirtualGatewayData
$cfrom :: forall x. VirtualGatewayData -> Rep VirtualGatewayData x
Prelude.Generic)
newVirtualGatewayData ::
Prelude.Text ->
ResourceMetadata ->
VirtualGatewaySpec ->
VirtualGatewayStatus ->
Prelude.Text ->
VirtualGatewayData
newVirtualGatewayData :: Text
-> ResourceMetadata
-> VirtualGatewaySpec
-> VirtualGatewayStatus
-> Text
-> VirtualGatewayData
newVirtualGatewayData
Text
pMeshName_
ResourceMetadata
pMetadata_
VirtualGatewaySpec
pSpec_
VirtualGatewayStatus
pStatus_
Text
pVirtualGatewayName_ =
VirtualGatewayData'
{ $sel:meshName:VirtualGatewayData' :: Text
meshName = Text
pMeshName_,
$sel:metadata:VirtualGatewayData' :: ResourceMetadata
metadata = ResourceMetadata
pMetadata_,
$sel:spec:VirtualGatewayData' :: VirtualGatewaySpec
spec = VirtualGatewaySpec
pSpec_,
$sel:status:VirtualGatewayData' :: VirtualGatewayStatus
status = VirtualGatewayStatus
pStatus_,
$sel:virtualGatewayName:VirtualGatewayData' :: Text
virtualGatewayName = Text
pVirtualGatewayName_
}
virtualGatewayData_meshName :: Lens.Lens' VirtualGatewayData Prelude.Text
virtualGatewayData_meshName :: Lens' VirtualGatewayData Text
virtualGatewayData_meshName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualGatewayData' {Text
meshName :: Text
$sel:meshName:VirtualGatewayData' :: VirtualGatewayData -> Text
meshName} -> Text
meshName) (\s :: VirtualGatewayData
s@VirtualGatewayData' {} Text
a -> VirtualGatewayData
s {$sel:meshName:VirtualGatewayData' :: Text
meshName = Text
a} :: VirtualGatewayData)
virtualGatewayData_metadata :: Lens.Lens' VirtualGatewayData ResourceMetadata
virtualGatewayData_metadata :: Lens' VirtualGatewayData ResourceMetadata
virtualGatewayData_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualGatewayData' {ResourceMetadata
metadata :: ResourceMetadata
$sel:metadata:VirtualGatewayData' :: VirtualGatewayData -> ResourceMetadata
metadata} -> ResourceMetadata
metadata) (\s :: VirtualGatewayData
s@VirtualGatewayData' {} ResourceMetadata
a -> VirtualGatewayData
s {$sel:metadata:VirtualGatewayData' :: ResourceMetadata
metadata = ResourceMetadata
a} :: VirtualGatewayData)
virtualGatewayData_spec :: Lens.Lens' VirtualGatewayData VirtualGatewaySpec
virtualGatewayData_spec :: Lens' VirtualGatewayData VirtualGatewaySpec
virtualGatewayData_spec = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualGatewayData' {VirtualGatewaySpec
spec :: VirtualGatewaySpec
$sel:spec:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewaySpec
spec} -> VirtualGatewaySpec
spec) (\s :: VirtualGatewayData
s@VirtualGatewayData' {} VirtualGatewaySpec
a -> VirtualGatewayData
s {$sel:spec:VirtualGatewayData' :: VirtualGatewaySpec
spec = VirtualGatewaySpec
a} :: VirtualGatewayData)
virtualGatewayData_status :: Lens.Lens' VirtualGatewayData VirtualGatewayStatus
virtualGatewayData_status :: Lens' VirtualGatewayData VirtualGatewayStatus
virtualGatewayData_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualGatewayData' {VirtualGatewayStatus
status :: VirtualGatewayStatus
$sel:status:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewayStatus
status} -> VirtualGatewayStatus
status) (\s :: VirtualGatewayData
s@VirtualGatewayData' {} VirtualGatewayStatus
a -> VirtualGatewayData
s {$sel:status:VirtualGatewayData' :: VirtualGatewayStatus
status = VirtualGatewayStatus
a} :: VirtualGatewayData)
virtualGatewayData_virtualGatewayName :: Lens.Lens' VirtualGatewayData Prelude.Text
virtualGatewayData_virtualGatewayName :: Lens' VirtualGatewayData Text
virtualGatewayData_virtualGatewayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualGatewayData' {Text
virtualGatewayName :: Text
$sel:virtualGatewayName:VirtualGatewayData' :: VirtualGatewayData -> Text
virtualGatewayName} -> Text
virtualGatewayName) (\s :: VirtualGatewayData
s@VirtualGatewayData' {} Text
a -> VirtualGatewayData
s {$sel:virtualGatewayName:VirtualGatewayData' :: Text
virtualGatewayName = Text
a} :: VirtualGatewayData)
instance Data.FromJSON VirtualGatewayData where
parseJSON :: Value -> Parser VirtualGatewayData
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"VirtualGatewayData"
( \Object
x ->
Text
-> ResourceMetadata
-> VirtualGatewaySpec
-> VirtualGatewayStatus
-> Text
-> VirtualGatewayData
VirtualGatewayData'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"meshName")
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
"metadata")
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
"spec")
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
"status")
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
"virtualGatewayName")
)
instance Prelude.Hashable VirtualGatewayData where
hashWithSalt :: Int -> VirtualGatewayData -> Int
hashWithSalt Int
_salt VirtualGatewayData' {Text
ResourceMetadata
VirtualGatewayStatus
VirtualGatewaySpec
virtualGatewayName :: Text
status :: VirtualGatewayStatus
spec :: VirtualGatewaySpec
metadata :: ResourceMetadata
meshName :: Text
$sel:virtualGatewayName:VirtualGatewayData' :: VirtualGatewayData -> Text
$sel:status:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewayStatus
$sel:spec:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewaySpec
$sel:metadata:VirtualGatewayData' :: VirtualGatewayData -> ResourceMetadata
$sel:meshName:VirtualGatewayData' :: VirtualGatewayData -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
meshName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ResourceMetadata
metadata
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` VirtualGatewaySpec
spec
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` VirtualGatewayStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
virtualGatewayName
instance Prelude.NFData VirtualGatewayData where
rnf :: VirtualGatewayData -> ()
rnf VirtualGatewayData' {Text
ResourceMetadata
VirtualGatewayStatus
VirtualGatewaySpec
virtualGatewayName :: Text
status :: VirtualGatewayStatus
spec :: VirtualGatewaySpec
metadata :: ResourceMetadata
meshName :: Text
$sel:virtualGatewayName:VirtualGatewayData' :: VirtualGatewayData -> Text
$sel:status:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewayStatus
$sel:spec:VirtualGatewayData' :: VirtualGatewayData -> VirtualGatewaySpec
$sel:metadata:VirtualGatewayData' :: VirtualGatewayData -> ResourceMetadata
$sel:meshName:VirtualGatewayData' :: VirtualGatewayData -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
meshName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ResourceMetadata
metadata
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf VirtualGatewaySpec
spec
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf VirtualGatewayStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
virtualGatewayName