module Stratosphere.EC2.NetworkInsightsAnalysis (
        NetworkInsightsAnalysis(..), mkNetworkInsightsAnalysis
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data NetworkInsightsAnalysis
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html>
    NetworkInsightsAnalysis {NetworkInsightsAnalysis -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-additionalaccounts>
                             NetworkInsightsAnalysis -> Maybe (ValueList Text)
additionalAccounts :: (Prelude.Maybe (ValueList Prelude.Text)),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-filterinarns>
                             NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-filteroutarns>
                             NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-networkinsightspathid>
                             NetworkInsightsAnalysis -> Value Text
networkInsightsPathId :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-tags>
                             NetworkInsightsAnalysis -> Maybe [Tag]
tags :: (Prelude.Maybe [Tag])}
  deriving stock (NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool
(NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool)
-> (NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool)
-> Eq NetworkInsightsAnalysis
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool
== :: NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool
$c/= :: NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool
/= :: NetworkInsightsAnalysis -> NetworkInsightsAnalysis -> Bool
Prelude.Eq, Int -> NetworkInsightsAnalysis -> ShowS
[NetworkInsightsAnalysis] -> ShowS
NetworkInsightsAnalysis -> String
(Int -> NetworkInsightsAnalysis -> ShowS)
-> (NetworkInsightsAnalysis -> String)
-> ([NetworkInsightsAnalysis] -> ShowS)
-> Show NetworkInsightsAnalysis
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkInsightsAnalysis -> ShowS
showsPrec :: Int -> NetworkInsightsAnalysis -> ShowS
$cshow :: NetworkInsightsAnalysis -> String
show :: NetworkInsightsAnalysis -> String
$cshowList :: [NetworkInsightsAnalysis] -> ShowS
showList :: [NetworkInsightsAnalysis] -> ShowS
Prelude.Show)
mkNetworkInsightsAnalysis ::
  Value Prelude.Text -> NetworkInsightsAnalysis
mkNetworkInsightsAnalysis :: Value Text -> NetworkInsightsAnalysis
mkNetworkInsightsAnalysis Value Text
networkInsightsPathId
  = NetworkInsightsAnalysis
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       networkInsightsPathId :: Value Text
networkInsightsPathId = Value Text
networkInsightsPathId,
       additionalAccounts :: Maybe (ValueList Text)
additionalAccounts = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       filterInArns :: Maybe (ValueList Text)
filterInArns = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing, filterOutArns :: Maybe (ValueList Text)
filterOutArns = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       tags :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties NetworkInsightsAnalysis where
  toResourceProperties :: NetworkInsightsAnalysis -> ResourceProperties
toResourceProperties NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EC2::NetworkInsightsAnalysis",
         supportsTags :: Bool
supportsTags = Bool
Prelude.True,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"NetworkInsightsPathId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
networkInsightsPathId]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AdditionalAccounts" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
additionalAccounts,
                               Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterInArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
filterInArns,
                               Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterOutArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
filterOutArns,
                               Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Tags" ([Tag] -> (Key, Value)) -> Maybe [Tag] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags]))}
instance JSON.ToJSON NetworkInsightsAnalysis where
  toJSON :: NetworkInsightsAnalysis -> Value
toJSON NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"NetworkInsightsPathId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
networkInsightsPathId]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AdditionalAccounts" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
additionalAccounts,
                  Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterInArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
filterInArns,
                  Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FilterOutArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
filterOutArns,
                  Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Tags" ([Tag] -> (Key, Value)) -> Maybe [Tag] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags])))
instance Property "AdditionalAccounts" NetworkInsightsAnalysis where
  type PropertyType "AdditionalAccounts" NetworkInsightsAnalysis = ValueList Prelude.Text
  set :: PropertyType "AdditionalAccounts" NetworkInsightsAnalysis
-> NetworkInsightsAnalysis -> NetworkInsightsAnalysis
set PropertyType "AdditionalAccounts" NetworkInsightsAnalysis
newValue NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = NetworkInsightsAnalysis
        {additionalAccounts :: Maybe (ValueList Text)
additionalAccounts = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AdditionalAccounts" NetworkInsightsAnalysis
ValueList Text
newValue, Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
haddock_workaround_ :: ()
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
instance Property "FilterInArns" NetworkInsightsAnalysis where
  type PropertyType "FilterInArns" NetworkInsightsAnalysis = ValueList Prelude.Text
  set :: PropertyType "FilterInArns" NetworkInsightsAnalysis
-> NetworkInsightsAnalysis -> NetworkInsightsAnalysis
set PropertyType "FilterInArns" NetworkInsightsAnalysis
newValue NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = NetworkInsightsAnalysis
        {filterInArns :: Maybe (ValueList Text)
filterInArns = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FilterInArns" NetworkInsightsAnalysis
ValueList Text
newValue, Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
instance Property "FilterOutArns" NetworkInsightsAnalysis where
  type PropertyType "FilterOutArns" NetworkInsightsAnalysis = ValueList Prelude.Text
  set :: PropertyType "FilterOutArns" NetworkInsightsAnalysis
-> NetworkInsightsAnalysis -> NetworkInsightsAnalysis
set PropertyType "FilterOutArns" NetworkInsightsAnalysis
newValue NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = NetworkInsightsAnalysis
        {filterOutArns :: Maybe (ValueList Text)
filterOutArns = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FilterOutArns" NetworkInsightsAnalysis
ValueList Text
newValue, Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
instance Property "NetworkInsightsPathId" NetworkInsightsAnalysis where
  type PropertyType "NetworkInsightsPathId" NetworkInsightsAnalysis = Value Prelude.Text
  set :: PropertyType "NetworkInsightsPathId" NetworkInsightsAnalysis
-> NetworkInsightsAnalysis -> NetworkInsightsAnalysis
set PropertyType "NetworkInsightsPathId" NetworkInsightsAnalysis
newValue NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = NetworkInsightsAnalysis {networkInsightsPathId :: Value Text
networkInsightsPathId = PropertyType "NetworkInsightsPathId" NetworkInsightsAnalysis
Value Text
newValue, Maybe [Tag]
Maybe (ValueList Text)
()
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
tags :: Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
tags :: Maybe [Tag]
..}
instance Property "Tags" NetworkInsightsAnalysis where
  type PropertyType "Tags" NetworkInsightsAnalysis = [Tag]
  set :: PropertyType "Tags" NetworkInsightsAnalysis
-> NetworkInsightsAnalysis -> NetworkInsightsAnalysis
set PropertyType "Tags" NetworkInsightsAnalysis
newValue NetworkInsightsAnalysis {Maybe [Tag]
Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: NetworkInsightsAnalysis -> ()
additionalAccounts :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterInArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
filterOutArns :: NetworkInsightsAnalysis -> Maybe (ValueList Text)
networkInsightsPathId :: NetworkInsightsAnalysis -> Value Text
tags :: NetworkInsightsAnalysis -> Maybe [Tag]
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
tags :: Maybe [Tag]
..}
    = NetworkInsightsAnalysis {tags :: Maybe [Tag]
tags = [Tag] -> Maybe [Tag]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [Tag]
PropertyType "Tags" NetworkInsightsAnalysis
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
haddock_workaround_ :: ()
additionalAccounts :: Maybe (ValueList Text)
filterInArns :: Maybe (ValueList Text)
filterOutArns :: Maybe (ValueList Text)
networkInsightsPathId :: Value Text
..}