{-# 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.DataExchange.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)
--
-- This operation updates a data set.
module Amazonka.DataExchange.UpdateDataSet
  ( -- * Creating a Request
    UpdateDataSet (..),
    newUpdateDataSet,

    -- * Request Lenses
    updateDataSet_description,
    updateDataSet_name,
    updateDataSet_dataSetId,

    -- * Destructuring the Response
    UpdateDataSetResponse (..),
    newUpdateDataSetResponse,

    -- * Response Lenses
    updateDataSetResponse_arn,
    updateDataSetResponse_assetType,
    updateDataSetResponse_createdAt,
    updateDataSetResponse_description,
    updateDataSetResponse_id,
    updateDataSetResponse_name,
    updateDataSetResponse_origin,
    updateDataSetResponse_originDetails,
    updateDataSetResponse_sourceId,
    updateDataSetResponse_updatedAt,
    updateDataSetResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DataExchange.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'
  { -- | The description for the data set.
    UpdateDataSet -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The name of the data set.
    UpdateDataSet -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for a data set.
    UpdateDataSet -> Text
dataSetId :: Prelude.Text
  }
  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:
--
-- 'description', 'updateDataSet_description' - The description for the data set.
--
-- 'name', 'updateDataSet_name' - The name of the data set.
--
-- 'dataSetId', 'updateDataSet_dataSetId' - The unique identifier for a data set.
newUpdateDataSet ::
  -- | 'dataSetId'
  Prelude.Text ->
  UpdateDataSet
newUpdateDataSet :: Text -> UpdateDataSet
newUpdateDataSet Text
pDataSetId_ =
  UpdateDataSet'
    { $sel:description:UpdateDataSet' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateDataSet' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:dataSetId:UpdateDataSet' :: Text
dataSetId = Text
pDataSetId_
    }

-- | The description for the data set.
updateDataSet_description :: Lens.Lens' UpdateDataSet (Prelude.Maybe Prelude.Text)
updateDataSet_description :: Lens' UpdateDataSet (Maybe Text)
updateDataSet_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSet' {Maybe Text
description :: Maybe Text
$sel:description:UpdateDataSet' :: UpdateDataSet -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateDataSet
s@UpdateDataSet' {} Maybe Text
a -> UpdateDataSet
s {$sel:description:UpdateDataSet' :: Maybe Text
description = Maybe Text
a} :: UpdateDataSet)

-- | The name of the data set.
updateDataSet_name :: Lens.Lens' UpdateDataSet (Prelude.Maybe Prelude.Text)
updateDataSet_name :: Lens' UpdateDataSet (Maybe Text)
updateDataSet_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSet' {Maybe Text
name :: Maybe Text
$sel:name:UpdateDataSet' :: UpdateDataSet -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateDataSet
s@UpdateDataSet' {} Maybe Text
a -> UpdateDataSet
s {$sel:name:UpdateDataSet' :: Maybe Text
name = Maybe Text
a} :: UpdateDataSet)

-- | The unique identifier for a data set.
updateDataSet_dataSetId :: Lens.Lens' UpdateDataSet Prelude.Text
updateDataSet_dataSetId :: Lens' UpdateDataSet Text
updateDataSet_dataSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSet' {Text
dataSetId :: Text
$sel:dataSetId:UpdateDataSet' :: UpdateDataSet -> Text
dataSetId} -> Text
dataSetId) (\s :: UpdateDataSet
s@UpdateDataSet' {} Text
a -> UpdateDataSet
s {$sel:dataSetId:UpdateDataSet' :: Text
dataSetId = Text
a} :: UpdateDataSet)

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.patchJSON (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 =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe AssetType
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Origin
-> Maybe OriginDetails
-> Maybe Text
-> Maybe ISO8601
-> Int
-> UpdateDataSetResponse
UpdateDataSetResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AssetType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CreatedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Origin")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"OriginDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SourceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"UpdatedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateDataSet where
  hashWithSalt :: Int -> UpdateDataSet -> Int
hashWithSalt Int
_salt UpdateDataSet' {Maybe Text
Text
dataSetId :: Text
name :: Maybe Text
description :: Maybe Text
$sel:dataSetId:UpdateDataSet' :: UpdateDataSet -> Text
$sel:name:UpdateDataSet' :: UpdateDataSet -> Maybe Text
$sel:description:UpdateDataSet' :: UpdateDataSet -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dataSetId

instance Prelude.NFData UpdateDataSet where
  rnf :: UpdateDataSet -> ()
rnf UpdateDataSet' {Maybe Text
Text
dataSetId :: Text
name :: Maybe Text
description :: Maybe Text
$sel:dataSetId:UpdateDataSet' :: UpdateDataSet -> Text
$sel:name:UpdateDataSet' :: UpdateDataSet -> Maybe Text
$sel:description:UpdateDataSet' :: UpdateDataSet -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
dataSetId

instance Data.ToHeaders UpdateDataSet where
  toHeaders :: UpdateDataSet -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateDataSet where
  toJSON :: UpdateDataSet -> Value
toJSON UpdateDataSet' {Maybe Text
Text
dataSetId :: Text
name :: Maybe Text
description :: Maybe Text
$sel:dataSetId:UpdateDataSet' :: UpdateDataSet -> Text
$sel:name:UpdateDataSet' :: UpdateDataSet -> Maybe Text
$sel:description:UpdateDataSet' :: UpdateDataSet -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Description" 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 Text
description,
            (Key
"Name" 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 Text
name
          ]
      )

