{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.IoTAnalytics.UpdateDataset
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the settings of a dataset.
module Amazonka.IoTAnalytics.UpdateDataset
  ( -- * Creating a Request
    UpdateDataset (..),
    newUpdateDataset,

    -- * Request Lenses
    updateDataset_contentDeliveryRules,
    updateDataset_lateDataRules,
    updateDataset_retentionPeriod,
    updateDataset_triggers,
    updateDataset_versioningConfiguration,
    updateDataset_datasetName,
    updateDataset_actions,

    -- * Destructuring the Response
    UpdateDatasetResponse (..),
    newUpdateDatasetResponse,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTAnalytics.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateDataset' smart constructor.
data UpdateDataset = UpdateDataset'
  { -- | When dataset contents are created, they are delivered to destinations
    -- specified here.
    UpdateDataset -> Maybe [DatasetContentDeliveryRule]
contentDeliveryRules :: Prelude.Maybe [DatasetContentDeliveryRule],
    -- | A list of data rules that send notifications to CloudWatch, when data
    -- arrives late. To specify @lateDataRules@, the dataset must use a
    -- <https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html DeltaTimer>
    -- filter.
    UpdateDataset -> Maybe (NonEmpty LateDataRule)
lateDataRules :: Prelude.Maybe (Prelude.NonEmpty LateDataRule),
    -- | How long, in days, dataset contents are kept for the dataset.
    UpdateDataset -> Maybe RetentionPeriod
retentionPeriod :: Prelude.Maybe RetentionPeriod,
    -- | A list of @DatasetTrigger@ objects. The list can be empty or can contain
    -- up to five @DatasetTrigger@ objects.
    UpdateDataset -> Maybe [DatasetTrigger]
triggers :: Prelude.Maybe [DatasetTrigger],
    -- | Optional. How many versions of dataset contents are kept. If not
    -- specified or set to null, only the latest version plus the latest
    -- succeeded version (if they are different) are kept for the time period
    -- specified by the @retentionPeriod@ parameter. For more information, see
    -- <https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions Keeping Multiple Versions of IoT Analytics datasets>
    -- in the /IoT Analytics User Guide/.
    UpdateDataset -> Maybe VersioningConfiguration
versioningConfiguration :: Prelude.Maybe VersioningConfiguration,
    -- | The name of the dataset to update.
    UpdateDataset -> Text
datasetName :: Prelude.Text,
    -- | A list of @DatasetAction@ objects.
    UpdateDataset -> NonEmpty DatasetAction
actions :: Prelude.NonEmpty DatasetAction
  }
  deriving (UpdateDataset -> UpdateDataset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDataset -> UpdateDataset -> Bool
$c/= :: UpdateDataset -> UpdateDataset -> Bool
== :: UpdateDataset -> UpdateDataset -> Bool
$c== :: UpdateDataset -> UpdateDataset -> Bool
Prelude.Eq, ReadPrec [UpdateDataset]
ReadPrec UpdateDataset
Int -> ReadS UpdateDataset
ReadS [UpdateDataset]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDataset]
$creadListPrec :: ReadPrec [UpdateDataset]
readPrec :: ReadPrec UpdateDataset
$creadPrec :: ReadPrec UpdateDataset
readList :: ReadS [UpdateDataset]
$creadList :: ReadS [UpdateDataset]
readsPrec :: Int -> ReadS UpdateDataset
$creadsPrec :: Int -> ReadS UpdateDataset
Prelude.Read, Int -> UpdateDataset -> ShowS
[UpdateDataset] -> ShowS
UpdateDataset -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDataset] -> ShowS
$cshowList :: [UpdateDataset] -> ShowS
show :: UpdateDataset -> String
$cshow :: UpdateDataset -> String
showsPrec :: Int -> UpdateDataset -> ShowS
$cshowsPrec :: Int -> UpdateDataset -> ShowS
Prelude.Show, forall x. Rep UpdateDataset x -> UpdateDataset
forall x. UpdateDataset -> Rep UpdateDataset x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDataset x -> UpdateDataset
$cfrom :: forall x. UpdateDataset -> Rep UpdateDataset x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDataset' 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:
--
-- 'contentDeliveryRules', 'updateDataset_contentDeliveryRules' - When dataset contents are created, they are delivered to destinations
-- specified here.
--
-- 'lateDataRules', 'updateDataset_lateDataRules' - A list of data rules that send notifications to CloudWatch, when data
-- arrives late. To specify @lateDataRules@, the dataset must use a
-- <https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html DeltaTimer>
-- filter.
--
-- 'retentionPeriod', 'updateDataset_retentionPeriod' - How long, in days, dataset contents are kept for the dataset.
--
-- 'triggers', 'updateDataset_triggers' - A list of @DatasetTrigger@ objects. The list can be empty or can contain
-- up to five @DatasetTrigger@ objects.
--
-- 'versioningConfiguration', 'updateDataset_versioningConfiguration' - Optional. How many versions of dataset contents are kept. If not
-- specified or set to null, only the latest version plus the latest
-- succeeded version (if they are different) are kept for the time period
-- specified by the @retentionPeriod@ parameter. For more information, see
-- <https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions Keeping Multiple Versions of IoT Analytics datasets>
-- in the /IoT Analytics User Guide/.
--
-- 'datasetName', 'updateDataset_datasetName' - The name of the dataset to update.
--
-- 'actions', 'updateDataset_actions' - A list of @DatasetAction@ objects.
newUpdateDataset ::
  -- | 'datasetName'
  Prelude.Text ->
  -- | 'actions'
  Prelude.NonEmpty DatasetAction ->
  UpdateDataset
newUpdateDataset :: Text -> NonEmpty DatasetAction -> UpdateDataset
newUpdateDataset Text
pDatasetName_ NonEmpty DatasetAction
pActions_ =
  UpdateDataset'
    { $sel:contentDeliveryRules:UpdateDataset' :: Maybe [DatasetContentDeliveryRule]
contentDeliveryRules =
        forall a. Maybe a
Prelude.Nothing,
      $sel:lateDataRules:UpdateDataset' :: Maybe (NonEmpty LateDataRule)
lateDataRules = forall a. Maybe a
Prelude.Nothing,
      $sel:retentionPeriod:UpdateDataset' :: Maybe RetentionPeriod
retentionPeriod = forall a. Maybe a
Prelude.Nothing,
      $sel:triggers:UpdateDataset' :: Maybe [DatasetTrigger]
triggers = forall a. Maybe a
Prelude.Nothing,
      $sel:versioningConfiguration:UpdateDataset' :: Maybe VersioningConfiguration
versioningConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetName:UpdateDataset' :: Text
datasetName = Text
pDatasetName_,
      $sel:actions:UpdateDataset' :: NonEmpty DatasetAction
actions = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty DatasetAction
pActions_
    }

-- | When dataset contents are created, they are delivered to destinations
-- specified here.
updateDataset_contentDeliveryRules :: Lens.Lens' UpdateDataset (Prelude.Maybe [DatasetContentDeliveryRule])
updateDataset_contentDeliveryRules :: Lens' UpdateDataset (Maybe [DatasetContentDeliveryRule])
updateDataset_contentDeliveryRules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Maybe [DatasetContentDeliveryRule]
contentDeliveryRules :: Maybe [DatasetContentDeliveryRule]
$sel:contentDeliveryRules:UpdateDataset' :: UpdateDataset -> Maybe [DatasetContentDeliveryRule]
contentDeliveryRules} -> Maybe [DatasetContentDeliveryRule]
contentDeliveryRules) (\s :: UpdateDataset
s@UpdateDataset' {} Maybe [DatasetContentDeliveryRule]
a -> UpdateDataset
s {$sel:contentDeliveryRules:UpdateDataset' :: Maybe [DatasetContentDeliveryRule]
contentDeliveryRules = Maybe [DatasetContentDeliveryRule]
a} :: UpdateDataset) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of data rules that send notifications to CloudWatch, when data
-- arrives late. To specify @lateDataRules@, the dataset must use a
-- <https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html DeltaTimer>
-- filter.
updateDataset_lateDataRules :: Lens.Lens' UpdateDataset (Prelude.Maybe (Prelude.NonEmpty LateDataRule))
updateDataset_lateDataRules :: Lens' UpdateDataset (Maybe (NonEmpty LateDataRule))
updateDataset_lateDataRules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Maybe (NonEmpty LateDataRule)
lateDataRules :: Maybe (NonEmpty LateDataRule)
$sel:lateDataRules:UpdateDataset' :: UpdateDataset -> Maybe (NonEmpty LateDataRule)
lateDataRules} -> Maybe (NonEmpty LateDataRule)
lateDataRules) (\s :: UpdateDataset
s@UpdateDataset' {} Maybe (NonEmpty LateDataRule)
a -> UpdateDataset
s {$sel:lateDataRules:UpdateDataset' :: Maybe (NonEmpty LateDataRule)
lateDataRules = Maybe (NonEmpty LateDataRule)
a} :: UpdateDataset) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | How long, in days, dataset contents are kept for the dataset.
updateDataset_retentionPeriod :: Lens.Lens' UpdateDataset (Prelude.Maybe RetentionPeriod)
updateDataset_retentionPeriod :: Lens' UpdateDataset (Maybe RetentionPeriod)
updateDataset_retentionPeriod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Maybe RetentionPeriod
retentionPeriod :: Maybe RetentionPeriod
$sel:retentionPeriod:UpdateDataset' :: UpdateDataset -> Maybe RetentionPeriod
retentionPeriod} -> Maybe RetentionPeriod
retentionPeriod) (\s :: UpdateDataset
s@UpdateDataset' {} Maybe RetentionPeriod
a -> UpdateDataset
s {$sel:retentionPeriod:UpdateDataset' :: Maybe RetentionPeriod
retentionPeriod = Maybe RetentionPeriod
a} :: UpdateDataset)

