{-# 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.RequestDetails
-- 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.RequestDetails 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.CreateS3DataAccessFromS3BucketRequestDetails
import Amazonka.DataExchange.Types.ExportAssetToSignedUrlRequestDetails
import Amazonka.DataExchange.Types.ExportAssetsToS3RequestDetails
import Amazonka.DataExchange.Types.ExportRevisionsToS3RequestDetails
import Amazonka.DataExchange.Types.ImportAssetFromApiGatewayApiRequestDetails
import Amazonka.DataExchange.Types.ImportAssetFromSignedUrlRequestDetails
import Amazonka.DataExchange.Types.ImportAssetsFromLakeFormationTagPolicyRequestDetails
import Amazonka.DataExchange.Types.ImportAssetsFromRedshiftDataSharesRequestDetails
import Amazonka.DataExchange.Types.ImportAssetsFromS3RequestDetails
import qualified Amazonka.Prelude as Prelude

-- | The details for the request.
--
-- /See:/ 'newRequestDetails' smart constructor.
data RequestDetails = RequestDetails'
  { -- | Details of the request to create S3 data access from the Amazon S3
    -- bucket.
    RequestDetails
-> Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket :: Prelude.Maybe CreateS3DataAccessFromS3BucketRequestDetails,
    -- | Details about the export to signed URL request.
    RequestDetails -> Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl :: Prelude.Maybe ExportAssetToSignedUrlRequestDetails,
    -- | Details about the export to Amazon S3 request.
    RequestDetails -> Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3 :: Prelude.Maybe ExportAssetsToS3RequestDetails,
    -- | Details about the export to Amazon S3 request.
    RequestDetails -> Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3 :: Prelude.Maybe ExportRevisionsToS3RequestDetails,
    -- | Details about the import from signed URL request.
    RequestDetails -> Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi :: Prelude.Maybe ImportAssetFromApiGatewayApiRequestDetails,
    -- | Details about the import from Amazon S3 request.
    RequestDetails -> Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl :: Prelude.Maybe ImportAssetFromSignedUrlRequestDetails,
    -- | Request details for the ImportAssetsFromLakeFormationTagPolicy job.
    RequestDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy :: Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails,
    -- | Details from an import from Amazon Redshift datashare request.
    RequestDetails
-> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares :: Prelude.Maybe ImportAssetsFromRedshiftDataSharesRequestDetails,
    -- | Details about the import asset from API Gateway API request.
    RequestDetails -> Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3 :: Prelude.Maybe ImportAssetsFromS3RequestDetails
  }
  deriving (RequestDetails -> RequestDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RequestDetails -> RequestDetails -> Bool
$c/= :: RequestDetails -> RequestDetails -> Bool
== :: RequestDetails -> RequestDetails -> Bool
$c== :: RequestDetails -> RequestDetails -> Bool
Prelude.Eq, ReadPrec [RequestDetails]
ReadPrec RequestDetails
Int -> ReadS RequestDetails
ReadS [RequestDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RequestDetails]
$creadListPrec :: ReadPrec [RequestDetails]
readPrec :: ReadPrec RequestDetails
$creadPrec :: ReadPrec RequestDetails
readList :: ReadS [RequestDetails]
$creadList :: ReadS [RequestDetails]
readsPrec :: Int -> ReadS RequestDetails
$creadsPrec :: Int -> ReadS RequestDetails
Prelude.Read, Int -> RequestDetails -> ShowS
[RequestDetails] -> ShowS
RequestDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RequestDetails] -> ShowS
$cshowList :: [RequestDetails] -> ShowS
show :: RequestDetails -> String
$cshow :: RequestDetails -> String
showsPrec :: Int -> RequestDetails -> ShowS
$cshowsPrec :: Int -> RequestDetails -> ShowS
Prelude.Show, forall x. Rep RequestDetails x -> RequestDetails
forall x. RequestDetails -> Rep RequestDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RequestDetails x -> RequestDetails
$cfrom :: forall x. RequestDetails -> Rep RequestDetails x
Prelude.Generic)

