module Stratosphere.CleanRooms.ConfiguredTable.TableReferenceProperty ( module Exports, TableReferenceProperty(..), mkTableReferenceProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.CleanRooms.ConfiguredTable.AthenaTableReferenceProperty as Exports import {-# SOURCE #-} Stratosphere.CleanRooms.ConfiguredTable.GlueTableReferenceProperty as Exports import {-# SOURCE #-} Stratosphere.CleanRooms.ConfiguredTable.SnowflakeTableReferenceProperty as Exports import Stratosphere.ResourceProperties data TableReferenceProperty = -- | See: TableReferenceProperty {haddock_workaround_ :: (), -- | See: athena :: (Prelude.Maybe AthenaTableReferenceProperty), -- | See: glue :: (Prelude.Maybe GlueTableReferenceProperty), -- | See: snowflake :: (Prelude.Maybe SnowflakeTableReferenceProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkTableReferenceProperty :: TableReferenceProperty mkTableReferenceProperty = TableReferenceProperty {haddock_workaround_ = (), athena = Prelude.Nothing, glue = Prelude.Nothing, snowflake = Prelude.Nothing} instance ToResourceProperties TableReferenceProperty where toResourceProperties TableReferenceProperty {..} = ResourceProperties {awsType = "AWS::CleanRooms::ConfiguredTable.TableReference", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "Athena" Prelude.<$> athena, (JSON..=) "Glue" Prelude.<$> glue, (JSON..=) "Snowflake" Prelude.<$> snowflake])} instance JSON.ToJSON TableReferenceProperty where toJSON TableReferenceProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "Athena" Prelude.<$> athena, (JSON..=) "Glue" Prelude.<$> glue, (JSON..=) "Snowflake" Prelude.<$> snowflake])) instance Property "Athena" TableReferenceProperty where type PropertyType "Athena" TableReferenceProperty = AthenaTableReferenceProperty set newValue TableReferenceProperty {..} = TableReferenceProperty {athena = Prelude.pure newValue, ..} instance Property "Glue" TableReferenceProperty where type PropertyType "Glue" TableReferenceProperty = GlueTableReferenceProperty set newValue TableReferenceProperty {..} = TableReferenceProperty {glue = Prelude.pure newValue, ..} instance Property "Snowflake" TableReferenceProperty where type PropertyType "Snowflake" TableReferenceProperty = SnowflakeTableReferenceProperty set newValue TableReferenceProperty {..} = TableReferenceProperty {snowflake = Prelude.pure newValue, ..}