{-# 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.DataExchange.Types.ResponseDetails
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DataExchange.Types.ResponseDetails where

import qualified Amazonka.Core as Core
import Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails
import Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails
import Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails
import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails
import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails
import Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Details for the response.
--
-- /See:/ 'newResponseDetails' smart constructor.
data ResponseDetails = ResponseDetails'
  { -- | Details for the export to Amazon S3 response.
    ResponseDetails -> Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3 :: Prelude.Maybe ExportAssetsToS3ResponseDetails,
    -- | Details for the export revisions to Amazon S3 response.
    ResponseDetails -> Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3 :: Prelude.Maybe ExportRevisionsToS3ResponseDetails,
    -- | Details for the import from signed URL response.
    ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl :: Prelude.Maybe ImportAssetFromSignedUrlResponseDetails,
    -- | Details from an import from Amazon Redshift datashare response.
    ResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares :: Prelude.Maybe ImportAssetsFromRedshiftDataSharesResponseDetails,
    -- | Details for the import from Amazon S3 response.
    ResponseDetails -> Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3 :: Prelude.Maybe ImportAssetsFromS3ResponseDetails,
    -- | Details for the export to signed URL response.
    ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl :: Prelude.Maybe ExportAssetToSignedUrlResponseDetails
  }
  deriving (ResponseDetails -> ResponseDetails -> Bool
(ResponseDetails -> ResponseDetails -> Bool)
-> (ResponseDetails -> ResponseDetails -> Bool)
-> Eq ResponseDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResponseDetails -> ResponseDetails -> Bool
$c/= :: ResponseDetails -> ResponseDetails -> Bool
== :: ResponseDetails -> ResponseDetails -> Bool
$c== :: ResponseDetails -> ResponseDetails -> Bool
Prelude.Eq, ReadPrec [ResponseDetails]
ReadPrec ResponseDetails
Int -> ReadS ResponseDetails
ReadS [ResponseDetails]
(Int -> ReadS ResponseDetails)
-> ReadS [ResponseDetails]
-> ReadPrec ResponseDetails
-> ReadPrec [ResponseDetails]
-> Read ResponseDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ResponseDetails]
$creadListPrec :: ReadPrec [ResponseDetails]
readPrec :: ReadPrec ResponseDetails
$creadPrec :: ReadPrec ResponseDetails
readList :: ReadS [ResponseDetails]
$creadList :: ReadS [ResponseDetails]
readsPrec :: Int -> ReadS ResponseDetails
$creadsPrec :: Int -> ReadS ResponseDetails
Prelude.Read, Int -> ResponseDetails -> ShowS
[ResponseDetails] -> ShowS
ResponseDetails -> String
(Int -> ResponseDetails -> ShowS)
-> (ResponseDetails -> String)
-> ([ResponseDetails] -> ShowS)
-> Show ResponseDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResponseDetails] -> ShowS
$cshowList :: [ResponseDetails] -> ShowS
show :: ResponseDetails -> String
$cshow :: ResponseDetails -> String
showsPrec :: Int -> ResponseDetails -> ShowS
$cshowsPrec :: Int -> ResponseDetails -> ShowS
Prelude.Show, (forall x. ResponseDetails -> Rep ResponseDetails x)
-> (forall x. Rep ResponseDetails x -> ResponseDetails)
-> Generic ResponseDetails
forall x. Rep ResponseDetails x -> ResponseDetails
forall x. ResponseDetails -> Rep ResponseDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ResponseDetails x -> ResponseDetails
$cfrom :: forall x. ResponseDetails -> Rep ResponseDetails x
Prelude.Generic)

-- |
-- Create a value of 'ResponseDetails' 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:
--
-- 'exportAssetsToS3', 'responseDetails_exportAssetsToS3' - Details for the export to Amazon S3 response.
--
-- 'exportRevisionsToS3', 'responseDetails_exportRevisionsToS3' - Details for the export revisions to Amazon S3 response.
--
-- 'importAssetFromSignedUrl', 'responseDetails_importAssetFromSignedUrl' - Details for the import from signed URL response.
--
-- 'importAssetsFromRedshiftDataShares', 'responseDetails_importAssetsFromRedshiftDataShares' - Details from an import from Amazon Redshift datashare response.
--
-- 'importAssetsFromS3', 'responseDetails_importAssetsFromS3' - Details for the import from Amazon S3 response.
--
-- 'exportAssetToSignedUrl', 'responseDetails_exportAssetToSignedUrl' - Details for the export to signed URL response.
newResponseDetails ::
  ResponseDetails
newResponseDetails :: ResponseDetails
newResponseDetails =
  ResponseDetails' :: Maybe ExportAssetsToS3ResponseDetails