-- |
-- Create a value of 'RequestDetails' 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', 'requestDetails_createS3DataAccessFromS3Bucket' - Details of the request to create S3 data access from the Amazon S3
-- bucket.
--
-- 'exportAssetToSignedUrl', 'requestDetails_exportAssetToSignedUrl' - Details about the export to signed URL request.
--
-- 'exportAssetsToS3', 'requestDetails_exportAssetsToS3' - Details about the export to Amazon S3 request.
--
-- 'exportRevisionsToS3', 'requestDetails_exportRevisionsToS3' - Details about the export to Amazon S3 request.
--
-- 'importAssetFromApiGatewayApi', 'requestDetails_importAssetFromApiGatewayApi' - Details about the import from signed URL request.
--
-- 'importAssetFromSignedUrl', 'requestDetails_importAssetFromSignedUrl' - Details about the import from Amazon S3 request.
--
-- 'importAssetsFromLakeFormationTagPolicy', 'requestDetails_importAssetsFromLakeFormationTagPolicy' - Request details for the ImportAssetsFromLakeFormationTagPolicy job.
--
-- 'importAssetsFromRedshiftDataShares', 'requestDetails_importAssetsFromRedshiftDataShares' - Details from an import from Amazon Redshift datashare request.
--
-- 'importAssetsFromS3', 'requestDetails_importAssetsFromS3' - Details about the import asset from API Gateway API request.
newRequestDetails ::
  RequestDetails
newRequestDetails :: RequestDetails
newRequestDetails =
  RequestDetails'
    { $sel:createS3DataAccessFromS3Bucket:RequestDetails' :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket =
        forall a. Maybe a
Prelude.Nothing,
      $sel:exportAssetToSignedUrl:RequestDetails' :: Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:exportAssetsToS3:RequestDetails' :: Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3 = forall a. Maybe a
Prelude.Nothing,
      $sel:exportRevisionsToS3:RequestDetails' :: Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3 = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetFromApiGatewayApi:RequestDetails' :: Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetFromSignedUrl:RequestDetails' :: Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromRedshiftDataShares:RequestDetails' :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares = forall a. Maybe a
Prelude.Nothing,
      $sel:importAssetsFromS3:RequestDetails' :: Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3 = forall a. Maybe a
Prelude.Nothing
    }

-- | Details of the request to create S3 data access from the Amazon S3
-- bucket.
requestDetails_createS3DataAccessFromS3Bucket :: Lens.Lens' RequestDetails (Prelude.Maybe CreateS3DataAccessFromS3BucketRequestDetails)
requestDetails_createS3DataAccessFromS3Bucket :: Lens'
  RequestDetails (Maybe CreateS3DataAccessFromS3BucketRequestDetails)
requestDetails_createS3DataAccessFromS3Bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
$sel:createS3DataAccessFromS3Bucket:RequestDetails' :: RequestDetails
-> Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket} -> Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket) (\s :: RequestDetails
s@RequestDetails' {} Maybe CreateS3DataAccessFromS3BucketRequestDetails
a -> RequestDetails
s {$sel:createS3DataAccessFromS3Bucket:RequestDetails' :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket = Maybe CreateS3DataAccessFromS3BucketRequestDetails
a} :: RequestDetails)

-- | Details about the export to signed URL request.
requestDetails_exportAssetToSignedUrl :: Lens.Lens' RequestDetails (Prelude.Maybe ExportAssetToSignedUrlRequestDetails)
requestDetails_exportAssetToSignedUrl :: Lens' RequestDetails (Maybe ExportAssetToSignedUrlRequestDetails)
requestDetails_exportAssetToSignedUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlRequestDetails
$sel:exportAssetToSignedUrl:RequestDetails' :: RequestDetails -> Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl} -> Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl) (\s :: RequestDetails
s@RequestDetails' {} Maybe ExportAssetToSignedUrlRequestDetails
a -> RequestDetails
s {$sel:exportAssetToSignedUrl:RequestDetails' :: Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl = Maybe ExportAssetToSignedUrlRequestDetails
a} :: RequestDetails)

