module Stratosphere.DataBrew.Dataset.FormatOptionsProperty ( module Exports, FormatOptionsProperty(..), mkFormatOptionsProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.CsvOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.ExcelOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.DataBrew.Dataset.JsonOptionsProperty as Exports import Stratosphere.ResourceProperties data FormatOptionsProperty = -- | See: FormatOptionsProperty {haddock_workaround_ :: (), -- | See: csv :: (Prelude.Maybe CsvOptionsProperty), -- | See: excel :: (Prelude.Maybe ExcelOptionsProperty), -- | See: json :: (Prelude.Maybe JsonOptionsProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkFormatOptionsProperty :: FormatOptionsProperty mkFormatOptionsProperty = FormatOptionsProperty {haddock_workaround_ = (), csv = Prelude.Nothing, excel = Prelude.Nothing, json = Prelude.Nothing} instance ToResourceProperties FormatOptionsProperty where toResourceProperties FormatOptionsProperty {..} = ResourceProperties {awsType = "AWS::DataBrew::Dataset.FormatOptions", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "Csv" Prelude.<$> csv, (JSON..=) "Excel" Prelude.<$> excel, (JSON..=) "Json" Prelude.<$> json])} instance JSON.ToJSON FormatOptionsProperty where toJSON FormatOptionsProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "Csv" Prelude.<$> csv, (JSON..=) "Excel" Prelude.<$> excel, (JSON..=) "Json" Prelude.<$> json])) instance Property "Csv" FormatOptionsProperty where type PropertyType "Csv" FormatOptionsProperty = CsvOptionsProperty set newValue FormatOptionsProperty {..} = FormatOptionsProperty {csv = Prelude.pure newValue, ..} instance Property "Excel" FormatOptionsProperty where type PropertyType "Excel" FormatOptionsProperty = ExcelOptionsProperty set newValue FormatOptionsProperty {..} = FormatOptionsProperty {excel = Prelude.pure newValue, ..} instance Property "Json" FormatOptionsProperty where type PropertyType "Json" FormatOptionsProperty = JsonOptionsProperty set newValue FormatOptionsProperty {..} = FormatOptionsProperty {json = Prelude.pure newValue, ..}