{-# 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 or 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) ] )