amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/RedshiftDatasetDefinition.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.SageMaker.Types.RedshiftDatasetDefinition
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.RedshiftDatasetDefinition where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.RedshiftResultCompressionType
import Amazonka.SageMaker.Types.RedshiftResultFormat
-- | Configuration for Redshift Dataset Definition input.
--
-- /See:/ 'newRedshiftDatasetDefinition' smart constructor.
data RedshiftDatasetDefinition = RedshiftDatasetDefinition'
{ -- | The Amazon Web Services Key Management Service (Amazon Web Services KMS)
-- key that Amazon SageMaker uses to encrypt data from a Redshift
-- execution.
kmsKeyId :: Prelude.Maybe Prelude.Text,
outputCompression :: Prelude.Maybe RedshiftResultCompressionType,
clusterId :: Prelude.Text,
database :: Prelude.Text,
dbUser :: Prelude.Text,
queryString :: Prelude.Text,
-- | The IAM role attached to your Redshift cluster that Amazon SageMaker
-- uses to generate datasets.
clusterRoleArn :: Prelude.Text,
-- | The location in Amazon S3 where the Redshift query results are stored.
outputS3Uri :: Prelude.Text,
outputFormat :: RedshiftResultFormat
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'RedshiftDatasetDefinition' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'kmsKeyId', 'redshiftDatasetDefinition_kmsKeyId' - The Amazon Web Services Key Management Service (Amazon Web Services KMS)
-- key that Amazon SageMaker uses to encrypt data from a Redshift
-- execution.
--
-- 'outputCompression', 'redshiftDatasetDefinition_outputCompression' - Undocumented member.
--
-- 'clusterId', 'redshiftDatasetDefinition_clusterId' - Undocumented member.
--
-- 'database', 'redshiftDatasetDefinition_database' - Undocumented member.
--
-- 'dbUser', 'redshiftDatasetDefinition_dbUser' - Undocumented member.
--
-- 'queryString', 'redshiftDatasetDefinition_queryString' - Undocumented member.
--
-- 'clusterRoleArn', 'redshiftDatasetDefinition_clusterRoleArn' - The IAM role attached to your Redshift cluster that Amazon SageMaker
-- uses to generate datasets.
--
-- 'outputS3Uri', 'redshiftDatasetDefinition_outputS3Uri' - The location in Amazon S3 where the Redshift query results are stored.
--
-- 'outputFormat', 'redshiftDatasetDefinition_outputFormat' - Undocumented member.
newRedshiftDatasetDefinition ::
-- | 'clusterId'
Prelude.Text ->
-- | 'database'
Prelude.Text ->
-- | 'dbUser'
Prelude.Text ->
-- | 'queryString'
Prelude.Text ->
-- | 'clusterRoleArn'
Prelude.Text ->
-- | 'outputS3Uri'
Prelude.Text ->
-- | 'outputFormat'
RedshiftResultFormat ->
RedshiftDatasetDefinition
newRedshiftDatasetDefinition
pClusterId_
pDatabase_
pDbUser_
pQueryString_
pClusterRoleArn_
pOutputS3Uri_
pOutputFormat_ =
RedshiftDatasetDefinition'
{ kmsKeyId =
Prelude.Nothing,
outputCompression = Prelude.Nothing,
clusterId = pClusterId_,
database = pDatabase_,
dbUser = pDbUser_,
queryString = pQueryString_,
clusterRoleArn = pClusterRoleArn_,
outputS3Uri = pOutputS3Uri_,
outputFormat = pOutputFormat_
}
-- | The Amazon Web Services Key Management Service (Amazon Web Services KMS)
-- key that Amazon SageMaker uses to encrypt data from a Redshift
-- execution.
redshiftDatasetDefinition_kmsKeyId :: Lens.Lens' RedshiftDatasetDefinition (Prelude.Maybe Prelude.Text)
redshiftDatasetDefinition_kmsKeyId = Lens.lens (\RedshiftDatasetDefinition' {kmsKeyId} -> kmsKeyId) (\s@RedshiftDatasetDefinition' {} a -> s {kmsKeyId = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_outputCompression :: Lens.Lens' RedshiftDatasetDefinition (Prelude.Maybe RedshiftResultCompressionType)
redshiftDatasetDefinition_outputCompression = Lens.lens (\RedshiftDatasetDefinition' {outputCompression} -> outputCompression) (\s@RedshiftDatasetDefinition' {} a -> s {outputCompression = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_clusterId :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_clusterId = Lens.lens (\RedshiftDatasetDefinition' {clusterId} -> clusterId) (\s@RedshiftDatasetDefinition' {} a -> s {clusterId = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_database :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_database = Lens.lens (\RedshiftDatasetDefinition' {database} -> database) (\s@RedshiftDatasetDefinition' {} a -> s {database = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_dbUser :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_dbUser = Lens.lens (\RedshiftDatasetDefinition' {dbUser} -> dbUser) (\s@RedshiftDatasetDefinition' {} a -> s {dbUser = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_queryString :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_queryString = Lens.lens (\RedshiftDatasetDefinition' {queryString} -> queryString) (\s@RedshiftDatasetDefinition' {} a -> s {queryString = a} :: RedshiftDatasetDefinition)
-- | The IAM role attached to your Redshift cluster that Amazon SageMaker
-- uses to generate datasets.
redshiftDatasetDefinition_clusterRoleArn :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_clusterRoleArn = Lens.lens (\RedshiftDatasetDefinition' {clusterRoleArn} -> clusterRoleArn) (\s@RedshiftDatasetDefinition' {} a -> s {clusterRoleArn = a} :: RedshiftDatasetDefinition)
-- | The location in Amazon S3 where the Redshift query results are stored.
redshiftDatasetDefinition_outputS3Uri :: Lens.Lens' RedshiftDatasetDefinition Prelude.Text
redshiftDatasetDefinition_outputS3Uri = Lens.lens (\RedshiftDatasetDefinition' {outputS3Uri} -> outputS3Uri) (\s@RedshiftDatasetDefinition' {} a -> s {outputS3Uri = a} :: RedshiftDatasetDefinition)
-- | Undocumented member.
redshiftDatasetDefinition_outputFormat :: Lens.Lens' RedshiftDatasetDefinition RedshiftResultFormat
redshiftDatasetDefinition_outputFormat = Lens.lens (\RedshiftDatasetDefinition' {outputFormat} -> outputFormat) (\s@RedshiftDatasetDefinition' {} a -> s {outputFormat = a} :: RedshiftDatasetDefinition)
instance Data.FromJSON RedshiftDatasetDefinition where
parseJSON =
Data.withObject
"RedshiftDatasetDefinition"
( \x ->
RedshiftDatasetDefinition'
Prelude.<$> (x Data..:? "KmsKeyId")
Prelude.<*> (x Data..:? "OutputCompression")
Prelude.<*> (x Data..: "ClusterId")
Prelude.<*> (x Data..: "Database")
Prelude.<*> (x Data..: "DbUser")
Prelude.<*> (x Data..: "QueryString")
Prelude.<*> (x Data..: "ClusterRoleArn")
Prelude.<*> (x Data..: "OutputS3Uri")
Prelude.<*> (x Data..: "OutputFormat")
)
instance Prelude.Hashable RedshiftDatasetDefinition where
hashWithSalt _salt RedshiftDatasetDefinition' {..} =
_salt
`Prelude.hashWithSalt` kmsKeyId
`Prelude.hashWithSalt` outputCompression
`Prelude.hashWithSalt` clusterId
`Prelude.hashWithSalt` database
`Prelude.hashWithSalt` dbUser
`Prelude.hashWithSalt` queryString
`Prelude.hashWithSalt` clusterRoleArn
`Prelude.hashWithSalt` outputS3Uri
`Prelude.hashWithSalt` outputFormat
instance Prelude.NFData RedshiftDatasetDefinition where
rnf RedshiftDatasetDefinition' {..} =
Prelude.rnf kmsKeyId
`Prelude.seq` Prelude.rnf outputCompression
`Prelude.seq` Prelude.rnf clusterId
`Prelude.seq` Prelude.rnf database
`Prelude.seq` Prelude.rnf dbUser
`Prelude.seq` Prelude.rnf queryString
`Prelude.seq` Prelude.rnf clusterRoleArn
`Prelude.seq` Prelude.rnf outputS3Uri
`Prelude.seq` Prelude.rnf outputFormat
instance Data.ToJSON RedshiftDatasetDefinition where
toJSON RedshiftDatasetDefinition' {..} =
Data.object
( Prelude.catMaybes
[ ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,
("OutputCompression" Data..=)
Prelude.<$> outputCompression,
Prelude.Just ("ClusterId" Data..= clusterId),
Prelude.Just ("Database" Data..= database),
Prelude.Just ("DbUser" Data..= dbUser),
Prelude.Just ("QueryString" Data..= queryString),
Prelude.Just
("ClusterRoleArn" Data..= clusterRoleArn),
Prelude.Just ("OutputS3Uri" Data..= outputS3Uri),
Prelude.Just ("OutputFormat" Data..= outputFormat)
]
)