-- | A list of @DatasetTrigger@ objects. The list can be empty or can contain
-- up to five @DatasetTrigger@ objects.
updateDataset_triggers :: Lens.Lens' UpdateDataset (Prelude.Maybe [DatasetTrigger])
updateDataset_triggers :: Lens' UpdateDataset (Maybe [DatasetTrigger])
updateDataset_triggers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Maybe [DatasetTrigger]
triggers :: Maybe [DatasetTrigger]
$sel:triggers:UpdateDataset' :: UpdateDataset -> Maybe [DatasetTrigger]
triggers} -> Maybe [DatasetTrigger]
triggers) (\s :: UpdateDataset
s@UpdateDataset' {} Maybe [DatasetTrigger]
a -> UpdateDataset
s {$sel:triggers:UpdateDataset' :: Maybe [DatasetTrigger]
triggers = Maybe [DatasetTrigger]
a} :: UpdateDataset) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Optional. How many versions of dataset contents are kept. If not
-- specified or set to null, only the latest version plus the latest
-- succeeded version (if they are different) are kept for the time period
-- specified by the @retentionPeriod@ parameter. For more information, see
-- <https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions Keeping Multiple Versions of IoT Analytics datasets>
-- in the /IoT Analytics User Guide/.
updateDataset_versioningConfiguration :: Lens.Lens' UpdateDataset (Prelude.Maybe VersioningConfiguration)
updateDataset_versioningConfiguration :: Lens' UpdateDataset (Maybe VersioningConfiguration)
updateDataset_versioningConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Maybe VersioningConfiguration
versioningConfiguration :: Maybe VersioningConfiguration
$sel:versioningConfiguration:UpdateDataset' :: UpdateDataset -> Maybe VersioningConfiguration
versioningConfiguration} -> Maybe VersioningConfiguration
versioningConfiguration) (\s :: UpdateDataset
s@UpdateDataset' {} Maybe VersioningConfiguration
a -> UpdateDataset
s {$sel:versioningConfiguration:UpdateDataset' :: Maybe VersioningConfiguration
versioningConfiguration = Maybe VersioningConfiguration
a} :: UpdateDataset)