-- | Details about the export to Amazon S3 request.
requestDetails_exportAssetsToS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ExportAssetsToS3RequestDetails)
requestDetails_exportAssetsToS3 :: Lens' RequestDetails (Maybe ExportAssetsToS3RequestDetails)
requestDetails_exportAssetsToS3 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3RequestDetails
$sel:exportAssetsToS3:RequestDetails' :: RequestDetails -> Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3} -> Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3) (\s :: RequestDetails
s@RequestDetails' {} Maybe ExportAssetsToS3RequestDetails
a -> RequestDetails
s {$sel:exportAssetsToS3:RequestDetails' :: Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3 = Maybe ExportAssetsToS3RequestDetails
a} :: RequestDetails)

-- | Details about the export to Amazon S3 request.
requestDetails_exportRevisionsToS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ExportRevisionsToS3RequestDetails)
requestDetails_exportRevisionsToS3 :: Lens' RequestDetails (Maybe ExportRevisionsToS3RequestDetails)
requestDetails_exportRevisionsToS3 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3RequestDetails
$sel:exportRevisionsToS3:RequestDetails' :: RequestDetails -> Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3} -> Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3) (\s :: RequestDetails
s@RequestDetails' {} Maybe ExportRevisionsToS3RequestDetails
a -> RequestDetails
s {$sel:exportRevisionsToS3:RequestDetails' :: Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3 = Maybe ExportRevisionsToS3RequestDetails
a} :: RequestDetails)

-- | Details about the import from signed URL request.
requestDetails_importAssetFromApiGatewayApi :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetFromApiGatewayApiRequestDetails)
requestDetails_importAssetFromApiGatewayApi :: Lens'
  RequestDetails (Maybe ImportAssetFromApiGatewayApiRequestDetails)
requestDetails_importAssetFromApiGatewayApi = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiRequestDetails
$sel:importAssetFromApiGatewayApi:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi} -> Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi) (\s :: RequestDetails
s@RequestDetails' {} Maybe ImportAssetFromApiGatewayApiRequestDetails
a -> RequestDetails
s {$sel:importAssetFromApiGatewayApi:RequestDetails' :: Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi = Maybe ImportAssetFromApiGatewayApiRequestDetails
a} :: RequestDetails)

-- | Details about the import from Amazon S3 request.
requestDetails_importAssetFromSignedUrl :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetFromSignedUrlRequestDetails)
requestDetails_importAssetFromSignedUrl :: Lens' RequestDetails (Maybe ImportAssetFromSignedUrlRequestDetails)
requestDetails_importAssetFromSignedUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlRequestDetails
$sel:importAssetFromSignedUrl:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl} -> Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl) (\s :: RequestDetails
s@RequestDetails' {} Maybe ImportAssetFromSignedUrlRequestDetails
a -> RequestDetails
s {$sel:importAssetFromSignedUrl:RequestDetails' :: Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl = Maybe ImportAssetFromSignedUrlRequestDetails
a} :: RequestDetails)

-- | Request details for the ImportAssetsFromLakeFormationTagPolicy job.
requestDetails_importAssetsFromLakeFormationTagPolicy :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails)
requestDetails_importAssetsFromLakeFormationTagPolicy :: Lens'
  RequestDetails
  (Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails)
requestDetails_importAssetsFromLakeFormationTagPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
$sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy} -> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy) (\s :: RequestDetails
s@RequestDetails' {} Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
a -> RequestDetails
s {$sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy = Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
a} :: RequestDetails)

-- | Details from an import from Amazon Redshift datashare request.
requestDetails_importAssetsFromRedshiftDataShares :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromRedshiftDataSharesRequestDetails)
requestDetails_importAssetsFromRedshiftDataShares :: Lens'
  RequestDetails
  (Maybe ImportAssetsFromRedshiftDataSharesRequestDetails)
requestDetails_importAssetsFromRedshiftDataShares = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
$sel:importAssetsFromRedshiftDataShares:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares} -> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares) (\s :: RequestDetails
s@RequestDetails' {} Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
a -> RequestDetails
s {$sel:importAssetsFromRedshiftDataShares:RequestDetails' :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares = Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
a} :: RequestDetails)

