{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.EC2.Types.NetworkInsightsPath
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.EC2.Types.NetworkInsightsPath where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.Protocol
import Amazonka.EC2.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes a path.
--
-- /See:/ 'newNetworkInsightsPath' smart constructor.
data NetworkInsightsPath = NetworkInsightsPath'
  { -- | The time stamp when the path was created.
    NetworkInsightsPath -> Maybe ISO8601
createdDate :: Prelude.Maybe Data.ISO8601,
    -- | The Amazon Web Services resource that is the destination of the path.
    NetworkInsightsPath -> Maybe Text
destination :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the destination.
    NetworkInsightsPath -> Maybe Text
destinationArn :: Prelude.Maybe Prelude.Text,
    -- | The IP address of the Amazon Web Services resource that is the
    -- destination of the path.
    NetworkInsightsPath -> Maybe Text
destinationIp :: Prelude.Maybe Prelude.Text,
    -- | The destination port.
    NetworkInsightsPath -> Maybe Int
destinationPort :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the path.
    NetworkInsightsPath -> Maybe Text
networkInsightsPathArn :: Prelude.Maybe Prelude.Text,
    -- | The ID of the path.
    NetworkInsightsPath -> Maybe Text
networkInsightsPathId :: Prelude.Maybe Prelude.Text,
    -- | The protocol.
    NetworkInsightsPath -> Maybe Protocol
protocol :: Prelude.Maybe Protocol,
    -- | The Amazon Web Services resource that is the source of the path.
    NetworkInsightsPath -> Maybe Text
source :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the source.
    NetworkInsightsPath -> Maybe Text
sourceArn :: Prelude.Maybe Prelude.Text,
    -- | The IP address of the Amazon Web Services resource that is the source of
    -- the path.
    NetworkInsightsPath -> Maybe Text
sourceIp :: Prelude.Maybe Prelude.Text,
    -- | The tags associated with the path.
    NetworkInsightsPath -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
  }
  deriving (NetworkInsightsPath -> NetworkInsightsPath -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkInsightsPath -> NetworkInsightsPath -> Bool
$c/= :: NetworkInsightsPath -> NetworkInsightsPath -> Bool
== :: NetworkInsightsPath -> NetworkInsightsPath -> Bool
$c== :: NetworkInsightsPath -> NetworkInsightsPath -> Bool
Prelude.Eq, ReadPrec [NetworkInsightsPath]
ReadPrec NetworkInsightsPath
Int -> ReadS NetworkInsightsPath
ReadS [NetworkInsightsPath]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [NetworkInsightsPath]
$creadListPrec :: ReadPrec [NetworkInsightsPath]
readPrec :: ReadPrec NetworkInsightsPath
$creadPrec :: ReadPrec NetworkInsightsPath
readList :: ReadS [NetworkInsightsPath]
$creadList :: ReadS [NetworkInsightsPath]
readsPrec :: Int -> ReadS NetworkInsightsPath
$creadsPrec :: Int -> ReadS NetworkInsightsPath
Prelude.Read, Int -> NetworkInsightsPath -> ShowS
[NetworkInsightsPath] -> ShowS
NetworkInsightsPath -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkInsightsPath] -> ShowS
$cshowList :: [NetworkInsightsPath] -> ShowS
show :: NetworkInsightsPath -> String
$cshow :: NetworkInsightsPath -> String
showsPrec :: Int -> NetworkInsightsPath -> ShowS
$cshowsPrec :: Int -> NetworkInsightsPath -> ShowS
Prelude.Show, forall x. Rep NetworkInsightsPath x -> NetworkInsightsPath
forall x. NetworkInsightsPath -> Rep NetworkInsightsPath x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NetworkInsightsPath x -> NetworkInsightsPath
$cfrom :: forall x. NetworkInsightsPath -> Rep NetworkInsightsPath x
Prelude.Generic)

-- |
-- Create a value of 'NetworkInsightsPath' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'createdDate', 'networkInsightsPath_createdDate' - The time stamp when the path was created.
--
-- 'destination', 'networkInsightsPath_destination' - The Amazon Web Services resource that is the destination of the path.
--
-- 'destinationArn', 'networkInsightsPath_destinationArn' - The Amazon Resource Name (ARN) of the destination.
--
-- 'destinationIp', 'networkInsightsPath_destinationIp' - The IP address of the Amazon Web Services resource that is the
-- destination of the path.
--
-- 'destinationPort', 'networkInsightsPath_destinationPort' - The destination port.
--
-- 'networkInsightsPathArn', 'networkInsightsPath_networkInsightsPathArn' - The Amazon Resource Name (ARN) of the path.
--
-- 'networkInsightsPathId', 'networkInsightsPath_networkInsightsPathId' - The ID of the path.
--
-- 'protocol', 'networkInsightsPath_protocol' - The protocol.
--
-- 'source', 'networkInsightsPath_source' - The Amazon Web Services resource that is the source of the path.
--
-- 'sourceArn', 'networkInsightsPath_sourceArn' - The Amazon Resource Name (ARN) of the source.
--
-- 'sourceIp', 'networkInsightsPath_sourceIp' - The IP address of the Amazon Web Services resource that is the source of
-- the path.
--
-- 'tags', 'networkInsightsPath_tags' - The tags associated with the path.
newNetworkInsightsPath ::
  NetworkInsightsPath
