amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/CaptureContentTypeHeader.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.CaptureContentTypeHeader
-- 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.CaptureContentTypeHeader 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
-- | Configuration specifying how to treat different headers. If no headers
-- are specified SageMaker will by default base64 encode when capturing the
-- data.
--
-- /See:/ 'newCaptureContentTypeHeader' smart constructor.
data CaptureContentTypeHeader = CaptureContentTypeHeader'
{ -- | The list of all content type headers that SageMaker will treat as CSV
-- and capture accordingly.
csvContentTypes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
-- | The list of all content type headers that SageMaker will treat as JSON
-- and capture accordingly.
jsonContentTypes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CaptureContentTypeHeader' 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:
--
-- 'csvContentTypes', 'captureContentTypeHeader_csvContentTypes' - The list of all content type headers that SageMaker will treat as CSV
-- and capture accordingly.
--
-- 'jsonContentTypes', 'captureContentTypeHeader_jsonContentTypes' - The list of all content type headers that SageMaker will treat as JSON
-- and capture accordingly.
newCaptureContentTypeHeader ::
CaptureContentTypeHeader
newCaptureContentTypeHeader =
CaptureContentTypeHeader'
{ csvContentTypes =
Prelude.Nothing,
jsonContentTypes = Prelude.Nothing
}
-- | The list of all content type headers that SageMaker will treat as CSV
-- and capture accordingly.
captureContentTypeHeader_csvContentTypes :: Lens.Lens' CaptureContentTypeHeader (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
captureContentTypeHeader_csvContentTypes = Lens.lens (\CaptureContentTypeHeader' {csvContentTypes} -> csvContentTypes) (\s@CaptureContentTypeHeader' {} a -> s {csvContentTypes = a} :: CaptureContentTypeHeader) Prelude.. Lens.mapping Lens.coerced
-- | The list of all content type headers that SageMaker will treat as JSON
-- and capture accordingly.
captureContentTypeHeader_jsonContentTypes :: Lens.Lens' CaptureContentTypeHeader (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
captureContentTypeHeader_jsonContentTypes = Lens.lens (\CaptureContentTypeHeader' {jsonContentTypes} -> jsonContentTypes) (\s@CaptureContentTypeHeader' {} a -> s {jsonContentTypes = a} :: CaptureContentTypeHeader) Prelude.. Lens.mapping Lens.coerced
instance Data.FromJSON CaptureContentTypeHeader where
parseJSON =
Data.withObject
"CaptureContentTypeHeader"
( \x ->
CaptureContentTypeHeader'
Prelude.<$> (x Data..:? "CsvContentTypes")
Prelude.<*> (x Data..:? "JsonContentTypes")
)
instance Prelude.Hashable CaptureContentTypeHeader where
hashWithSalt _salt CaptureContentTypeHeader' {..} =
_salt
`Prelude.hashWithSalt` csvContentTypes
`Prelude.hashWithSalt` jsonContentTypes
instance Prelude.NFData CaptureContentTypeHeader where
rnf CaptureContentTypeHeader' {..} =
Prelude.rnf csvContentTypes
`Prelude.seq` Prelude.rnf jsonContentTypes
instance Data.ToJSON CaptureContentTypeHeader where
toJSON CaptureContentTypeHeader' {..} =
Data.object
( Prelude.catMaybes
[ ("CsvContentTypes" Data..=)
Prelude.<$> csvContentTypes,
("JsonContentTypes" Data..=)
Prelude.<$> jsonContentTypes
]
)