-- | Details about the import asset from API Gateway API request.
requestDetails_importAssetsFromS3 :: Lens.Lens' RequestDetails (Prelude.Maybe ImportAssetsFromS3RequestDetails)
requestDetails_importAssetsFromS3 :: Lens' RequestDetails (Maybe ImportAssetsFromS3RequestDetails)
requestDetails_importAssetsFromS3 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RequestDetails' {Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3RequestDetails
$sel:importAssetsFromS3:RequestDetails' :: RequestDetails -> Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3} -> Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3) (\s :: RequestDetails
s@RequestDetails' {} Maybe ImportAssetsFromS3RequestDetails
a -> RequestDetails
s {$sel:importAssetsFromS3:RequestDetails' :: Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3 = Maybe ImportAssetsFromS3RequestDetails
a} :: RequestDetails)

instance Prelude.Hashable RequestDetails where
  hashWithSalt :: Int -> RequestDetails -> Int
hashWithSalt Int
_salt RequestDetails' {Maybe ExportAssetToSignedUrlRequestDetails
Maybe ImportAssetFromSignedUrlRequestDetails
Maybe ImportAssetsFromS3RequestDetails
Maybe ImportAssetFromApiGatewayApiRequestDetails
Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
Maybe CreateS3DataAccessFromS3BucketRequestDetails
Maybe ExportRevisionsToS3RequestDetails
Maybe ExportAssetsToS3RequestDetails
Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3RequestDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiRequestDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3RequestDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3RequestDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlRequestDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
$sel:importAssetsFromS3:RequestDetails' :: RequestDetails -> Maybe ImportAssetsFromS3RequestDetails
$sel:importAssetsFromRedshiftDataShares:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
$sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
$sel:importAssetFromSignedUrl:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromSignedUrlRequestDetails
$sel:importAssetFromApiGatewayApi:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromApiGatewayApiRequestDetails
$sel:exportRevisionsToS3:RequestDetails' :: RequestDetails -> Maybe ExportRevisionsToS3RequestDetails
$sel:exportAssetsToS3:RequestDetails' :: RequestDetails -> Maybe ExportAssetsToS3RequestDetails
$sel:exportAssetToSignedUrl:RequestDetails' :: RequestDetails -> Maybe ExportAssetToSignedUrlRequestDetails
$sel:createS3DataAccessFromS3Bucket:RequestDetails' :: RequestDetails
-> Maybe CreateS3DataAccessFromS3BucketRequestDetails
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3

instance Prelude.NFData RequestDetails where
  rnf :: RequestDetails -> ()
rnf RequestDetails' {Maybe ExportAssetToSignedUrlRequestDetails
Maybe ImportAssetFromSignedUrlRequestDetails
Maybe ImportAssetsFromS3RequestDetails
Maybe ImportAssetFromApiGatewayApiRequestDetails
Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
Maybe CreateS3DataAccessFromS3BucketRequestDetails
Maybe ExportRevisionsToS3RequestDetails
Maybe ExportAssetsToS3RequestDetails
Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3RequestDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiRequestDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3RequestDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3RequestDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlRequestDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
$sel:importAssetsFromS3:RequestDetails' :: RequestDetails -> Maybe ImportAssetsFromS3RequestDetails
$sel:importAssetsFromRedshiftDataShares:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
$sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
$sel:importAssetFromSignedUrl:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromSignedUrlRequestDetails
$sel:importAssetFromApiGatewayApi:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromApiGatewayApiRequestDetails
$sel:exportRevisionsToS3:RequestDetails' :: RequestDetails -> Maybe ExportRevisionsToS3RequestDetails
$sel:exportAssetsToS3:RequestDetails' :: RequestDetails -> Maybe ExportAssetsToS3RequestDetails
$sel:exportAssetToSignedUrl:RequestDetails' :: RequestDetails -> Maybe ExportAssetToSignedUrlRequestDetails
$sel:createS3DataAccessFromS3Bucket:RequestDetails' :: RequestDetails
-> Maybe CreateS3DataAccessFromS3BucketRequestDetails
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportAssetsToS3RequestDetails
exportAssetsToS3
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportRevisionsToS3RequestDetails
exportRevisionsToS3
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportAssetsFromS3RequestDetails
importAssetsFromS3