instance Data.ToPath UpdateDataSet where
  toPath :: UpdateDataSet -> ByteString
toPath UpdateDataSet' {Maybe Text
Text
dataSetId :: Text
name :: Maybe Text
description :: Maybe Text
$sel:dataSetId:UpdateDataSet' :: UpdateDataSet -> Text
$sel:name:UpdateDataSet' :: UpdateDataSet -> Maybe Text
$sel:description:UpdateDataSet' :: UpdateDataSet -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/v1/data-sets/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
dataSetId]

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'
  { -- | The ARN for the data set.
    UpdateDataSetResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The type of asset that is added to a data set.
    UpdateDataSetResponse -> Maybe AssetType
assetType :: Prelude.Maybe AssetType,
    -- | The date and time that the data set was created, in ISO 8601 format.
    UpdateDataSetResponse -> Maybe ISO8601
createdAt :: Prelude.Maybe Data.ISO8601,
    -- | The description for the data set.
    UpdateDataSetResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for the data set.
    UpdateDataSetResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The name of the data set.
    UpdateDataSetResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | A property that defines the data set as OWNED by the account (for
    -- providers) or ENTITLED to the account (for subscribers).
    UpdateDataSetResponse -> Maybe Origin
origin :: Prelude.Maybe Origin,
    -- | If the origin of this data set is ENTITLED, includes the details for the
    -- product on AWS Marketplace.
    UpdateDataSetResponse -> Maybe OriginDetails
originDetails :: Prelude.Maybe OriginDetails,
    -- | The data set ID of the owned data set corresponding to the entitled data
    -- set being viewed. This parameter is returned when a data set owner is
    -- viewing the entitled copy of its owned data set.
    UpdateDataSetResponse -> Maybe Text
sourceId :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the data set was last updated, in ISO 8601
    -- format.
    UpdateDataSetResponse -> Maybe ISO8601
updatedAt :: Prelude.Maybe Data.ISO8601,
    -- | The response's http status code.
    UpdateDataSetResponse -> Int
httpStatus :: Prelude.Int
  }
  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.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'arn', 'updateDataSetResponse_arn' - The ARN for the data set.
