{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DataExchange.Types.ResponseDetails 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.CreateS3DataAccessFromS3BucketResponseDetails
import Amazonka.DataExchange.Types.ExportAssetToSignedUrlResponseDetails
import Amazonka.DataExchange.Types.ExportAssetsToS3ResponseDetails
import Amazonka.DataExchange.Types.ExportRevisionsToS3ResponseDetails
import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiResponseDetails
import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlResponseDetails
import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyResponseDetails
import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesResponseDetails
import Amazonka.DataExchange.Types.ImportAssetsFromS3ResponseDetails
import qualified Amazonka.Prelude as Prelude

-- | Details for the response.
--
-- /See:/ 'newResponseDetails' smart constructor.
data ResponseDetails = ResponseDetails'
  { -- | Response details from the CreateS3DataAccessFromS3Bucket job.
    ResponseDetails
-> Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket :: Prelude.Maybe CreateS3DataAccessFromS3BucketResponseDetails,
    -- | Details for the export to signed URL response.
    ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl :: Prelude.Maybe ExportAssetToSignedUrlResponseDetails,
    -- | 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,
    -- | The response details.
    ResponseDetails
-> Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi :: Prelude.Maybe ImportAssetFromApiGatewayApiResponseDetails,
    -- | Details for the import from signed URL response.
    ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl :: Prelude.Maybe ImportAssetFromSignedUrlResponseDetails,
    -- | Response details from the ImportAssetsFromLakeFormationTagPolicy job.
    ResponseDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy :: Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails,
    -- | 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
  }
  deriving (ResponseDetails -> ResponseDetails -> Bool
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]
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
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. 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:
--
-- 'createS3DataAccessFromS3Bucket', 'responseDetails_createS3DataAccessFromS3Bucket' - Response details from the CreateS3DataAccessFromS3Bucket job.
--
-- 'exportAssetToSignedUrl', 'responseDetails_exportAssetToSignedUrl' - Details for the export to signed URL response.
--
-- 'exportAssetsToS3', 'responseDetails_exportAssetsToS3' - Details for the export to Amazon S3 response.
--
-- 'exportRevisionsToS3', 'responseDetails_exportRevisionsToS3' - Details for the export revisions to Amazon S3 response.
--
-- 'importAssetFromApiGatewayApi', 'responseDetails_importAssetFromApiGatewayApi' - The response details.
--
-- 'importAssetFromSignedUrl', 'responseDetails_importAssetFromSignedUrl' - Details for the import from signed URL response.
--
-- 'importAssetsFromLakeFormationTagPolicy', 'responseDetails_importAssetsFromLakeFormationTagPolicy' - Response details from the ImportAssetsFromLakeFormationTagPolicy job.
--
-- 'importAssetsFromRedshiftDataShares', 'responseDetails_importAssetsFromRedshiftDataShares' - Details from an import from Amazon Redshift datashare response.
--
-- 'importAssetsFromS3', 'responseDetails_importAssetsFromS3' - Details for the import from Amazon S3 response.
newResponseDetails ::
  ResponseDetails
newResponseDetails :: ResponseDetails
newResponseDetails =
  ResponseDetails'
    { $sel:createS3DataAccessFromS3Bucket:ResponseDetails' :: Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket =
        forall a. Maybe a
Prelude.Nothing,
      $sel:exportAssetToSignedUrl:ResponseDetails' :: Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:exportAssetsToS3:ResponseDetails' :: Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3 = forall a. Maybe a
Prelude.Nothing,
      $sel:exportRevisionsToS3:ResponseDetails' :: Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3 = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetFromApiGatewayApi:ResponseDetails' :: Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetFromSignedUrl:ResponseDetails' :: Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromLakeFormationTagPolicy:ResponseDetails' :: Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromS3:ResponseDetails' :: Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3 = forall a. Maybe a
Prelude.Nothing
    }

-- | Response details from the CreateS3DataAccessFromS3Bucket job.
responseDetails_createS3DataAccessFromS3Bucket :: Lens.Lens' ResponseDetails (Prelude.Maybe CreateS3DataAccessFromS3BucketResponseDetails)
responseDetails_createS3DataAccessFromS3Bucket :: Lens'
  ResponseDetails
  (Maybe CreateS3DataAccessFromS3BucketResponseDetails)
responseDetails_createS3DataAccessFromS3Bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketResponseDetails
$sel:createS3DataAccessFromS3Bucket:ResponseDetails' :: ResponseDetails
-> Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket} -> Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe CreateS3DataAccessFromS3BucketResponseDetails
a -> ResponseDetails
s {$sel:createS3DataAccessFromS3Bucket:ResponseDetails' :: Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket = Maybe CreateS3DataAccessFromS3BucketResponseDetails
a} :: ResponseDetails)

-- | Details for the export to signed URL response.
responseDetails_exportAssetToSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetToSignedUrlResponseDetails)
responseDetails_exportAssetToSignedUrl :: Lens' ResponseDetails (Maybe ExportAssetToSignedUrlResponseDetails)
responseDetails_exportAssetToSignedUrl = 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)

-- | Details for the export to Amazon S3 response.
responseDetails_exportAssetsToS3 :: Lens.Lens' ResponseDetails (Prelude.Maybe ExportAssetsToS3ResponseDetails)
responseDetails_exportAssetsToS3 :: Lens' ResponseDetails (Maybe ExportAssetsToS3ResponseDetails)
responseDetails_exportAssetsToS3 = 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 :: Lens' ResponseDetails (Maybe ExportRevisionsToS3ResponseDetails)
responseDetails_exportRevisionsToS3 = 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)

-- | The response details.
responseDetails_importAssetFromApiGatewayApi :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetFromApiGatewayApiResponseDetails)
responseDetails_importAssetFromApiGatewayApi :: Lens'
  ResponseDetails (Maybe ImportAssetFromApiGatewayApiResponseDetails)
