packages feed

stratosphere-cleanrooms-1.0.0: gen/Stratosphere/CleanRooms/ConfiguredTable/AthenaTableReferenceProperty.hs

module Stratosphere.CleanRooms.ConfiguredTable.AthenaTableReferenceProperty (
        AthenaTableReferenceProperty(..), mkAthenaTableReferenceProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AthenaTableReferenceProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-athenatablereference.html>
    AthenaTableReferenceProperty {haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-athenatablereference.html#cfn-cleanrooms-configuredtable-athenatablereference-databasename>
                                  databaseName :: (Value Prelude.Text),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-athenatablereference.html#cfn-cleanrooms-configuredtable-athenatablereference-outputlocation>
                                  outputLocation :: (Prelude.Maybe (Value Prelude.Text)),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-athenatablereference.html#cfn-cleanrooms-configuredtable-athenatablereference-tablename>
                                  tableName :: (Value Prelude.Text),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-athenatablereference.html#cfn-cleanrooms-configuredtable-athenatablereference-workgroup>
                                  workGroup :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkAthenaTableReferenceProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> AthenaTableReferenceProperty
mkAthenaTableReferenceProperty databaseName tableName workGroup
  = AthenaTableReferenceProperty
      {haddock_workaround_ = (), databaseName = databaseName,
       tableName = tableName, workGroup = workGroup,
       outputLocation = Prelude.Nothing}
instance ToResourceProperties AthenaTableReferenceProperty where
  toResourceProperties AthenaTableReferenceProperty {..}
    = ResourceProperties
        {awsType = "AWS::CleanRooms::ConfiguredTable.AthenaTableReference",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["DatabaseName" JSON..= databaseName,
                            "TableName" JSON..= tableName, "WorkGroup" JSON..= workGroup]
                           (Prelude.catMaybes
                              [(JSON..=) "OutputLocation" Prelude.<$> outputLocation]))}
instance JSON.ToJSON AthenaTableReferenceProperty where
  toJSON AthenaTableReferenceProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["DatabaseName" JSON..= databaseName,
               "TableName" JSON..= tableName, "WorkGroup" JSON..= workGroup]
              (Prelude.catMaybes
                 [(JSON..=) "OutputLocation" Prelude.<$> outputLocation])))
instance Property "DatabaseName" AthenaTableReferenceProperty where
  type PropertyType "DatabaseName" AthenaTableReferenceProperty = Value Prelude.Text
  set newValue AthenaTableReferenceProperty {..}
    = AthenaTableReferenceProperty {databaseName = newValue, ..}
instance Property "OutputLocation" AthenaTableReferenceProperty where
  type PropertyType "OutputLocation" AthenaTableReferenceProperty = Value Prelude.Text
  set newValue AthenaTableReferenceProperty {..}
    = AthenaTableReferenceProperty
        {outputLocation = Prelude.pure newValue, ..}
instance Property "TableName" AthenaTableReferenceProperty where
  type PropertyType "TableName" AthenaTableReferenceProperty = Value Prelude.Text
  set newValue AthenaTableReferenceProperty {..}
    = AthenaTableReferenceProperty {tableName = newValue, ..}
instance Property "WorkGroup" AthenaTableReferenceProperty where
  type PropertyType "WorkGroup" AthenaTableReferenceProperty = Value Prelude.Text
  set newValue AthenaTableReferenceProperty {..}
    = AthenaTableReferenceProperty {workGroup = newValue, ..}