{-# 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.RouteData where
import Amazonka.AppMesh.Types.ResourceMetadata
import Amazonka.AppMesh.Types.RouteSpec
import Amazonka.AppMesh.Types.RouteStatus
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 RouteData = RouteData'
{
RouteData -> Text
meshName :: Prelude.Text,
RouteData -> ResourceMetadata
metadata :: ResourceMetadata,
RouteData -> Text
routeName :: Prelude.Text,
RouteData -> RouteSpec
spec :: RouteSpec,
RouteData -> RouteStatus
status :: RouteStatus,
RouteData -> Text
virtualRouterName :: Prelude.Text
}
deriving (RouteData -> RouteData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RouteData -> RouteData -> Bool
$c/= :: RouteData -> RouteData -> Bool
== :: RouteData -> RouteData -> Bool
$c== :: RouteData -> RouteData -> Bool
Prelude.Eq, ReadPrec [RouteData]
ReadPrec RouteData
Int -> ReadS RouteData
ReadS [RouteData]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RouteData]
$creadListPrec :: ReadPrec [RouteData]
readPrec :: ReadPrec RouteData
$creadPrec :: ReadPrec RouteData
readList :: ReadS [RouteData]
$creadList :: ReadS [RouteData]
readsPrec :: Int -> ReadS RouteData
$creadsPrec :: Int -> ReadS RouteData
Prelude.Read, Int -> RouteData -> ShowS
[RouteData] -> ShowS
RouteData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RouteData] -> ShowS
$cshowList :: [RouteData] -> ShowS
show :: RouteData -> String
$cshow :: RouteData -> String
showsPrec :: Int -> RouteData -> ShowS
$cshowsPrec :: Int -> RouteData -> ShowS
Prelude.Show, forall x. Rep RouteData x -> RouteData
forall x. RouteData -> Rep RouteData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RouteData x -> RouteData
$cfrom :: forall x. RouteData -> Rep RouteData x
Prelude.Generic)
newRouteData ::
Prelude.Text ->
ResourceMetadata ->
Prelude.Text ->
RouteSpec ->
RouteStatus ->
Prelude.Text ->
RouteData
newRouteData :: Text
-> ResourceMetadata
-> Text
-> RouteSpec
-> RouteStatus
-> Text
-> RouteData
newRouteData
Text
pMeshName_
ResourceMetadata
pMetadata_
Text
pRouteName_
RouteSpec
pSpec_
RouteStatus
pStatus_
Text
pVirtualRouterName_ =
RouteData'
{ $sel:meshName:RouteData' :: Text
meshName = Text
pMeshName_,
$sel:metadata:RouteData' :: ResourceMetadata
metadata = ResourceMetadata
pMetadata_,
$sel:routeName:RouteData' :: Text
routeName = Text
pRouteName_,
$sel:spec:RouteData' :: RouteSpec
spec = RouteSpec
pSpec_,
$sel:status:RouteData' :: RouteStatus
status = RouteStatus
pStatus_,
$sel:virtualRouterName:RouteData' :: Text
virtualRouterName = Text
pVirtualRouterName_
}
routeData_meshName :: Lens.Lens' RouteData Prelude.Text
routeData_meshName :: Lens' RouteData Text
routeData_meshName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {Text
meshName :: Text
$sel:meshName:RouteData' :: RouteData -> Text
meshName} -> Text
meshName) (\s :: RouteData
s@RouteData' {} Text
a -> RouteData
s {$sel:meshName:RouteData' :: Text
meshName = Text
a} :: RouteData)
routeData_metadata :: Lens.Lens' RouteData ResourceMetadata
routeData_metadata :: Lens' RouteData ResourceMetadata
routeData_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {ResourceMetadata
metadata :: ResourceMetadata
$sel:metadata:RouteData' :: RouteData -> ResourceMetadata
metadata} -> ResourceMetadata
metadata) (\s :: RouteData
s@RouteData' {} ResourceMetadata
a -> RouteData
s {$sel:metadata:RouteData' :: ResourceMetadata
metadata = ResourceMetadata
a} :: RouteData)
routeData_routeName :: Lens.Lens' RouteData Prelude.Text
routeData_routeName :: Lens' RouteData Text
routeData_routeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {Text
routeName :: Text
$sel:routeName:RouteData' :: RouteData -> Text
routeName} -> Text
routeName) (\s :: RouteData
s@RouteData' {} Text
a -> RouteData
s {$sel:routeName:RouteData' :: Text
routeName = Text
a} :: RouteData)
routeData_spec :: Lens.Lens' RouteData RouteSpec
routeData_spec :: Lens' RouteData RouteSpec
routeData_spec = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {RouteSpec
spec :: RouteSpec
$sel:spec:RouteData' :: RouteData -> RouteSpec
spec} -> RouteSpec
spec) (\s :: RouteData
s@RouteData' {} RouteSpec
a -> RouteData
s {$sel:spec:RouteData' :: RouteSpec
spec = RouteSpec
a} :: RouteData)
routeData_status :: Lens.Lens' RouteData RouteStatus
routeData_status :: Lens' RouteData RouteStatus
routeData_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {RouteStatus
status :: RouteStatus
$sel:status:RouteData' :: RouteData -> RouteStatus
status} -> RouteStatus
status) (\s :: RouteData
s@RouteData' {} RouteStatus
a -> RouteData
s {$sel:status:RouteData' :: RouteStatus
status = RouteStatus
a} :: RouteData)
routeData_virtualRouterName :: Lens.Lens' RouteData Prelude.Text
routeData_virtualRouterName :: Lens' RouteData Text
routeData_virtualRouterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RouteData' {Text
virtualRouterName :: Text
$sel:virtualRouterName:RouteData' :: RouteData -> Text
virtualRouterName} -> Text
virtualRouterName) (\s :: RouteData
s@RouteData' {} Text
a -> RouteData
s {$sel:virtualRouterName:RouteData' :: Text
virtualRouterName = Text
a} :: RouteData)
instance Data.FromJSON RouteData where
parseJSON :: Value -> Parser RouteData
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"RouteData"
( \Object
x ->
Text
-> ResourceMetadata
-> Text
-> RouteSpec
-> RouteStatus
-> Text
-> RouteData
RouteData'
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
"routeName")
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
"virtualRouterName")
)
instance Prelude.Hashable RouteData where
hashWithSalt :: Int -> RouteData -> Int
hashWithSalt Int
_salt RouteData' {Text
ResourceMetadata
RouteStatus
RouteSpec
virtualRouterName :: Text
status :: RouteStatus
spec :: RouteSpec
routeName :: Text
metadata :: ResourceMetadata
meshName :: Text
$sel:virtualRouterName:RouteData' :: RouteData -> Text
$sel:status:RouteData' :: RouteData -> RouteStatus
$sel:spec:RouteData' :: RouteData -> RouteSpec
$sel:routeName:RouteData' :: RouteData -> Text
$sel:metadata:RouteData' :: RouteData -> ResourceMetadata
$sel:meshName:RouteData' :: RouteData -> 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` Text
routeName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` RouteSpec
spec
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` RouteStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
virtualRouterName
instance Prelude.NFData RouteData where
rnf :: RouteData -> ()
rnf RouteData' {Text
ResourceMetadata
RouteStatus
RouteSpec
virtualRouterName :: Text
status :: RouteStatus
spec :: RouteSpec
routeName :: Text
metadata :: ResourceMetadata
meshName :: Text
$sel:virtualRouterName:RouteData' :: RouteData -> Text
$sel:status:RouteData' :: RouteData -> RouteStatus
$sel:spec:RouteData' :: RouteData -> RouteSpec
$sel:routeName:RouteData' :: RouteData -> Text
$sel:metadata:RouteData' :: RouteData -> ResourceMetadata
$sel:meshName:RouteData' :: RouteData -> 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 Text
routeName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf RouteSpec
spec
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf RouteStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
virtualRouterName