-- | The name of the dataset to update.
updateDataset_datasetName :: Lens.Lens' UpdateDataset Prelude.Text
updateDataset_datasetName :: Lens' UpdateDataset Text
updateDataset_datasetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {Text
datasetName :: Text
$sel:datasetName:UpdateDataset' :: UpdateDataset -> Text
datasetName} -> Text
datasetName) (\s :: UpdateDataset
s@UpdateDataset' {} Text
a -> UpdateDataset
s {$sel:datasetName:UpdateDataset' :: Text
datasetName = Text
a} :: UpdateDataset)

-- | A list of @DatasetAction@ objects.
updateDataset_actions :: Lens.Lens' UpdateDataset (Prelude.NonEmpty DatasetAction)
updateDataset_actions :: Lens' UpdateDataset (NonEmpty DatasetAction)
updateDataset_actions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataset' {NonEmpty DatasetAction
actions :: NonEmpty DatasetAction
$sel:actions:UpdateDataset' :: UpdateDataset -> NonEmpty DatasetAction
actions} -> NonEmpty DatasetAction
actions) (\s :: UpdateDataset
s@UpdateDataset' {} NonEmpty DatasetAction
a -> UpdateDataset
s {$sel:actions:UpdateDataset' :: NonEmpty DatasetAction
actions = NonEmpty DatasetAction
a} :: UpdateDataset) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest UpdateDataset where
  type
    AWSResponse UpdateDataset =
      UpdateDatasetResponse
  request :: (Service -> Service) -> UpdateDataset -> Request UpdateDataset
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateDataset
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateDataset)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull UpdateDatasetResponse
UpdateDatasetResponse'

