module Stratosphere.KinesisAnalytics.ApplicationReferenceDataSource (
        module Exports, ApplicationReferenceDataSource(..),
        mkApplicationReferenceDataSource
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.KinesisAnalytics.ApplicationReferenceDataSource.ReferenceDataSourceProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ApplicationReferenceDataSource
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html>
    ApplicationReferenceDataSource {ApplicationReferenceDataSource -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-applicationname>
                                    ApplicationReferenceDataSource -> Value Text
applicationName :: (Value Prelude.Text),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource>
                                    ApplicationReferenceDataSource -> ReferenceDataSourceProperty
referenceDataSource :: ReferenceDataSourceProperty}
  deriving stock (ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> Bool
(ApplicationReferenceDataSource
 -> ApplicationReferenceDataSource -> Bool)
-> (ApplicationReferenceDataSource
    -> ApplicationReferenceDataSource -> Bool)
-> Eq ApplicationReferenceDataSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> Bool
== :: ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> Bool
$c/= :: ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> Bool
/= :: ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> Bool
Prelude.Eq, Int -> ApplicationReferenceDataSource -> ShowS
[ApplicationReferenceDataSource] -> ShowS
ApplicationReferenceDataSource -> String
(Int -> ApplicationReferenceDataSource -> ShowS)
-> (ApplicationReferenceDataSource -> String)
-> ([ApplicationReferenceDataSource] -> ShowS)
-> Show ApplicationReferenceDataSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ApplicationReferenceDataSource -> ShowS
showsPrec :: Int -> ApplicationReferenceDataSource -> ShowS
$cshow :: ApplicationReferenceDataSource -> String
show :: ApplicationReferenceDataSource -> String
$cshowList :: [ApplicationReferenceDataSource] -> ShowS
showList :: [ApplicationReferenceDataSource] -> ShowS
Prelude.Show)
mkApplicationReferenceDataSource ::
  Value Prelude.Text
  -> ReferenceDataSourceProperty -> ApplicationReferenceDataSource
mkApplicationReferenceDataSource :: Value Text
-> ReferenceDataSourceProperty -> ApplicationReferenceDataSource
mkApplicationReferenceDataSource
  Value Text
applicationName
  ReferenceDataSourceProperty
referenceDataSource
  = ApplicationReferenceDataSource
      {haddock_workaround_ :: ()
haddock_workaround_ = (), applicationName :: Value Text
applicationName = Value Text
applicationName,
       referenceDataSource :: ReferenceDataSourceProperty
referenceDataSource = ReferenceDataSourceProperty
referenceDataSource}
instance ToResourceProperties ApplicationReferenceDataSource where
  toResourceProperties :: ApplicationReferenceDataSource -> ResourceProperties
toResourceProperties ApplicationReferenceDataSource {()
Value Text
ReferenceDataSourceProperty
haddock_workaround_ :: ApplicationReferenceDataSource -> ()
applicationName :: ApplicationReferenceDataSource -> Value Text
referenceDataSource :: ApplicationReferenceDataSource -> ReferenceDataSourceProperty
haddock_workaround_ :: ()
applicationName :: Value Text
referenceDataSource :: ReferenceDataSourceProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::KinesisAnalytics::ApplicationReferenceDataSource",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ApplicationName" 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
applicationName,
                       Key
"ReferenceDataSource" Key -> ReferenceDataSourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ReferenceDataSourceProperty
referenceDataSource]}
instance JSON.ToJSON ApplicationReferenceDataSource where
  toJSON :: ApplicationReferenceDataSource -> Value
toJSON ApplicationReferenceDataSource {()
Value Text
ReferenceDataSourceProperty
haddock_workaround_ :: ApplicationReferenceDataSource -> ()
applicationName :: ApplicationReferenceDataSource -> Value Text
referenceDataSource :: ApplicationReferenceDataSource -> ReferenceDataSourceProperty
haddock_workaround_ :: ()
applicationName :: Value Text
referenceDataSource :: ReferenceDataSourceProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ApplicationName" 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
applicationName,
         Key
"ReferenceDataSource" Key -> ReferenceDataSourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ReferenceDataSourceProperty
referenceDataSource]
instance Property "ApplicationName" ApplicationReferenceDataSource where
  type PropertyType "ApplicationName" ApplicationReferenceDataSource = Value Prelude.Text
  set :: PropertyType "ApplicationName" ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> ApplicationReferenceDataSource
set PropertyType "ApplicationName" ApplicationReferenceDataSource
newValue ApplicationReferenceDataSource {()
Value Text
ReferenceDataSourceProperty
haddock_workaround_ :: ApplicationReferenceDataSource -> ()
applicationName :: ApplicationReferenceDataSource -> Value Text
referenceDataSource :: ApplicationReferenceDataSource -> ReferenceDataSourceProperty
haddock_workaround_ :: ()
applicationName :: Value Text
referenceDataSource :: ReferenceDataSourceProperty
..}
    = ApplicationReferenceDataSource {applicationName :: Value Text
applicationName = PropertyType "ApplicationName" ApplicationReferenceDataSource
Value Text
newValue, ()
ReferenceDataSourceProperty
haddock_workaround_ :: ()
referenceDataSource :: ReferenceDataSourceProperty
haddock_workaround_ :: ()
referenceDataSource :: ReferenceDataSourceProperty
..}
instance Property "ReferenceDataSource" ApplicationReferenceDataSource where
  type PropertyType "ReferenceDataSource" ApplicationReferenceDataSource = ReferenceDataSourceProperty
  set :: PropertyType "ReferenceDataSource" ApplicationReferenceDataSource
-> ApplicationReferenceDataSource -> ApplicationReferenceDataSource
set PropertyType "ReferenceDataSource" ApplicationReferenceDataSource
newValue ApplicationReferenceDataSource {()
Value Text
ReferenceDataSourceProperty
haddock_workaround_ :: ApplicationReferenceDataSource -> ()
applicationName :: ApplicationReferenceDataSource -> Value Text
referenceDataSource :: ApplicationReferenceDataSource -> ReferenceDataSourceProperty
haddock_workaround_ :: ()
applicationName :: Value Text
referenceDataSource :: ReferenceDataSourceProperty
..}
    = ApplicationReferenceDataSource
        {referenceDataSource :: ReferenceDataSourceProperty
referenceDataSource = PropertyType "ReferenceDataSource" ApplicationReferenceDataSource
ReferenceDataSourceProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
applicationName :: Value Text
haddock_workaround_ :: ()
applicationName :: Value Text
..}