responseDetails_importAssetFromApiGatewayApi = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiResponseDetails
$sel:importAssetFromApiGatewayApi:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi} -> Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ImportAssetFromApiGatewayApiResponseDetails
a -> ResponseDetails
s {$sel:importAssetFromApiGatewayApi:ResponseDetails' :: Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi = Maybe ImportAssetFromApiGatewayApiResponseDetails
a} :: ResponseDetails)

-- | Details for the import from signed URL response.
responseDetails_importAssetFromSignedUrl :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetFromSignedUrlResponseDetails)
responseDetails_importAssetFromSignedUrl :: Lens'
  ResponseDetails (Maybe ImportAssetFromSignedUrlResponseDetails)
responseDetails_importAssetFromSignedUrl = 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)

-- | Response details from the ImportAssetsFromLakeFormationTagPolicy job.
responseDetails_importAssetsFromLakeFormationTagPolicy :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails)
responseDetails_importAssetsFromLakeFormationTagPolicy :: Lens'
  ResponseDetails
  (Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails)
responseDetails_importAssetsFromLakeFormationTagPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResponseDetails' {Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
$sel:importAssetsFromLakeFormationTagPolicy:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy} -> Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy) (\s :: ResponseDetails
s@ResponseDetails' {} Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
a -> ResponseDetails
s {$sel:importAssetsFromLakeFormationTagPolicy:ResponseDetails' :: Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy = Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
a} :: ResponseDetails)

-- | Details from an import from Amazon Redshift datashare response.
responseDetails_importAssetsFromRedshiftDataShares :: Lens.Lens' ResponseDetails (Prelude.Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
responseDetails_importAssetsFromRedshiftDataShares :: Lens'
  ResponseDetails
  (Maybe ImportAssetsFromRedshiftDataSharesResponseDetails)
responseDetails_importAssetsFromRedshiftDataShares = 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 :: Lens' ResponseDetails (Maybe ImportAssetsFromS3ResponseDetails)
responseDetails_importAssetsFromS3 = 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)

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

instance Prelude.Hashable ResponseDetails where
  hashWithSalt :: Int -> ResponseDetails -> Int
hashWithSalt Int
_salt ResponseDetails' {Maybe ExportAssetToSignedUrlResponseDetails
Maybe ImportAssetFromSignedUrlResponseDetails
Maybe ImportAssetsFromS3ResponseDetails
Maybe ImportAssetFromApiGatewayApiResponseDetails
Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
Maybe CreateS3DataAccessFromS3BucketResponseDetails
Maybe ExportRevisionsToS3ResponseDetails
Maybe ExportAssetsToS3ResponseDetails
Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiResponseDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3ResponseDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3ResponseDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlResponseDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketResponseDetails
$sel:importAssetsFromS3:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetsFromS3ResponseDetails
$sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
$sel:importAssetsFromLakeFormationTagPolicy:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
$sel:importAssetFromSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails
$sel:importAssetFromApiGatewayApi:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetFromApiGatewayApiResponseDetails
$sel:exportRevisionsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportRevisionsToS3ResponseDetails
$sel:exportAssetsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetsToS3ResponseDetails
$sel:exportAssetToSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails
$sel:createS3DataAccessFromS3Bucket:ResponseDetails' :: ResponseDetails
-> Maybe CreateS3DataAccessFromS3BucketResponseDetails
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3

instance Prelude.NFData ResponseDetails where
  rnf :: ResponseDetails -> ()
rnf ResponseDetails' {Maybe ExportAssetToSignedUrlResponseDetails
Maybe ImportAssetFromSignedUrlResponseDetails
Maybe ImportAssetsFromS3ResponseDetails
Maybe ImportAssetFromApiGatewayApiResponseDetails
Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
Maybe CreateS3DataAccessFromS3BucketResponseDetails
Maybe ExportRevisionsToS3ResponseDetails
Maybe ExportAssetsToS3ResponseDetails
Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiResponseDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3ResponseDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3ResponseDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlResponseDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketResponseDetails
$sel:importAssetsFromS3:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetsFromS3ResponseDetails
$sel:importAssetsFromRedshiftDataShares:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
$sel:importAssetsFromLakeFormationTagPolicy:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
$sel:importAssetFromSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ImportAssetFromSignedUrlResponseDetails
$sel:importAssetFromApiGatewayApi:ResponseDetails' :: ResponseDetails
-> Maybe ImportAssetFromApiGatewayApiResponseDetails
$sel:exportRevisionsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportRevisionsToS3ResponseDetails
$sel:exportAssetsToS3:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetsToS3ResponseDetails
$sel:exportAssetToSignedUrl:ResponseDetails' :: ResponseDetails -> Maybe ExportAssetToSignedUrlResponseDetails
$sel:createS3DataAccessFromS3Bucket:ResponseDetails' :: ResponseDetails
-> Maybe CreateS3DataAccessFromS3BucketResponseDetails
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe CreateS3DataAccessFromS3BucketResponseDetails
createS3DataAccessFromS3Bucket
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportAssetToSignedUrlResponseDetails
exportAssetToSignedUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportAssetsToS3ResponseDetails
exportAssetsToS3
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportRevisionsToS3ResponseDetails
exportRevisionsToS3
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetFromApiGatewayApiResponseDetails
importAssetFromApiGatewayApi
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetFromSignedUrlResponseDetails
importAssetFromSignedUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromLakeFormationTagPolicyResponseDetails
importAssetsFromLakeFormationTagPolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromRedshiftDataSharesResponseDetails
importAssetsFromRedshiftDataShares
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromS3ResponseDetails
importAssetsFromS3