instance Prelude.Hashable UpdateDataset where
  hashWithSalt :: Int -> UpdateDataset -> Int
hashWithSalt Int
_salt UpdateDataset' {Maybe [DatasetContentDeliveryRule]
Maybe [DatasetTrigger]
Maybe (NonEmpty LateDataRule)
Maybe RetentionPeriod
Maybe VersioningConfiguration
NonEmpty DatasetAction
Text
actions :: NonEmpty DatasetAction
datasetName :: Text
versioningConfiguration :: Maybe VersioningConfiguration
triggers :: Maybe [DatasetTrigger]
retentionPeriod :: Maybe RetentionPeriod
lateDataRules :: Maybe (NonEmpty LateDataRule)
contentDeliveryRules :: Maybe [DatasetContentDeliveryRule]
$sel:actions:UpdateDataset' :: UpdateDataset -> NonEmpty DatasetAction
$sel:datasetName:UpdateDataset' :: UpdateDataset -> Text
$sel:versioningConfiguration:UpdateDataset' :: UpdateDataset -> Maybe VersioningConfiguration
$sel:triggers:UpdateDataset' :: UpdateDataset -> Maybe [DatasetTrigger]
$sel:retentionPeriod:UpdateDataset' :: UpdateDataset -> Maybe RetentionPeriod
$sel:lateDataRules:UpdateDataset' :: UpdateDataset -> Maybe (NonEmpty LateDataRule)
$sel:contentDeliveryRules:UpdateDataset' :: UpdateDataset -> Maybe [DatasetContentDeliveryRule]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [DatasetContentDeliveryRule]
contentDeliveryRules
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty LateDataRule)
lateDataRules
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RetentionPeriod
retentionPeriod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [DatasetTrigger]
triggers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VersioningConfiguration
versioningConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
datasetName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty DatasetAction
actions

instance Prelude.NFData UpdateDataset where
  rnf :: UpdateDataset -> ()
