module Stratosphere.EC2.FlowLog.DestinationOptionsProperty (
        DestinationOptionsProperty(..), mkDestinationOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DestinationOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html>
    DestinationOptionsProperty {DestinationOptionsProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html#cfn-ec2-flowlog-destinationoptions-fileformat>
                                DestinationOptionsProperty -> Value Text
fileFormat :: (Value Prelude.Text),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html#cfn-ec2-flowlog-destinationoptions-hivecompatiblepartitions>
                                DestinationOptionsProperty -> Value Bool
hiveCompatiblePartitions :: (Value Prelude.Bool),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html#cfn-ec2-flowlog-destinationoptions-perhourpartition>
                                DestinationOptionsProperty -> Value Bool
perHourPartition :: (Value Prelude.Bool)}
  deriving stock (DestinationOptionsProperty -> DestinationOptionsProperty -> Bool
(DestinationOptionsProperty -> DestinationOptionsProperty -> Bool)
-> (DestinationOptionsProperty
    -> DestinationOptionsProperty -> Bool)
-> Eq DestinationOptionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DestinationOptionsProperty -> DestinationOptionsProperty -> Bool
== :: DestinationOptionsProperty -> DestinationOptionsProperty -> Bool
$c/= :: DestinationOptionsProperty -> DestinationOptionsProperty -> Bool
/= :: DestinationOptionsProperty -> DestinationOptionsProperty -> Bool
Prelude.Eq, Int -> DestinationOptionsProperty -> ShowS
[DestinationOptionsProperty] -> ShowS
DestinationOptionsProperty -> String
(Int -> DestinationOptionsProperty -> ShowS)
-> (DestinationOptionsProperty -> String)
-> ([DestinationOptionsProperty] -> ShowS)
-> Show DestinationOptionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DestinationOptionsProperty -> ShowS
showsPrec :: Int -> DestinationOptionsProperty -> ShowS
$cshow :: DestinationOptionsProperty -> String
show :: DestinationOptionsProperty -> String
$cshowList :: [DestinationOptionsProperty] -> ShowS
showList :: [DestinationOptionsProperty] -> ShowS
Prelude.Show)
mkDestinationOptionsProperty ::
  Value Prelude.Text
  -> Value Prelude.Bool
     -> Value Prelude.Bool -> DestinationOptionsProperty
mkDestinationOptionsProperty :: Value Text
-> Value Bool -> Value Bool -> DestinationOptionsProperty
mkDestinationOptionsProperty
  Value Text
fileFormat
  Value Bool
hiveCompatiblePartitions
  Value Bool
perHourPartition
  = DestinationOptionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fileFormat :: Value Text
fileFormat = Value Text
fileFormat,
       hiveCompatiblePartitions :: Value Bool
hiveCompatiblePartitions = Value Bool
hiveCompatiblePartitions,
       perHourPartition :: Value Bool
perHourPartition = Value Bool
perHourPartition}
instance ToResourceProperties DestinationOptionsProperty where
  toResourceProperties :: DestinationOptionsProperty -> ResourceProperties
toResourceProperties DestinationOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: DestinationOptionsProperty -> ()
fileFormat :: DestinationOptionsProperty -> Value Text
hiveCompatiblePartitions :: DestinationOptionsProperty -> Value Bool
perHourPartition :: DestinationOptionsProperty -> Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EC2::FlowLog.DestinationOptions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FileFormat" 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
fileFormat,
                       Key
"HiveCompatiblePartitions" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
hiveCompatiblePartitions,
                       Key
"PerHourPartition" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
perHourPartition]}
instance JSON.ToJSON DestinationOptionsProperty where
  toJSON :: DestinationOptionsProperty -> Value
toJSON DestinationOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: DestinationOptionsProperty -> ()
fileFormat :: DestinationOptionsProperty -> Value Text
hiveCompatiblePartitions :: DestinationOptionsProperty -> Value Bool
perHourPartition :: DestinationOptionsProperty -> Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FileFormat" 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
fileFormat,
         Key
"HiveCompatiblePartitions" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
hiveCompatiblePartitions,
         Key
"PerHourPartition" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
perHourPartition]
instance Property "FileFormat" DestinationOptionsProperty where
  type PropertyType "FileFormat" DestinationOptionsProperty = Value Prelude.Text
  set :: PropertyType "FileFormat" DestinationOptionsProperty
-> DestinationOptionsProperty -> DestinationOptionsProperty
set PropertyType "FileFormat" DestinationOptionsProperty
newValue DestinationOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: DestinationOptionsProperty -> ()
fileFormat :: DestinationOptionsProperty -> Value Text
hiveCompatiblePartitions :: DestinationOptionsProperty -> Value Bool
perHourPartition :: DestinationOptionsProperty -> Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
    = DestinationOptionsProperty {fileFormat :: Value Text
fileFormat = PropertyType "FileFormat" DestinationOptionsProperty
Value Text
newValue, ()
Value Bool
haddock_workaround_ :: ()
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
haddock_workaround_ :: ()
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
instance Property "HiveCompatiblePartitions" DestinationOptionsProperty where
  type PropertyType "HiveCompatiblePartitions" DestinationOptionsProperty = Value Prelude.Bool
  set :: PropertyType "HiveCompatiblePartitions" DestinationOptionsProperty
-> DestinationOptionsProperty -> DestinationOptionsProperty
set PropertyType "HiveCompatiblePartitions" DestinationOptionsProperty
newValue DestinationOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: DestinationOptionsProperty -> ()
fileFormat :: DestinationOptionsProperty -> Value Text
hiveCompatiblePartitions :: DestinationOptionsProperty -> Value Bool
perHourPartition :: DestinationOptionsProperty -> Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
    = DestinationOptionsProperty
        {hiveCompatiblePartitions :: Value Bool
hiveCompatiblePartitions = PropertyType "HiveCompatiblePartitions" DestinationOptionsProperty
Value Bool
newValue, ()
Value Bool
Value Text
haddock_workaround_ :: ()
fileFormat :: Value Text
perHourPartition :: Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
perHourPartition :: Value Bool
..}
instance Property "PerHourPartition" DestinationOptionsProperty where
  type PropertyType "PerHourPartition" DestinationOptionsProperty = Value Prelude.Bool
  set :: PropertyType "PerHourPartition" DestinationOptionsProperty
-> DestinationOptionsProperty -> DestinationOptionsProperty
set PropertyType "PerHourPartition" DestinationOptionsProperty
newValue DestinationOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: DestinationOptionsProperty -> ()
fileFormat :: DestinationOptionsProperty -> Value Text
hiveCompatiblePartitions :: DestinationOptionsProperty -> Value Bool
perHourPartition :: DestinationOptionsProperty -> Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
perHourPartition :: Value Bool
..}
    = DestinationOptionsProperty {perHourPartition :: Value Bool
perHourPartition = PropertyType "PerHourPartition" DestinationOptionsProperty
Value Bool
newValue, ()
Value Bool
Value Text
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
haddock_workaround_ :: ()
fileFormat :: Value Text
hiveCompatiblePartitions :: Value Bool
..}