module Stratosphere.Glue.Crawler.HudiTargetProperty (
        HudiTargetProperty(..), mkHudiTargetProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data HudiTargetProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-huditarget.html>
    HudiTargetProperty {HudiTargetProperty -> ()
haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-huditarget.html#cfn-glue-crawler-huditarget-connectionname>
                        HudiTargetProperty -> Maybe (Value Text)
connectionName :: (Prelude.Maybe (Value Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-huditarget.html#cfn-glue-crawler-huditarget-exclusions>
                        HudiTargetProperty -> Maybe (ValueList Text)
exclusions :: (Prelude.Maybe (ValueList Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-huditarget.html#cfn-glue-crawler-huditarget-maximumtraversaldepth>
                        HudiTargetProperty -> Maybe (Value Integer)
maximumTraversalDepth :: (Prelude.Maybe (Value Prelude.Integer)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-huditarget.html#cfn-glue-crawler-huditarget-paths>
                        HudiTargetProperty -> Maybe (ValueList Text)
paths :: (Prelude.Maybe (ValueList Prelude.Text))}
  deriving stock (HudiTargetProperty -> HudiTargetProperty -> Bool
(HudiTargetProperty -> HudiTargetProperty -> Bool)
-> (HudiTargetProperty -> HudiTargetProperty -> Bool)
-> Eq HudiTargetProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HudiTargetProperty -> HudiTargetProperty -> Bool
== :: HudiTargetProperty -> HudiTargetProperty -> Bool
$c/= :: HudiTargetProperty -> HudiTargetProperty -> Bool
/= :: HudiTargetProperty -> HudiTargetProperty -> Bool
Prelude.Eq, Int -> HudiTargetProperty -> ShowS
[HudiTargetProperty] -> ShowS
HudiTargetProperty -> String
(Int -> HudiTargetProperty -> ShowS)
-> (HudiTargetProperty -> String)
-> ([HudiTargetProperty] -> ShowS)
-> Show HudiTargetProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HudiTargetProperty -> ShowS
showsPrec :: Int -> HudiTargetProperty -> ShowS
$cshow :: HudiTargetProperty -> String
show :: HudiTargetProperty -> String
$cshowList :: [HudiTargetProperty] -> ShowS
showList :: [HudiTargetProperty] -> ShowS
Prelude.Show)
mkHudiTargetProperty :: HudiTargetProperty
mkHudiTargetProperty :: HudiTargetProperty
mkHudiTargetProperty
  = HudiTargetProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), connectionName :: Maybe (Value Text)
connectionName = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       exclusions :: Maybe (ValueList Text)
exclusions = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       maximumTraversalDepth :: Maybe (Value Integer)
maximumTraversalDepth = Maybe (Value Integer)
forall a. Maybe a
Prelude.Nothing, paths :: Maybe (ValueList Text)
paths = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties HudiTargetProperty where
  toResourceProperties :: HudiTargetProperty -> ResourceProperties
toResourceProperties HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Glue::Crawler.HudiTarget",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [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..=) Key
"ConnectionName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
connectionName,
                            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
"Exclusions" (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)
exclusions,
                            Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MaximumTraversalDepth"
                              (Value Integer -> (Key, Value))
-> Maybe (Value Integer) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Integer)
maximumTraversalDepth,
                            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
"Paths" (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)
paths])}
instance JSON.ToJSON HudiTargetProperty where
  toJSON :: HudiTargetProperty -> Value
toJSON HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [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..=) Key
"ConnectionName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
connectionName,
               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
"Exclusions" (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)
exclusions,
               Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MaximumTraversalDepth"
                 (Value Integer -> (Key, Value))
-> Maybe (Value Integer) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Integer)
maximumTraversalDepth,
               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
"Paths" (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)
paths]))
instance Property "ConnectionName" HudiTargetProperty where
  type PropertyType "ConnectionName" HudiTargetProperty = Value Prelude.Text
  set :: PropertyType "ConnectionName" HudiTargetProperty
-> HudiTargetProperty -> HudiTargetProperty
set PropertyType "ConnectionName" HudiTargetProperty
newValue HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = HudiTargetProperty {connectionName :: Maybe (Value Text)
connectionName = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "ConnectionName" HudiTargetProperty
Value Text
newValue, Maybe (ValueList Text)
Maybe (Value Integer)
()
haddock_workaround_ :: ()
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
haddock_workaround_ :: ()
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
instance Property "Exclusions" HudiTargetProperty where
  type PropertyType "Exclusions" HudiTargetProperty = ValueList Prelude.Text
  set :: PropertyType "Exclusions" HudiTargetProperty
-> HudiTargetProperty -> HudiTargetProperty
set PropertyType "Exclusions" HudiTargetProperty
newValue HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = HudiTargetProperty {exclusions :: Maybe (ValueList Text)
exclusions = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Exclusions" HudiTargetProperty
ValueList Text
newValue, Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
instance Property "MaximumTraversalDepth" HudiTargetProperty where
  type PropertyType "MaximumTraversalDepth" HudiTargetProperty = Value Prelude.Integer
  set :: PropertyType "MaximumTraversalDepth" HudiTargetProperty
-> HudiTargetProperty -> HudiTargetProperty
set PropertyType "MaximumTraversalDepth" HudiTargetProperty
newValue HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = HudiTargetProperty
        {maximumTraversalDepth :: Maybe (Value Integer)
maximumTraversalDepth = Value Integer -> Maybe (Value Integer)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "MaximumTraversalDepth" HudiTargetProperty
Value Integer
newValue, Maybe (ValueList Text)
Maybe (Value Text)
()
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
paths :: Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
paths :: Maybe (ValueList Text)
..}
instance Property "Paths" HudiTargetProperty where
  type PropertyType "Paths" HudiTargetProperty = ValueList Prelude.Text
  set :: PropertyType "Paths" HudiTargetProperty
-> HudiTargetProperty -> HudiTargetProperty
set PropertyType "Paths" HudiTargetProperty
newValue HudiTargetProperty {Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: HudiTargetProperty -> ()
connectionName :: HudiTargetProperty -> Maybe (Value Text)
exclusions :: HudiTargetProperty -> Maybe (ValueList Text)
maximumTraversalDepth :: HudiTargetProperty -> Maybe (Value Integer)
paths :: HudiTargetProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
paths :: Maybe (ValueList Text)
..}
    = HudiTargetProperty {paths :: Maybe (ValueList Text)
paths = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Paths" HudiTargetProperty
ValueList Text
newValue, Maybe (ValueList Text)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
haddock_workaround_ :: ()
connectionName :: Maybe (Value Text)
exclusions :: Maybe (ValueList Text)
maximumTraversalDepth :: Maybe (Value Integer)
..}