instance Data.ToJSON RequestDetails where
  toJSON :: RequestDetails -> Value
toJSON RequestDetails' {Maybe ExportAssetToSignedUrlRequestDetails
Maybe ImportAssetFromSignedUrlRequestDetails
Maybe ImportAssetsFromS3RequestDetails
Maybe ImportAssetFromApiGatewayApiRequestDetails
Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
Maybe CreateS3DataAccessFromS3BucketRequestDetails
Maybe ExportRevisionsToS3RequestDetails
Maybe ExportAssetsToS3RequestDetails
Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromS3 :: Maybe ImportAssetsFromS3RequestDetails
importAssetsFromRedshiftDataShares :: Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromLakeFormationTagPolicy :: Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetFromSignedUrl :: Maybe ImportAssetFromSignedUrlRequestDetails
importAssetFromApiGatewayApi :: Maybe ImportAssetFromApiGatewayApiRequestDetails
exportRevisionsToS3 :: Maybe ExportRevisionsToS3RequestDetails
exportAssetsToS3 :: Maybe ExportAssetsToS3RequestDetails
exportAssetToSignedUrl :: Maybe ExportAssetToSignedUrlRequestDetails
createS3DataAccessFromS3Bucket :: Maybe CreateS3DataAccessFromS3BucketRequestDetails
$sel:importAssetsFromS3:RequestDetails' :: RequestDetails -> Maybe ImportAssetsFromS3RequestDetails
$sel:importAssetsFromRedshiftDataShares:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromRedshiftDataSharesRequestDetails
$sel:importAssetsFromLakeFormationTagPolicy:RequestDetails' :: RequestDetails
-> Maybe ImportAssetsFromLakeFormationTagPolicyRequestDetails
$sel:importAssetFromSignedUrl:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromSignedUrlRequestDetails
$sel:importAssetFromApiGatewayApi:RequestDetails' :: RequestDetails -> Maybe ImportAssetFromApiGatewayApiRequestDetails
$sel:exportRevisionsToS3:RequestDetails' :: RequestDetails -> Maybe ExportRevisionsToS3RequestDetails
$sel:exportAssetsToS3:RequestDetails' :: RequestDetails -> Maybe ExportAssetsToS3RequestDetails
$sel:exportAssetToSignedUrl:RequestDetails' :: RequestDetails -> Maybe ExportAssetToSignedUrlRequestDetails
$sel:createS3DataAccessFromS3Bucket:RequestDetails' :: RequestDetails
-> Maybe CreateS3DataAccessFromS3BucketRequestDetails
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CreateS3DataAccessFromS3Bucket" 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 CreateS3DataAccessFromS3BucketRequestDetails
createS3DataAccessFromS3Bucket,
            (Key
"ExportAssetToSignedUrl" 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 ExportAssetToSignedUrlRequestDetails
exportAssetToSignedUrl,
            (Key
"ExportAssetsToS3" 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 ExportAssetsToS3RequestDetails
exportAssetsToS3,
            (Key
"ExportRevisionsToS3" 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 ExportRevisionsToS3RequestDetails
exportRevisionsToS3,
            (Key
"ImportAssetFromApiGatewayApi" 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 ImportAssetFromApiGatewayApiRequestDetails
importAssetFromApiGatewayApi,
            (Key
"ImportAssetFromSignedUrl" 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 ImportAssetFromSignedUrlRequestDetails
importAssetFromSignedUrl,
            (Key
"ImportAssetsFromLakeFormationTagPolicy" 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 ImportAssetsFromLakeFormationTagPolicyRequestDetails
importAssetsFromLakeFormationTagPolicy,
            (Key
"ImportAssetsFromRedshiftDataShares" 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 ImportAssetsFromRedshiftDataSharesRequestDetails
importAssetsFromRedshiftDataShares,
            (Key
"ImportAssetsFromS3" 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 ImportAssetsFromS3RequestDetails
importAssetsFromS3
          ]
      )