newNetworkInsightsPath :: NetworkInsightsPath
newNetworkInsightsPath =
  NetworkInsightsPath'
    { $sel:createdDate:NetworkInsightsPath' :: Maybe ISO8601
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:destination:NetworkInsightsPath' :: Maybe Text
destination = forall a. Maybe a
Prelude.Nothing,
      $sel:destinationArn:NetworkInsightsPath' :: Maybe Text
destinationArn = forall a. Maybe a
Prelude.Nothing,
      $sel:destinationIp:NetworkInsightsPath' :: Maybe Text
destinationIp = forall a. Maybe a
Prelude.Nothing,
      $sel:destinationPort:NetworkInsightsPath' :: Maybe Int
destinationPort = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInsightsPathArn:NetworkInsightsPath' :: Maybe Text
networkInsightsPathArn = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInsightsPathId:NetworkInsightsPath' :: Maybe Text
networkInsightsPathId = forall a. Maybe a
Prelude.Nothing,
      $sel:protocol:NetworkInsightsPath' :: Maybe Protocol
protocol = forall a. Maybe a
Prelude.Nothing,
      $sel:source:NetworkInsightsPath' :: Maybe Text
source = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceArn:NetworkInsightsPath' :: Maybe Text
sourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceIp:NetworkInsightsPath' :: Maybe Text
sourceIp = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:NetworkInsightsPath' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing
    }

-- | The time stamp when the path was created.
networkInsightsPath_createdDate :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.UTCTime)
networkInsightsPath_createdDate :: Lens' NetworkInsightsPath (Maybe UTCTime)
networkInsightsPath_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe ISO8601
createdDate :: Maybe ISO8601
$sel:createdDate:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe ISO8601
createdDate} -> Maybe ISO8601
createdDate) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe ISO8601
a -> NetworkInsightsPath
s {$sel:createdDate:NetworkInsightsPath' :: Maybe ISO8601
createdDate = Maybe ISO8601
a} :: NetworkInsightsPath) 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

-- | The Amazon Web Services resource that is the destination of the path.
networkInsightsPath_destination :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_destination :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_destination = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
destination :: Maybe Text
$sel:destination:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
destination} -> Maybe Text
destination) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:destination:NetworkInsightsPath' :: Maybe Text
destination = Maybe Text
a} :: NetworkInsightsPath)

-- | The Amazon Resource Name (ARN) of the destination.
networkInsightsPath_destinationArn :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_destinationArn :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_destinationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
destinationArn :: Maybe Text
$sel:destinationArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
destinationArn} -> Maybe Text
destinationArn) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:destinationArn:NetworkInsightsPath' :: Maybe Text
destinationArn = Maybe Text
a} :: NetworkInsightsPath)

-- | The IP address of the Amazon Web Services resource that is the
-- destination of the path.
networkInsightsPath_destinationIp :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_destinationIp :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_destinationIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
destinationIp :: Maybe Text
$sel:destinationIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
destinationIp} -> Maybe Text
destinationIp) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:destinationIp:NetworkInsightsPath' :: Maybe Text
destinationIp = Maybe Text
a} :: NetworkInsightsPath)

-- | The destination port.
networkInsightsPath_destinationPort :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Int)
networkInsightsPath_destinationPort :: Lens' NetworkInsightsPath (Maybe Int)
networkInsightsPath_destinationPort = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Int
destinationPort :: Maybe Int
$sel:destinationPort:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Int
destinationPort} -> Maybe Int
destinationPort) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Int
a -> NetworkInsightsPath
s {$sel:destinationPort:NetworkInsightsPath' :: Maybe Int
destinationPort = Maybe Int
a} :: NetworkInsightsPath)

-- | The Amazon Resource Name (ARN) of the path.
networkInsightsPath_networkInsightsPathArn :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_networkInsightsPathArn :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_networkInsightsPathArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
networkInsightsPathArn :: Maybe Text
$sel:networkInsightsPathArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
networkInsightsPathArn} -> Maybe Text
networkInsightsPathArn) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:networkInsightsPathArn:NetworkInsightsPath' :: Maybe Text
networkInsightsPathArn = Maybe Text
a} :: NetworkInsightsPath)

-- | The ID of the path.
networkInsightsPath_networkInsightsPathId :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_networkInsightsPathId :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_networkInsightsPathId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
networkInsightsPathId :: Maybe Text
$sel:networkInsightsPathId:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
networkInsightsPathId} -> Maybe Text
networkInsightsPathId) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:networkInsightsPathId:NetworkInsightsPath' :: Maybe Text
networkInsightsPathId = Maybe Text
a} :: NetworkInsightsPath)