-> Maybe ExportRevisionsToS3ResponseDetails
-> Maybe ImportAssetFromSignedUrlResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
-> Maybe ImportAssetsFromS3ResponseDetails
-> Maybe ExportAssetToSignedUrlResponseDetails
-> ResponseDetails
ResponseDetails'
    { $sel:exportAssetsToS3:ResponseDetails' :: Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3 =
        Maybe ExportAssetsToS3ResponseDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:exportRevisionsToS3:ResponseDetails' :: Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3 = Maybe ExportRevisionsToS3ResponseDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetFromSignedUrl:ResponseDetails' :: Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl = Maybe ImportAssetFromSignedUrlResponseDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares = Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromS3:ResponseDetails' :: Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3 = Maybe ImportAssetsFromS3ResponseDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:exportAssetToSignedUrl:ResponseDetails' :: Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl = Maybe ExportAssetToSignedUrlResponseDetails
forall a. Maybe a
Prelude.Nothing
    }

-- | Details for the export to Amazon S3 response.
responseDetails_exportAssetsToS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetsToS3ResponseDetails)
responseDetails_exportAssetsToS3 :: (Maybe ExportAssetsToS3ResponseDetails
 -> f (Maybe ExportAssetsToS3ResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_exportAssetsToS3 = (ResponseDetails -> Maybe ExportAssetsToS3ResponseDetails)
-> (ResponseDetails
    -> Maybe ExportAssetsToS3ResponseDetails -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ExportAssetsToS3ResponseDetails)
     (Maybe ExportAssetsToS3ResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3ResponseDetails
$sel:exportAssetsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3} -> Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ExportAssetsToS3ResponseDetails
a -> ResponseDetails
s {$sel:exportAssetsToS3:ResponseDetails' :: Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3 = Maybe ExportAssetsToS3ResponseDetails
a} :: ResponseDetails)

-- | Details for the export revisions to Amazon S3 response.
responseDetails_exportRevisionsToS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportRevisionsToS3ResponseDetails)
responseDetails_exportRevisionsToS3 :: (Maybe ExportRevisionsToS3ResponseDetails
 -> f (Maybe ExportRevisionsToS3ResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_exportRevisionsToS3 = (ResponseDetails -> Maybe ExportRevisionsToS3ResponseDetails)
-> (ResponseDetails
    -> Maybe ExportRevisionsToS3ResponseDetails -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ExportRevisionsToS3ResponseDetails)
     (Maybe ExportRevisionsToS3ResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3ResponseDetails
$sel:exportRevisionsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3} -> Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ExportRevisionsToS3ResponseDetails
a -> ResponseDetails
s {$sel:exportRevisionsToS3:ResponseDetails' :: Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3 = Maybe ExportRevisionsToS3ResponseDetails
a} :: ResponseDetails)

-- | Details for the import from signed URL response.
responseDetails_importAssetFromSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetFromSignedUrlResponseDetails)
responseDetails_importAssetFromSignedUrl :: (Maybe ImportAssetFromSignedUrlResponseDetails
 -> f (Maybe ImportAssetFromSignedUrlResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_importAssetFromSignedUrl = (ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails)
-> (ResponseDetails
    -> Maybe ImportAssetFromSignedUrlResponseDetails
    -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ImportAssetFromSignedUrlResponseDetails)
     (Maybe ImportAssetFromSignedUrlResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlResponseDetails
$sel:importAssetFromSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl} -> Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ImportAssetFromSignedUrlResponseDetails
a -> ResponseDetails
s {$sel:importAssetFromSignedUrl:ResponseDetails' :: Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl = Maybe ImportAssetFromSignedUrlResponseDetails
a} :: ResponseDetails)

-- | Details from an import from Amazon Redshift datashare response.
responseDetails_importAssetsFromRedshiftDataShares :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
responseDetails_importAssetsFromRedshiftDataShares :: (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
 -> f (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_importAssetsFromRedshiftDataShares = (ResponseDetails
 -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
-> (ResponseDetails
    -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
    -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
     (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
$sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares} -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
a -> ResponseDetails
s {$sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares = Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
a} :: ResponseDetails)

-- | Details for the import from Amazon S3 response.
responseDetails_importAssetsFromS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromS3ResponseDetails)
responseDetails_importAssetsFromS3 :: (Maybe ImportAssetsFromS3ResponseDetails
 -> f (Maybe ImportAssetsFromS3ResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_importAssetsFromS3 = (ResponseDetails -> Maybe ImportAssetsFromS3ResponseDetails)
-> (ResponseDetails
    -> Maybe ImportAssetsFromS3ResponseDetails -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ImportAssetsFromS3ResponseDetails)
     (Maybe ImportAssetsFromS3ResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3ResponseDetails
$sel:importAssetsFromS3:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3} -> Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ImportAssetsFromS3ResponseDetails
a -> ResponseDetails
s {$sel:importAssetsFromS3:ResponseDetails' :: Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3 = Maybe ImportAssetsFromS3ResponseDetails
a} :: ResponseDetails)

-- | Details for the export to signed URL response.
responseDetails_exportAssetToSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetToSignedUrlResponseDetails)
responseDetails_exportAssetToSignedUrl :: (Maybe ExportAssetToSignedUrlResponseDetails
 -> f (Maybe ExportAssetToSignedUrlResponseDetails))
-> ResponseDetails -> f ResponseDetails
responseDetails_exportAssetToSignedUrl = (ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails)
-> (ResponseDetails
    -> Maybe ExportAssetToSignedUrlResponseDetails -> ResponseDetails)
-> Lens
     ResponseDetails
     ResponseDetails
     (Maybe ExportAssetToSignedUrlResponseDetails)
     (Maybe ExportAssetToSignedUrlResponseDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlResponseDetails
$sel:exportAssetToSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl} -> Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ExportAssetToSignedUrlResponseDetails
a -> ResponseDetails
s {$sel:exportAssetToSignedUrl:ResponseDetails' :: Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl = Maybe ExportAssetToSignedUrlResponseDetails
a} :: ResponseDetails)

instance Core.FromJSON ResponseDetails where
  parseJSON :: Value -> Parser ResponseDetails
parseJSON =
    String
-> (Object -> Parser ResponseDetails)
-> Value
-> Parser ResponseDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ResponseDetails"
      ( \Object
x ->
          Maybe ExportAssetsToS3ResponseDetails
-> Maybe ExportRevisionsToS3ResponseDetails
-> Maybe ImportAssetFromSignedUrlResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
-> Maybe ImportAssetsFromS3ResponseDetails
-> Maybe ExportAssetToSignedUrlResponseDetails
-> ResponseDetails
ResponseDetails'
            (Maybe ExportAssetsToS3ResponseDetails
 -> Maybe ExportRevisionsToS3ResponseDetails
 -> Maybe ImportAssetFromSignedUrlResponseDetails
 -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
 -> Maybe ImportAssetsFromS3ResponseDetails
 -> Maybe ExportAssetToSignedUrlResponseDetails
 -> ResponseDetails)
-> Parser (Maybe ExportAssetsToS3ResponseDetails)
-> Parser
     (Maybe ExportRevisionsToS3ResponseDetails
      -> Maybe ImportAssetFromSignedUrlResponseDetails
      -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
      -> Maybe ImportAssetsFromS3ResponseDetails
      -> Maybe ExportAssetToSignedUrlResponseDetails
      -> ResponseDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe ExportAssetsToS3ResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ExportAssetsToS3")
            Parser
  (Maybe ExportRevisionsToS3ResponseDetails
   -> Maybe ImportAssetFromSignedUrlResponseDetails
   -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
   -> Maybe ImportAssetsFromS3ResponseDetails
   -> Maybe ExportAssetToSignedUrlResponseDetails
   -> ResponseDetails)
-> Parser (Maybe ExportRevisionsToS3ResponseDetails)
-> Parser
     (Maybe ImportAssetFromSignedUrlResponseDetails
      -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
      -> Maybe ImportAssetsFromS3ResponseDetails
      -> Maybe ExportAssetToSignedUrlResponseDetails
      -> ResponseDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ExportRevisionsToS3ResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ExportRevisionsToS3")
            Parser
  (Maybe ImportAssetFromSignedUrlResponseDetails
   -> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
   -> Maybe ImportAssetsFromS3ResponseDetails
   -> Maybe ExportAssetToSignedUrlResponseDetails
   -> ResponseDetails)
-> Parser (Maybe ImportAssetFromSignedUrlResponseDetails)
-> Parser
     (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
      -> Maybe ImportAssetsFromS3ResponseDetails
      -> Maybe ExportAssetToSignedUrlResponseDetails
      -> ResponseDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe ImportAssetFromSignedUrlResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ImportAssetFromSignedUrl")
            Parser
  (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
   -> Maybe ImportAssetsFromS3ResponseDetails
   -> Maybe ExportAssetToSignedUrlResponseDetails
   -> ResponseDetails)
-> Parser (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
-> Parser
     (Maybe ImportAssetsFromS3ResponseDetails
      -> Maybe ExportAssetToSignedUrlResponseDetails -> ResponseDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ImportAssetsFromRedshiftDataShares")
            Parser
  (Maybe ImportAssetsFromS3ResponseDetails
   -> Maybe ExportAssetToSignedUrlResponseDetails -> ResponseDetails)
-> Parser (Maybe ImportAssetsFromS3ResponseDetails)
-> Parser
     (Maybe ExportAssetToSignedUrlResponseDetails -> ResponseDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ImportAssetsFromS3ResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ImportAssetsFromS3")
            Parser
  (Maybe ExportAssetToSignedUrlResponseDetails -> ResponseDetails)
-> Parser (Maybe ExportAssetToSignedUrlResponseDetails)
-> Parser ResponseDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe ExportAssetToSignedUrlResponseDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ExportAssetToSignedUrl")
      )

instance Prelude.Hashable ResponseDetails

instance Prelude.NFData ResponseDetails