module Stratosphere.DataZone.DataSource.RedshiftRunConfigurationInputProperty ( module Exports, RedshiftRunConfigurationInputProperty(..), mkRedshiftRunConfigurationInputProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.DataZone.DataSource.RedshiftCredentialConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.DataZone.DataSource.RedshiftStorageProperty as Exports import {-# SOURCE #-} Stratosphere.DataZone.DataSource.RelationalFilterConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data RedshiftRunConfigurationInputProperty = -- | See: RedshiftRunConfigurationInputProperty {haddock_workaround_ :: (), -- | See: dataAccessRole :: (Prelude.Maybe (Value Prelude.Text)), -- | See: redshiftCredentialConfiguration :: (Prelude.Maybe RedshiftCredentialConfigurationProperty), -- | See: redshiftStorage :: (Prelude.Maybe RedshiftStorageProperty), -- | See: relationalFilterConfigurations :: [RelationalFilterConfigurationProperty]} deriving stock (Prelude.Eq, Prelude.Show) mkRedshiftRunConfigurationInputProperty :: [RelationalFilterConfigurationProperty] -> RedshiftRunConfigurationInputProperty mkRedshiftRunConfigurationInputProperty relationalFilterConfigurations = RedshiftRunConfigurationInputProperty {haddock_workaround_ = (), relationalFilterConfigurations = relationalFilterConfigurations, dataAccessRole = Prelude.Nothing, redshiftCredentialConfiguration = Prelude.Nothing, redshiftStorage = Prelude.Nothing} instance ToResourceProperties RedshiftRunConfigurationInputProperty where toResourceProperties RedshiftRunConfigurationInputProperty {..} = ResourceProperties {awsType = "AWS::DataZone::DataSource.RedshiftRunConfigurationInput", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["RelationalFilterConfigurations" JSON..= relationalFilterConfigurations] (Prelude.catMaybes [(JSON..=) "DataAccessRole" Prelude.<$> dataAccessRole, (JSON..=) "RedshiftCredentialConfiguration" Prelude.<$> redshiftCredentialConfiguration, (JSON..=) "RedshiftStorage" Prelude.<$> redshiftStorage]))} instance JSON.ToJSON RedshiftRunConfigurationInputProperty where toJSON RedshiftRunConfigurationInputProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["RelationalFilterConfigurations" JSON..= relationalFilterConfigurations] (Prelude.catMaybes [(JSON..=) "DataAccessRole" Prelude.<$> dataAccessRole, (JSON..=) "RedshiftCredentialConfiguration" Prelude.<$> redshiftCredentialConfiguration, (JSON..=) "RedshiftStorage" Prelude.<$> redshiftStorage]))) instance Property "DataAccessRole" RedshiftRunConfigurationInputProperty where type PropertyType "DataAccessRole" RedshiftRunConfigurationInputProperty = Value Prelude.Text set newValue RedshiftRunConfigurationInputProperty {..} = RedshiftRunConfigurationInputProperty {dataAccessRole = Prelude.pure newValue, ..} instance Property "RedshiftCredentialConfiguration" RedshiftRunConfigurationInputProperty where type PropertyType "RedshiftCredentialConfiguration" RedshiftRunConfigurationInputProperty = RedshiftCredentialConfigurationProperty set newValue RedshiftRunConfigurationInputProperty {..} = RedshiftRunConfigurationInputProperty {redshiftCredentialConfiguration = Prelude.pure newValue, ..} instance Property "RedshiftStorage" RedshiftRunConfigurationInputProperty where type PropertyType "RedshiftStorage" RedshiftRunConfigurationInputProperty = RedshiftStorageProperty set newValue RedshiftRunConfigurationInputProperty {..} = RedshiftRunConfigurationInputProperty {redshiftStorage = Prelude.pure newValue, ..} instance Property "RelationalFilterConfigurations" RedshiftRunConfigurationInputProperty where type PropertyType "RelationalFilterConfigurations" RedshiftRunConfigurationInputProperty = [RelationalFilterConfigurationProperty] set newValue RedshiftRunConfigurationInputProperty {..} = RedshiftRunConfigurationInputProperty {relationalFilterConfigurations = newValue, ..}