rnf UpdateDataset' {Maybe [DatasetContentDeliveryRule]
Maybe [DatasetTrigger]
Maybe (NonEmpty LateDataRule)
Maybe RetentionPeriod
Maybe VersioningConfiguration
NonEmpty DatasetAction
Text
actions :: NonEmpty DatasetAction
datasetName :: Text
versioningConfiguration :: Maybe VersioningConfiguration
triggers :: Maybe [DatasetTrigger]
retentionPeriod :: Maybe RetentionPeriod
lateDataRules :: Maybe (NonEmpty LateDataRule)
contentDeliveryRules :: Maybe [DatasetContentDeliveryRule]
$sel:actions:UpdateDataset' :: UpdateDataset -> NonEmpty DatasetAction
$sel:datasetName:UpdateDataset' :: UpdateDataset -> Text
$sel:versioningConfiguration:UpdateDataset' :: UpdateDataset -> Maybe VersioningConfiguration
$sel:triggers:UpdateDataset' :: UpdateDataset -> Maybe [DatasetTrigger]
$sel:retentionPeriod:UpdateDataset' :: UpdateDataset -> Maybe RetentionPeriod
$sel:lateDataRules:UpdateDataset' :: UpdateDataset -> Maybe (NonEmpty LateDataRule)
$sel:contentDeliveryRules:UpdateDataset' :: UpdateDataset -> Maybe [DatasetContentDeliveryRule]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [DatasetContentDeliveryRule]
contentDeliveryRules
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty LateDataRule)
lateDataRules
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RetentionPeriod
retentionPeriod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [DatasetTrigger]
triggers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VersioningConfiguration
versioningConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
datasetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty DatasetAction
actions

instance Data.ToHeaders UpdateDataset where
  toHeaders :: UpdateDataset -> [Header]
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON UpdateDataset where
  toJSON :: UpdateDataset -> Value
toJSON UpdateDataset' {Maybe [DatasetContentDeliveryRule]
Maybe [DatasetTrigger]
Maybe (NonEmpty LateDataRule)
Maybe RetentionPeriod
Maybe VersioningConfiguration
NonEmpty DatasetAction
Text
actions :: NonEmpty DatasetAction
datasetName :: Text
versioningConfiguration :: Maybe VersioningConfiguration
triggers :: Maybe [DatasetTrigger]
retentionPeriod :: Maybe RetentionPeriod
lateDataRules :: Maybe (NonEmpty LateDataRule)
contentDeliveryRules :: Maybe [DatasetContentDeliveryRule]
$sel:actions:UpdateDataset' :: UpdateDataset -> NonEmpty DatasetAction
$sel:datasetName:UpdateDataset' :: UpdateDataset -> Text
$sel:versioningConfiguration:UpdateDataset' :: UpdateDataset -> Maybe VersioningConfiguration
$sel:triggers:UpdateDataset' :: UpdateDataset -> Maybe [DatasetTrigger]
$sel:retentionPeriod:UpdateDataset' :: UpdateDataset -> Maybe RetentionPeriod
$sel:lateDataRules:UpdateDataset' :: UpdateDataset -> Maybe (NonEmpty LateDataRule)
$sel:contentDeliveryRules:UpdateDataset' :: UpdateDataset -> Maybe [DatasetContentDeliveryRule]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"contentDeliveryRules" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [DatasetContentDeliveryRule]
contentDeliveryRules,
            (Key
"lateDataRules" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty LateDataRule)
lateDataRules,
            (Key
"retentionPeriod" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe RetentionPeriod
retentionPeriod,
            (Key
"triggers" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [DatasetTrigger]
triggers,
            (Key
"versioningConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VersioningConfiguration
versioningConfiguration,
            forall a. a -> Maybe a
Prelude.Just (Key
"actions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty DatasetAction
actions)
          ]
      )

instance Data.ToPath UpdateDataset where
  toPath :: UpdateDataset -> ByteString
toPath UpdateDataset' {Maybe [DatasetContentDeliveryRule]
Maybe [DatasetTrigger]
Maybe (NonEmpty LateDataRule)
Maybe RetentionPeriod
Maybe VersioningConfiguration
NonEmpty DatasetAction
Text
actions :: NonEmpty DatasetAction
datasetName :: Text
versioningConfiguration :: Maybe VersioningConfiguration
triggers :: Maybe [DatasetTrigger]
retentionPeriod :: Maybe RetentionPeriod
lateDataRules :: Maybe (NonEmpty LateDataRule)
contentDeliveryRules :: Maybe [DatasetContentDeliveryRule]
$sel:actions:UpdateDataset' :: UpdateDataset -> NonEmpty DatasetAction
$sel:datasetName:UpdateDataset' :: UpdateDataset -> Text
$sel:versioningConfiguration:UpdateDataset' :: UpdateDataset -> Maybe VersioningConfiguration
$sel:triggers:UpdateDataset' :: UpdateDataset -> Maybe [DatasetTrigger]
$sel:retentionPeriod:UpdateDataset' :: UpdateDataset -> Maybe RetentionPeriod
$sel:lateDataRules:UpdateDataset' :: UpdateDataset -> Maybe (NonEmpty LateDataRule)
$sel:contentDeliveryRules:UpdateDataset' :: UpdateDataset -> Maybe [DatasetContentDeliveryRule]
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/datasets/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
datasetName]

