module Stratosphere.Evidently.Project.DataDeliveryObjectProperty (
        module Exports, DataDeliveryObjectProperty(..),
        mkDataDeliveryObjectProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Evidently.Project.S3DestinationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DataDeliveryObjectProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html>
    DataDeliveryObjectProperty {DataDeliveryObjectProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html#cfn-evidently-project-datadeliveryobject-loggroup>
                                DataDeliveryObjectProperty -> Maybe (Value Text)
logGroup :: (Prelude.Maybe (Value Prelude.Text)),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html#cfn-evidently-project-datadeliveryobject-s3>
                                DataDeliveryObjectProperty -> Maybe S3DestinationProperty
s3 :: (Prelude.Maybe S3DestinationProperty)}
  deriving stock (DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool
(DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool)
-> (DataDeliveryObjectProperty
    -> DataDeliveryObjectProperty -> Bool)
-> Eq DataDeliveryObjectProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool
== :: DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool
$c/= :: DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool
/= :: DataDeliveryObjectProperty -> DataDeliveryObjectProperty -> Bool
Prelude.Eq, Int -> DataDeliveryObjectProperty -> ShowS
[DataDeliveryObjectProperty] -> ShowS
DataDeliveryObjectProperty -> String
(Int -> DataDeliveryObjectProperty -> ShowS)
-> (DataDeliveryObjectProperty -> String)
-> ([DataDeliveryObjectProperty] -> ShowS)
-> Show DataDeliveryObjectProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DataDeliveryObjectProperty -> ShowS
showsPrec :: Int -> DataDeliveryObjectProperty -> ShowS
$cshow :: DataDeliveryObjectProperty -> String
show :: DataDeliveryObjectProperty -> String
$cshowList :: [DataDeliveryObjectProperty] -> ShowS
showList :: [DataDeliveryObjectProperty] -> ShowS
Prelude.Show)
mkDataDeliveryObjectProperty :: DataDeliveryObjectProperty
mkDataDeliveryObjectProperty :: DataDeliveryObjectProperty
mkDataDeliveryObjectProperty
  = DataDeliveryObjectProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), logGroup :: Maybe (Value Text)
logGroup = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       s3 :: Maybe S3DestinationProperty
s3 = Maybe S3DestinationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties DataDeliveryObjectProperty where
  toResourceProperties :: DataDeliveryObjectProperty -> ResourceProperties
toResourceProperties DataDeliveryObjectProperty {Maybe (Value Text)
Maybe S3DestinationProperty
()
haddock_workaround_ :: DataDeliveryObjectProperty -> ()
logGroup :: DataDeliveryObjectProperty -> Maybe (Value Text)
s3 :: DataDeliveryObjectProperty -> Maybe S3DestinationProperty
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
s3 :: Maybe S3DestinationProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Evidently::Project.DataDeliveryObject",
         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
"LogGroup" (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)
logGroup,
                            Key -> S3DestinationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"S3" (S3DestinationProperty -> (Key, Value))
-> Maybe S3DestinationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3DestinationProperty
s3])}
instance JSON.ToJSON DataDeliveryObjectProperty where
  toJSON :: DataDeliveryObjectProperty -> Value
toJSON DataDeliveryObjectProperty {Maybe (Value Text)
Maybe S3DestinationProperty
()
haddock_workaround_ :: DataDeliveryObjectProperty -> ()
logGroup :: DataDeliveryObjectProperty -> Maybe (Value Text)
s3 :: DataDeliveryObjectProperty -> Maybe S3DestinationProperty
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
s3 :: Maybe S3DestinationProperty
..}
    = [(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
"LogGroup" (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)
logGroup,
               Key -> S3DestinationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"S3" (S3DestinationProperty -> (Key, Value))
-> Maybe S3DestinationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3DestinationProperty
s3]))
instance Property "LogGroup" DataDeliveryObjectProperty where
  type PropertyType "LogGroup" DataDeliveryObjectProperty = Value Prelude.Text
  set :: PropertyType "LogGroup" DataDeliveryObjectProperty
-> DataDeliveryObjectProperty -> DataDeliveryObjectProperty
set PropertyType "LogGroup" DataDeliveryObjectProperty
newValue DataDeliveryObjectProperty {Maybe (Value Text)
Maybe S3DestinationProperty
()
haddock_workaround_ :: DataDeliveryObjectProperty -> ()
logGroup :: DataDeliveryObjectProperty -> Maybe (Value Text)
s3 :: DataDeliveryObjectProperty -> Maybe S3DestinationProperty
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
s3 :: Maybe S3DestinationProperty
..}
    = DataDeliveryObjectProperty {logGroup :: Maybe (Value Text)
logGroup = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "LogGroup" DataDeliveryObjectProperty
Value Text
newValue, Maybe S3DestinationProperty
()
haddock_workaround_ :: ()
s3 :: Maybe S3DestinationProperty
haddock_workaround_ :: ()
s3 :: Maybe S3DestinationProperty
..}
instance Property "S3" DataDeliveryObjectProperty where
  type PropertyType "S3" DataDeliveryObjectProperty = S3DestinationProperty
  set :: PropertyType "S3" DataDeliveryObjectProperty
-> DataDeliveryObjectProperty -> DataDeliveryObjectProperty
set PropertyType "S3" DataDeliveryObjectProperty
newValue DataDeliveryObjectProperty {Maybe (Value Text)
Maybe S3DestinationProperty
()
haddock_workaround_ :: DataDeliveryObjectProperty -> ()
logGroup :: DataDeliveryObjectProperty -> Maybe (Value Text)
s3 :: DataDeliveryObjectProperty -> Maybe S3DestinationProperty
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
s3 :: Maybe S3DestinationProperty
..}
    = DataDeliveryObjectProperty {s3 :: Maybe S3DestinationProperty
s3 = S3DestinationProperty -> Maybe S3DestinationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "S3" DataDeliveryObjectProperty
S3DestinationProperty
newValue, Maybe (Value Text)
()
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
haddock_workaround_ :: ()
logGroup :: Maybe (Value Text)
..}