--
-- 'assetType', 'updateDataSetResponse_assetType' - The type of asset that is added to a data set.
--
-- 'createdAt', 'updateDataSetResponse_createdAt' - The date and time that the data set was created, in ISO 8601 format.
--
-- 'description', 'updateDataSetResponse_description' - The description for the data set.
--
-- 'id', 'updateDataSetResponse_id' - The unique identifier for the data set.
--
-- 'name', 'updateDataSetResponse_name' - The name of the data set.
--
-- 'origin', 'updateDataSetResponse_origin' - A property that defines the data set as OWNED by the account (for
-- providers) or ENTITLED to the account (for subscribers).
--
-- 'originDetails', 'updateDataSetResponse_originDetails' - If the origin of this data set is ENTITLED, includes the details for the
-- product on AWS Marketplace.
--
-- 'sourceId', 'updateDataSetResponse_sourceId' - The data set ID of the owned data set corresponding to the entitled data
-- set being viewed. This parameter is returned when a data set owner is
-- viewing the entitled copy of its owned data set.
--
-- 'updatedAt', 'updateDataSetResponse_updatedAt' - The date and time that the data set was last updated, in ISO 8601
-- format.
--
-- 'httpStatus', 'updateDataSetResponse_httpStatus' - The response's http status code.
newUpdateDataSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDataSetResponse
newUpdateDataSetResponse :: Int -> UpdateDataSetResponse
newUpdateDataSetResponse Int
pHttpStatus_ =
  UpdateDataSetResponse'
    { $sel:arn:UpdateDataSetResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:assetType:UpdateDataSetResponse' :: Maybe AssetType
assetType = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:UpdateDataSetResponse' :: Maybe ISO8601
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdateDataSetResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:id:UpdateDataSetResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateDataSetResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:origin:UpdateDataSetResponse' :: Maybe Origin
origin = forall a. Maybe a
Prelude.Nothing,
      $sel:originDetails:UpdateDataSetResponse' :: Maybe OriginDetails
originDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceId:UpdateDataSetResponse' :: Maybe Text
sourceId = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedAt:UpdateDataSetResponse' :: Maybe ISO8601
updatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateDataSetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN for the data set.
updateDataSetResponse_arn :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)
updateDataSetResponse_arn :: Lens' UpdateDataSetResponse (Maybe Text)
updateDataSetResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Text
a -> UpdateDataSetResponse
s {$sel:arn:UpdateDataSetResponse' :: Maybe Text
arn = Maybe Text
a} :: UpdateDataSetResponse)

-- | The type of asset that is added to a data set.
updateDataSetResponse_assetType :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe AssetType)
updateDataSetResponse_assetType :: Lens' UpdateDataSetResponse (Maybe AssetType)
updateDataSetResponse_assetType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe AssetType
assetType :: Maybe AssetType
$sel:assetType:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe AssetType
assetType} -> Maybe AssetType
assetType) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe AssetType
a -> UpdateDataSetResponse
s {$sel:assetType:UpdateDataSetResponse' :: Maybe AssetType
assetType = Maybe AssetType
a} :: UpdateDataSetResponse)

-- | The date and time that the data set was created, in ISO 8601 format.
updateDataSetResponse_createdAt :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.UTCTime)
updateDataSetResponse_createdAt :: Lens' UpdateDataSetResponse (Maybe UTCTime)
updateDataSetResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe ISO8601
createdAt :: Maybe ISO8601
$sel:createdAt:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe ISO8601
createdAt} -> Maybe ISO8601
createdAt) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe ISO8601
a -> UpdateDataSetResponse
s {$sel:createdAt:UpdateDataSetResponse' :: Maybe ISO8601
createdAt = Maybe ISO8601
a} :: UpdateDataSetResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description for the data set.
updateDataSetResponse_description :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)
updateDataSetResponse_description :: Lens' UpdateDataSetResponse (Maybe Text)
updateDataSetResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Text
description :: Maybe Text
$sel:description:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Text
a -> UpdateDataSetResponse
s {$sel:description:UpdateDataSetResponse' :: Maybe Text
description = Maybe Text
a} :: UpdateDataSetResponse)

-- | The unique identifier for the data set.
updateDataSetResponse_id :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)
updateDataSetResponse_id :: Lens' UpdateDataSetResponse (Maybe Text)
updateDataSetResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Text
id :: Maybe Text
$sel:id:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Text
a -> UpdateDataSetResponse
s {$sel:id:UpdateDataSetResponse' :: Maybe Text
id = Maybe Text
a} :: UpdateDataSetResponse)

-- | The name of the data set.
updateDataSetResponse_name :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)
updateDataSetResponse_name :: Lens' UpdateDataSetResponse (Maybe Text)
updateDataSetResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Text
name :: Maybe Text
$sel:name:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Text
a -> UpdateDataSetResponse
s {$sel:name:UpdateDataSetResponse' :: Maybe Text
name = Maybe Text
a} :: UpdateDataSetResponse)