instance Data.ToQuery UpdateDataset where
  toQuery :: UpdateDataset -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateDatasetResponse' smart constructor.
data UpdateDatasetResponse = UpdateDatasetResponse'
  {
  }
  deriving (UpdateDatasetResponse -> UpdateDatasetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDatasetResponse -> UpdateDatasetResponse -> Bool
$c/= :: UpdateDatasetResponse -> UpdateDatasetResponse -> Bool
== :: UpdateDatasetResponse -> UpdateDatasetResponse -> Bool
$c== :: UpdateDatasetResponse -> UpdateDatasetResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDatasetResponse]
ReadPrec UpdateDatasetResponse
Int -> ReadS UpdateDatasetResponse
ReadS [UpdateDatasetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDatasetResponse]
$creadListPrec :: ReadPrec [UpdateDatasetResponse]
readPrec :: ReadPrec UpdateDatasetResponse
$creadPrec :: ReadPrec UpdateDatasetResponse
readList :: ReadS [UpdateDatasetResponse]
$creadList :: ReadS [UpdateDatasetResponse]
readsPrec :: Int -> ReadS UpdateDatasetResponse
$creadsPrec :: Int -> ReadS UpdateDatasetResponse
Prelude.Read, Int -> UpdateDatasetResponse -> ShowS
[UpdateDatasetResponse] -> ShowS
UpdateDatasetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDatasetResponse] -> ShowS
$cshowList :: [UpdateDatasetResponse] -> ShowS
show :: UpdateDatasetResponse -> String
$cshow :: UpdateDatasetResponse -> String
showsPrec :: Int -> UpdateDatasetResponse -> ShowS
$cshowsPrec :: Int -> UpdateDatasetResponse -> ShowS
Prelude.Show, forall x. Rep UpdateDatasetResponse x -> UpdateDatasetResponse
forall x. UpdateDatasetResponse -> Rep UpdateDatasetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDatasetResponse x -> UpdateDatasetResponse
$cfrom :: forall x. UpdateDatasetResponse -> Rep UpdateDatasetResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDatasetResponse' 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.
newUpdateDatasetResponse ::
  UpdateDatasetResponse
newUpdateDatasetResponse :: UpdateDatasetResponse
newUpdateDatasetResponse = UpdateDatasetResponse
UpdateDatasetResponse'

instance Prelude.NFData UpdateDatasetResponse where
  rnf :: UpdateDatasetResponse -> ()
rnf UpdateDatasetResponse
_ = ()