module Stratosphere.CleanRooms.AnalysisTemplate.AnalysisSchemaProperty (
        AnalysisSchemaProperty(..), mkAnalysisSchemaProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AnalysisSchemaProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-analysistemplate-analysisschema.html>
    AnalysisSchemaProperty {AnalysisSchemaProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-analysistemplate-analysisschema.html#cfn-cleanrooms-analysistemplate-analysisschema-referencedtables>
                            AnalysisSchemaProperty -> ValueList Text
referencedTables :: (ValueList Prelude.Text)}
  deriving stock (AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool
(AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool)
-> (AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool)
-> Eq AnalysisSchemaProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool
== :: AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool
$c/= :: AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool
/= :: AnalysisSchemaProperty -> AnalysisSchemaProperty -> Bool
Prelude.Eq, Int -> AnalysisSchemaProperty -> ShowS
[AnalysisSchemaProperty] -> ShowS
AnalysisSchemaProperty -> String
(Int -> AnalysisSchemaProperty -> ShowS)
-> (AnalysisSchemaProperty -> String)
-> ([AnalysisSchemaProperty] -> ShowS)
-> Show AnalysisSchemaProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AnalysisSchemaProperty -> ShowS
showsPrec :: Int -> AnalysisSchemaProperty -> ShowS
$cshow :: AnalysisSchemaProperty -> String
show :: AnalysisSchemaProperty -> String
$cshowList :: [AnalysisSchemaProperty] -> ShowS
showList :: [AnalysisSchemaProperty] -> ShowS
Prelude.Show)
mkAnalysisSchemaProperty ::
  ValueList Prelude.Text -> AnalysisSchemaProperty
mkAnalysisSchemaProperty :: ValueList Text -> AnalysisSchemaProperty
mkAnalysisSchemaProperty ValueList Text
referencedTables
  = AnalysisSchemaProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), referencedTables :: ValueList Text
referencedTables = ValueList Text
referencedTables}
instance ToResourceProperties AnalysisSchemaProperty where
  toResourceProperties :: AnalysisSchemaProperty -> ResourceProperties
toResourceProperties AnalysisSchemaProperty {()
ValueList Text
haddock_workaround_ :: AnalysisSchemaProperty -> ()
referencedTables :: AnalysisSchemaProperty -> ValueList Text
haddock_workaround_ :: ()
referencedTables :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CleanRooms::AnalysisTemplate.AnalysisSchema",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ReferencedTables" 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..= ValueList Text
referencedTables]}
instance JSON.ToJSON AnalysisSchemaProperty where
  toJSON :: AnalysisSchemaProperty -> Value
toJSON AnalysisSchemaProperty {()
ValueList Text
haddock_workaround_ :: AnalysisSchemaProperty -> ()
referencedTables :: AnalysisSchemaProperty -> ValueList Text
haddock_workaround_ :: ()
referencedTables :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"ReferencedTables" 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..= ValueList Text
referencedTables]
instance Property "ReferencedTables" AnalysisSchemaProperty where
  type PropertyType "ReferencedTables" AnalysisSchemaProperty = ValueList Prelude.Text
  set :: PropertyType "ReferencedTables" AnalysisSchemaProperty
-> AnalysisSchemaProperty -> AnalysisSchemaProperty
set PropertyType "ReferencedTables" AnalysisSchemaProperty
newValue AnalysisSchemaProperty {()
ValueList Text
haddock_workaround_ :: AnalysisSchemaProperty -> ()
referencedTables :: AnalysisSchemaProperty -> ValueList Text
haddock_workaround_ :: ()
referencedTables :: ValueList Text
..}
    = AnalysisSchemaProperty {referencedTables :: ValueList Text
referencedTables = PropertyType "ReferencedTables" AnalysisSchemaProperty
ValueList Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}