-- | A property that defines the data set as OWNED by the account (for
-- providers) or ENTITLED to the account (for subscribers).
updateDataSetResponse_origin :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Origin)
updateDataSetResponse_origin :: Lens' UpdateDataSetResponse (Maybe Origin)
updateDataSetResponse_origin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Origin
origin :: Maybe Origin
$sel:origin:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Origin
origin} -> Maybe Origin
origin) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Origin
a -> UpdateDataSetResponse
s {$sel:origin:UpdateDataSetResponse' :: Maybe Origin
origin = Maybe Origin
a} :: UpdateDataSetResponse)

-- | If the origin of this data set is ENTITLED, includes the details for the
-- product on AWS Marketplace.
updateDataSetResponse_originDetails :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe OriginDetails)
updateDataSetResponse_originDetails :: Lens' UpdateDataSetResponse (Maybe OriginDetails)
updateDataSetResponse_originDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe OriginDetails
originDetails :: Maybe OriginDetails
$sel:originDetails:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe OriginDetails
originDetails} -> Maybe OriginDetails
originDetails) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe OriginDetails
a -> UpdateDataSetResponse
s {$sel:originDetails:UpdateDataSetResponse' :: Maybe OriginDetails
originDetails = Maybe OriginDetails
a} :: UpdateDataSetResponse)

-- | The data set ID of the owned data set corresponding to the entitled data
-- set being viewed. This parameter is returned when a data set owner is
-- viewing the entitled copy of its owned data set.
updateDataSetResponse_sourceId :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.Text)
updateDataSetResponse_sourceId :: Lens' UpdateDataSetResponse (Maybe Text)
updateDataSetResponse_sourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe Text
sourceId :: Maybe Text
$sel:sourceId:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
sourceId} -> Maybe Text
sourceId) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe Text
a -> UpdateDataSetResponse
s {$sel:sourceId:UpdateDataSetResponse' :: Maybe Text
sourceId = Maybe Text
a} :: UpdateDataSetResponse)

-- | The date and time that the data set was last updated, in ISO 8601
-- format.
updateDataSetResponse_updatedAt :: Lens.Lens' UpdateDataSetResponse (Prelude.Maybe Prelude.UTCTime)
updateDataSetResponse_updatedAt :: Lens' UpdateDataSetResponse (Maybe UTCTime)
updateDataSetResponse_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Maybe ISO8601
updatedAt :: Maybe ISO8601
$sel:updatedAt:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe ISO8601
updatedAt} -> Maybe ISO8601
updatedAt) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Maybe ISO8601
a -> UpdateDataSetResponse
s {$sel:updatedAt:UpdateDataSetResponse' :: Maybe ISO8601
updatedAt = Maybe ISO8601
a} :: UpdateDataSetResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The response's http status code.
updateDataSetResponse_httpStatus :: Lens.Lens' UpdateDataSetResponse Prelude.Int
updateDataSetResponse_httpStatus :: Lens' UpdateDataSetResponse Int
updateDataSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateDataSetResponse' :: UpdateDataSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateDataSetResponse
s@UpdateDataSetResponse' {} Int
a -> UpdateDataSetResponse
s {$sel:httpStatus:UpdateDataSetResponse' :: Int
httpStatus = Int
a} :: UpdateDataSetResponse)

instance Prelude.NFData UpdateDataSetResponse where
  rnf :: UpdateDataSetResponse -> ()
rnf UpdateDataSetResponse' {Int
Maybe Text
Maybe ISO8601
Maybe AssetType
Maybe Origin
Maybe OriginDetails
httpStatus :: Int
updatedAt :: Maybe ISO8601
sourceId :: Maybe Text
originDetails :: Maybe OriginDetails
origin :: Maybe Origin
name :: Maybe Text
id :: Maybe Text
description :: Maybe Text
createdAt :: Maybe ISO8601
assetType :: Maybe AssetType
arn :: Maybe Text
$sel:httpStatus:UpdateDataSetResponse' :: UpdateDataSetResponse -> Int
$sel:updatedAt:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe ISO8601
$sel:sourceId:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
$sel:originDetails:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe OriginDetails
$sel:origin:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Origin
$sel:name:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
$sel:id:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
$sel:description:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
$sel:createdAt:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe ISO8601
$sel:assetType:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe AssetType
$sel:arn:UpdateDataSetResponse' :: UpdateDataSetResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssetType
assetType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Origin
origin
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OriginDetails
originDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
updatedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus