packages feed

stratosphere-databrew-1.0.0: gen/Stratosphere/DataBrew/Job/DataCatalogOutputProperty.hs

module Stratosphere.DataBrew.Job.DataCatalogOutputProperty (
        module Exports, DataCatalogOutputProperty(..),
        mkDataCatalogOutputProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataBrew.Job.DatabaseTableOutputOptionsProperty as Exports
import {-# SOURCE #-} Stratosphere.DataBrew.Job.S3TableOutputOptionsProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DataCatalogOutputProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html>
    DataCatalogOutputProperty {haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-catalogid>
                               catalogId :: (Prelude.Maybe (Value Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databasename>
                               databaseName :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databaseoptions>
                               databaseOptions :: (Prelude.Maybe DatabaseTableOutputOptionsProperty),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-overwrite>
                               overwrite :: (Prelude.Maybe (Value Prelude.Bool)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-s3options>
                               s3Options :: (Prelude.Maybe S3TableOutputOptionsProperty),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-tablename>
                               tableName :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkDataCatalogOutputProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> DataCatalogOutputProperty
mkDataCatalogOutputProperty databaseName tableName
  = DataCatalogOutputProperty
      {haddock_workaround_ = (), databaseName = databaseName,
       tableName = tableName, catalogId = Prelude.Nothing,
       databaseOptions = Prelude.Nothing, overwrite = Prelude.Nothing,
       s3Options = Prelude.Nothing}
instance ToResourceProperties DataCatalogOutputProperty where
  toResourceProperties DataCatalogOutputProperty {..}
    = ResourceProperties
        {awsType = "AWS::DataBrew::Job.DataCatalogOutput",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["DatabaseName" JSON..= databaseName,
                            "TableName" JSON..= tableName]
                           (Prelude.catMaybes
                              [(JSON..=) "CatalogId" Prelude.<$> catalogId,
                               (JSON..=) "DatabaseOptions" Prelude.<$> databaseOptions,
                               (JSON..=) "Overwrite" Prelude.<$> overwrite,
                               (JSON..=) "S3Options" Prelude.<$> s3Options]))}
instance JSON.ToJSON DataCatalogOutputProperty where
  toJSON DataCatalogOutputProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["DatabaseName" JSON..= databaseName,
               "TableName" JSON..= tableName]
              (Prelude.catMaybes
                 [(JSON..=) "CatalogId" Prelude.<$> catalogId,
                  (JSON..=) "DatabaseOptions" Prelude.<$> databaseOptions,
                  (JSON..=) "Overwrite" Prelude.<$> overwrite,
                  (JSON..=) "S3Options" Prelude.<$> s3Options])))
instance Property "CatalogId" DataCatalogOutputProperty where
  type PropertyType "CatalogId" DataCatalogOutputProperty = Value Prelude.Text
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty {catalogId = Prelude.pure newValue, ..}
instance Property "DatabaseName" DataCatalogOutputProperty where
  type PropertyType "DatabaseName" DataCatalogOutputProperty = Value Prelude.Text
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty {databaseName = newValue, ..}
instance Property "DatabaseOptions" DataCatalogOutputProperty where
  type PropertyType "DatabaseOptions" DataCatalogOutputProperty = DatabaseTableOutputOptionsProperty
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty
        {databaseOptions = Prelude.pure newValue, ..}
instance Property "Overwrite" DataCatalogOutputProperty where
  type PropertyType "Overwrite" DataCatalogOutputProperty = Value Prelude.Bool
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty {overwrite = Prelude.pure newValue, ..}
instance Property "S3Options" DataCatalogOutputProperty where
  type PropertyType "S3Options" DataCatalogOutputProperty = S3TableOutputOptionsProperty
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty {s3Options = Prelude.pure newValue, ..}
instance Property "TableName" DataCatalogOutputProperty where
  type PropertyType "TableName" DataCatalogOutputProperty = Value Prelude.Text
  set newValue DataCatalogOutputProperty {..}
    = DataCatalogOutputProperty {tableName = newValue, ..}