-- | The protocol.
networkInsightsPath_protocol :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Protocol)
networkInsightsPath_protocol :: Lens' NetworkInsightsPath (Maybe Protocol)
networkInsightsPath_protocol = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Protocol
protocol :: Maybe Protocol
$sel:protocol:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Protocol
protocol} -> Maybe Protocol
protocol) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Protocol
a -> NetworkInsightsPath
s {$sel:protocol:NetworkInsightsPath' :: Maybe Protocol
protocol = Maybe Protocol
a} :: NetworkInsightsPath)

-- | The Amazon Web Services resource that is the source of the path.
networkInsightsPath_source :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_source :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_source = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
source :: Maybe Text
$sel:source:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
source} -> Maybe Text
source) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:source:NetworkInsightsPath' :: Maybe Text
source = Maybe Text
a} :: NetworkInsightsPath)

-- | The Amazon Resource Name (ARN) of the source.
networkInsightsPath_sourceArn :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_sourceArn :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_sourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
sourceArn :: Maybe Text
$sel:sourceArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
sourceArn} -> Maybe Text
sourceArn) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:sourceArn:NetworkInsightsPath' :: Maybe Text
sourceArn = Maybe Text
a} :: NetworkInsightsPath)

-- | The IP address of the Amazon Web Services resource that is the source of
-- the path.
networkInsightsPath_sourceIp :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe Prelude.Text)
networkInsightsPath_sourceIp :: Lens' NetworkInsightsPath (Maybe Text)
networkInsightsPath_sourceIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe Text
sourceIp :: Maybe Text
$sel:sourceIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
sourceIp} -> Maybe Text
sourceIp) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe Text
a -> NetworkInsightsPath
s {$sel:sourceIp:NetworkInsightsPath' :: Maybe Text
sourceIp = Maybe Text
a} :: NetworkInsightsPath)

-- | The tags associated with the path.
networkInsightsPath_tags :: Lens.Lens' NetworkInsightsPath (Prelude.Maybe [Tag])
networkInsightsPath_tags :: Lens' NetworkInsightsPath (Maybe [Tag])
networkInsightsPath_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInsightsPath' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: NetworkInsightsPath
s@NetworkInsightsPath' {} Maybe [Tag]
a -> NetworkInsightsPath
s {$sel:tags:NetworkInsightsPath' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: NetworkInsightsPath) 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

instance Data.FromXML NetworkInsightsPath where
  parseXML :: [Node] -> Either String NetworkInsightsPath
parseXML [Node]
x =
    Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Protocol
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> NetworkInsightsPath
NetworkInsightsPath'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"createdDate")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destination")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destinationArn")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destinationIp")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destinationPort")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"networkInsightsPathArn")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"networkInsightsPathId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"protocol")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"source")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"sourceArn")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"sourceIp")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"tagSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )

instance Prelude.Hashable NetworkInsightsPath where
  hashWithSalt :: Int -> NetworkInsightsPath -> Int
hashWithSalt Int
_salt NetworkInsightsPath' {Maybe Int
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe Protocol
tags :: Maybe [Tag]
sourceIp :: Maybe Text
sourceArn :: Maybe Text
source :: Maybe Text
protocol :: Maybe Protocol
networkInsightsPathId :: Maybe Text
networkInsightsPathArn :: Maybe Text
destinationPort :: Maybe Int
destinationIp :: Maybe Text
destinationArn :: Maybe Text
destination :: Maybe Text
createdDate :: Maybe ISO8601
$sel:tags:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe [Tag]
$sel:sourceIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:sourceArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:source:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:protocol:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Protocol
$sel:networkInsightsPathId:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:networkInsightsPathArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destinationPort:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Int
$sel:destinationIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destinationArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destination:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:createdDate:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe ISO8601
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
createdDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destination
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationIp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
destinationPort
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkInsightsPathArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkInsightsPathId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Protocol
protocol
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
source
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceIp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags

instance Prelude.NFData NetworkInsightsPath where
  rnf :: NetworkInsightsPath -> ()
rnf NetworkInsightsPath' {Maybe Int
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe Protocol
tags :: Maybe [Tag]
sourceIp :: Maybe Text
sourceArn :: Maybe Text
source :: Maybe Text
protocol :: Maybe Protocol
networkInsightsPathId :: Maybe Text
networkInsightsPathArn :: Maybe Text
destinationPort :: Maybe Int
destinationIp :: Maybe Text
destinationArn :: Maybe Text
destination :: Maybe Text
createdDate :: Maybe ISO8601
$sel:tags:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe [Tag]
$sel:sourceIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:sourceArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:source:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:protocol:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Protocol
$sel:networkInsightsPathId:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:networkInsightsPathArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destinationPort:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Int
$sel:destinationIp:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destinationArn:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:destination:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe Text
$sel:createdDate:NetworkInsightsPath' :: NetworkInsightsPath -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destination
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationIp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
destinationPort
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkInsightsPathArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkInsightsPathId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Protocol
protocol
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
source
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceIp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags