{-# 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.QuickSight.UpdateDataSourcePermissions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the permissions to a data source.
module Amazonka.QuickSight.UpdateDataSourcePermissions
  ( -- * Creating a Request
    UpdateDataSourcePermissions (..),
    newUpdateDataSourcePermissions,

    -- * Request Lenses
    updateDataSourcePermissions_grantPermissions,
    updateDataSourcePermissions_revokePermissions,
    updateDataSourcePermissions_awsAccountId,
    updateDataSourcePermissions_dataSourceId,

    -- * Destructuring the Response
    UpdateDataSourcePermissionsResponse (..),
    newUpdateDataSourcePermissionsResponse,

    -- * Response Lenses
    updateDataSourcePermissionsResponse_dataSourceArn,
    updateDataSourcePermissionsResponse_dataSourceId,
    updateDataSourcePermissionsResponse_requestId,
    updateDataSourcePermissionsResponse_status,
  )
where

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

-- | /See:/ 'newUpdateDataSourcePermissions' smart constructor.
data UpdateDataSourcePermissions = UpdateDataSourcePermissions'
  { -- | A list of resource permissions that you want to grant on the data
    -- source.
    UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
grantPermissions :: Prelude.Maybe (Prelude.NonEmpty ResourcePermission),
    -- | A list of resource permissions that you want to revoke on the data
    -- source.
    UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
revokePermissions :: Prelude.Maybe (Prelude.NonEmpty ResourcePermission),
    -- | The Amazon Web Services account ID.
    UpdateDataSourcePermissions -> Text
awsAccountId :: Prelude.Text,
    -- | The ID of the data source. This ID is unique per Amazon Web Services
    -- Region for each Amazon Web Services account.
    UpdateDataSourcePermissions -> Text
dataSourceId :: Prelude.Text
  }
  deriving (UpdateDataSourcePermissions -> UpdateDataSourcePermissions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDataSourcePermissions -> UpdateDataSourcePermissions -> Bool
$c/= :: UpdateDataSourcePermissions -> UpdateDataSourcePermissions -> Bool
== :: UpdateDataSourcePermissions -> UpdateDataSourcePermissions -> Bool
$c== :: UpdateDataSourcePermissions -> UpdateDataSourcePermissions -> Bool
Prelude.Eq, ReadPrec [UpdateDataSourcePermissions]
ReadPrec UpdateDataSourcePermissions
Int -> ReadS UpdateDataSourcePermissions
ReadS [UpdateDataSourcePermissions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDataSourcePermissions]
$creadListPrec :: ReadPrec [UpdateDataSourcePermissions]
readPrec :: ReadPrec UpdateDataSourcePermissions
$creadPrec :: ReadPrec UpdateDataSourcePermissions
readList :: ReadS [UpdateDataSourcePermissions]
$creadList :: ReadS [UpdateDataSourcePermissions]
readsPrec :: Int -> ReadS UpdateDataSourcePermissions
$creadsPrec :: Int -> ReadS UpdateDataSourcePermissions
Prelude.Read, Int -> UpdateDataSourcePermissions -> ShowS
[UpdateDataSourcePermissions] -> ShowS
UpdateDataSourcePermissions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDataSourcePermissions] -> ShowS
$cshowList :: [UpdateDataSourcePermissions] -> ShowS
show :: UpdateDataSourcePermissions -> String
$cshow :: UpdateDataSourcePermissions -> String
showsPrec :: Int -> UpdateDataSourcePermissions -> ShowS
$cshowsPrec :: Int -> UpdateDataSourcePermissions -> ShowS
Prelude.Show, forall x.
Rep UpdateDataSourcePermissions x -> UpdateDataSourcePermissions
forall x.
UpdateDataSourcePermissions -> Rep UpdateDataSourcePermissions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDataSourcePermissions x -> UpdateDataSourcePermissions
$cfrom :: forall x.
UpdateDataSourcePermissions -> Rep UpdateDataSourcePermissions x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDataSourcePermissions' 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:
--
-- 'grantPermissions', 'updateDataSourcePermissions_grantPermissions' - A list of resource permissions that you want to grant on the data
-- source.
--
-- 'revokePermissions', 'updateDataSourcePermissions_revokePermissions' - A list of resource permissions that you want to revoke on the data
-- source.
--
-- 'awsAccountId', 'updateDataSourcePermissions_awsAccountId' - The Amazon Web Services account ID.
--
-- 'dataSourceId', 'updateDataSourcePermissions_dataSourceId' - The ID of the data source. This ID is unique per Amazon Web Services
-- Region for each Amazon Web Services account.
newUpdateDataSourcePermissions ::
  -- | 'awsAccountId'
  Prelude.Text ->
  -- | 'dataSourceId'
  Prelude.Text ->
  UpdateDataSourcePermissions
newUpdateDataSourcePermissions :: Text -> Text -> UpdateDataSourcePermissions
newUpdateDataSourcePermissions
  Text
pAwsAccountId_
  Text
pDataSourceId_ =
    UpdateDataSourcePermissions'
      { $sel:grantPermissions:UpdateDataSourcePermissions' :: Maybe (NonEmpty ResourcePermission)
grantPermissions =
          forall a. Maybe a
Prelude.Nothing,
        $sel:revokePermissions:UpdateDataSourcePermissions' :: Maybe (NonEmpty ResourcePermission)
revokePermissions = forall a. Maybe a
Prelude.Nothing,
        $sel:awsAccountId:UpdateDataSourcePermissions' :: Text
awsAccountId = Text
pAwsAccountId_,
        $sel:dataSourceId:UpdateDataSourcePermissions' :: Text
dataSourceId = Text
pDataSourceId_
      }

-- | A list of resource permissions that you want to grant on the data
-- source.
updateDataSourcePermissions_grantPermissions :: Lens.Lens' UpdateDataSourcePermissions (Prelude.Maybe (Prelude.NonEmpty ResourcePermission))
updateDataSourcePermissions_grantPermissions :: Lens'
  UpdateDataSourcePermissions (Maybe (NonEmpty ResourcePermission))
updateDataSourcePermissions_grantPermissions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
grantPermissions :: Maybe (NonEmpty ResourcePermission)
$sel:grantPermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
grantPermissions} -> Maybe (NonEmpty ResourcePermission)
grantPermissions) (\s :: UpdateDataSourcePermissions
s@UpdateDataSourcePermissions' {} Maybe (NonEmpty ResourcePermission)
a -> UpdateDataSourcePermissions
s {$sel:grantPermissions:UpdateDataSourcePermissions' :: Maybe (NonEmpty ResourcePermission)
grantPermissions = Maybe (NonEmpty ResourcePermission)
a} :: UpdateDataSourcePermissions) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of resource permissions that you want to revoke on the data
-- source.
updateDataSourcePermissions_revokePermissions :: Lens.Lens' UpdateDataSourcePermissions (Prelude.Maybe (Prelude.NonEmpty ResourcePermission))
updateDataSourcePermissions_revokePermissions :: Lens'
  UpdateDataSourcePermissions (Maybe (NonEmpty ResourcePermission))
updateDataSourcePermissions_revokePermissions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
revokePermissions :: Maybe (NonEmpty ResourcePermission)
$sel:revokePermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
revokePermissions} -> Maybe (NonEmpty ResourcePermission)
revokePermissions) (\s :: UpdateDataSourcePermissions
s@UpdateDataSourcePermissions' {} Maybe (NonEmpty ResourcePermission)
a -> UpdateDataSourcePermissions
s {$sel:revokePermissions:UpdateDataSourcePermissions' :: Maybe (NonEmpty ResourcePermission)
revokePermissions = Maybe (NonEmpty ResourcePermission)
a} :: UpdateDataSourcePermissions) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Web Services account ID.
updateDataSourcePermissions_awsAccountId :: Lens.Lens' UpdateDataSourcePermissions Prelude.Text
updateDataSourcePermissions_awsAccountId :: Lens' UpdateDataSourcePermissions Text
updateDataSourcePermissions_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissions' {Text
awsAccountId :: Text
$sel:awsAccountId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
awsAccountId} -> Text
awsAccountId) (\s :: UpdateDataSourcePermissions
s@UpdateDataSourcePermissions' {} Text
a -> UpdateDataSourcePermissions
s {$sel:awsAccountId:UpdateDataSourcePermissions' :: Text
awsAccountId = Text
a} :: UpdateDataSourcePermissions)

-- | The ID of the data source. This ID is unique per Amazon Web Services
-- Region for each Amazon Web Services account.
updateDataSourcePermissions_dataSourceId :: Lens.Lens' UpdateDataSourcePermissions Prelude.Text
updateDataSourcePermissions_dataSourceId :: Lens' UpdateDataSourcePermissions Text
updateDataSourcePermissions_dataSourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissions' {Text
dataSourceId :: Text
$sel:dataSourceId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
dataSourceId} -> Text
dataSourceId) (\s :: UpdateDataSourcePermissions
s@UpdateDataSourcePermissions' {} Text
a -> UpdateDataSourcePermissions
s {$sel:dataSourceId:UpdateDataSourcePermissions' :: Text
dataSourceId = Text
a} :: UpdateDataSourcePermissions)

instance Core.AWSRequest UpdateDataSourcePermissions where
  type
    AWSResponse UpdateDataSourcePermissions =
      UpdateDataSourcePermissionsResponse
  request :: (Service -> Service)
-> UpdateDataSourcePermissions
-> Request UpdateDataSourcePermissions
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateDataSourcePermissions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateDataSourcePermissions)))
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 Text
-> Maybe Text
-> Int
-> UpdateDataSourcePermissionsResponse
UpdateDataSourcePermissionsResponse'
            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
"DataSourceArn")
            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
"DataSourceId")
            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
"RequestId")
            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 UpdateDataSourcePermissions where
  hashWithSalt :: Int -> UpdateDataSourcePermissions -> Int
hashWithSalt Int
_salt UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
Text
dataSourceId :: Text
awsAccountId :: Text
revokePermissions :: Maybe (NonEmpty ResourcePermission)
grantPermissions :: Maybe (NonEmpty ResourcePermission)
$sel:dataSourceId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:awsAccountId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:revokePermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
$sel:grantPermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty ResourcePermission)
grantPermissions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty ResourcePermission)
revokePermissions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awsAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dataSourceId

instance Prelude.NFData UpdateDataSourcePermissions where
  rnf :: UpdateDataSourcePermissions -> ()
rnf UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
Text
dataSourceId :: Text
awsAccountId :: Text
revokePermissions :: Maybe (NonEmpty ResourcePermission)
grantPermissions :: Maybe (NonEmpty ResourcePermission)
$sel:dataSourceId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:awsAccountId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:revokePermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
$sel:grantPermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty ResourcePermission)
grantPermissions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty ResourcePermission)
revokePermissions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
awsAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
dataSourceId

instance Data.ToHeaders UpdateDataSourcePermissions where
  toHeaders :: UpdateDataSourcePermissions -> 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.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateDataSourcePermissions where
  toJSON :: UpdateDataSourcePermissions -> Value
toJSON UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
Text
dataSourceId :: Text
awsAccountId :: Text
revokePermissions :: Maybe (NonEmpty ResourcePermission)
grantPermissions :: Maybe (NonEmpty ResourcePermission)
$sel:dataSourceId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:awsAccountId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:revokePermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
$sel:grantPermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"GrantPermissions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty ResourcePermission)
grantPermissions,
            (Key
"RevokePermissions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty ResourcePermission)
revokePermissions
          ]
      )

instance Data.ToPath UpdateDataSourcePermissions where
  toPath :: UpdateDataSourcePermissions -> ByteString
toPath UpdateDataSourcePermissions' {Maybe (NonEmpty ResourcePermission)
Text
dataSourceId :: Text
awsAccountId :: Text
revokePermissions :: Maybe (NonEmpty ResourcePermission)
grantPermissions :: Maybe (NonEmpty ResourcePermission)
$sel:dataSourceId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:awsAccountId:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Text
$sel:revokePermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
$sel:grantPermissions:UpdateDataSourcePermissions' :: UpdateDataSourcePermissions -> Maybe (NonEmpty ResourcePermission)
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/accounts/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
awsAccountId,
        ByteString
"/data-sources/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
dataSourceId,
        ByteString
"/permissions"
      ]

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

-- | /See:/ 'newUpdateDataSourcePermissionsResponse' smart constructor.
data UpdateDataSourcePermissionsResponse = UpdateDataSourcePermissionsResponse'
  { -- | The Amazon Resource Name (ARN) of the data source.
    UpdateDataSourcePermissionsResponse -> Maybe Text
dataSourceArn :: Prelude.Maybe Prelude.Text,
    -- | The ID of the data source. This ID is unique per Amazon Web Services
    -- Region for each Amazon Web Services account.
    UpdateDataSourcePermissionsResponse -> Maybe Text
dataSourceId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services request ID for this operation.
    UpdateDataSourcePermissionsResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
    -- | The HTTP status of the request.
    UpdateDataSourcePermissionsResponse -> Int
status :: Prelude.Int
  }
  deriving (UpdateDataSourcePermissionsResponse
-> UpdateDataSourcePermissionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDataSourcePermissionsResponse
-> UpdateDataSourcePermissionsResponse -> Bool
$c/= :: UpdateDataSourcePermissionsResponse
-> UpdateDataSourcePermissionsResponse -> Bool
== :: UpdateDataSourcePermissionsResponse
-> UpdateDataSourcePermissionsResponse -> Bool
$c== :: UpdateDataSourcePermissionsResponse
-> UpdateDataSourcePermissionsResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDataSourcePermissionsResponse]
ReadPrec UpdateDataSourcePermissionsResponse
Int -> ReadS UpdateDataSourcePermissionsResponse
ReadS [UpdateDataSourcePermissionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDataSourcePermissionsResponse]
$creadListPrec :: ReadPrec [UpdateDataSourcePermissionsResponse]
readPrec :: ReadPrec UpdateDataSourcePermissionsResponse
$creadPrec :: ReadPrec UpdateDataSourcePermissionsResponse
readList :: ReadS [UpdateDataSourcePermissionsResponse]
$creadList :: ReadS [UpdateDataSourcePermissionsResponse]
readsPrec :: Int -> ReadS UpdateDataSourcePermissionsResponse
$creadsPrec :: Int -> ReadS UpdateDataSourcePermissionsResponse
Prelude.Read, Int -> UpdateDataSourcePermissionsResponse -> ShowS
[UpdateDataSourcePermissionsResponse] -> ShowS
UpdateDataSourcePermissionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDataSourcePermissionsResponse] -> ShowS
$cshowList :: [UpdateDataSourcePermissionsResponse] -> ShowS
show :: UpdateDataSourcePermissionsResponse -> String
$cshow :: UpdateDataSourcePermissionsResponse -> String
showsPrec :: Int -> UpdateDataSourcePermissionsResponse -> ShowS
$cshowsPrec :: Int -> UpdateDataSourcePermissionsResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateDataSourcePermissionsResponse x
-> UpdateDataSourcePermissionsResponse
forall x.
UpdateDataSourcePermissionsResponse
-> Rep UpdateDataSourcePermissionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDataSourcePermissionsResponse x
-> UpdateDataSourcePermissionsResponse
$cfrom :: forall x.
UpdateDataSourcePermissionsResponse
-> Rep UpdateDataSourcePermissionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDataSourcePermissionsResponse' 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:
--
-- 'dataSourceArn', 'updateDataSourcePermissionsResponse_dataSourceArn' - The Amazon Resource Name (ARN) of the data source.
--
-- 'dataSourceId', 'updateDataSourcePermissionsResponse_dataSourceId' - The ID of the data source. This ID is unique per Amazon Web Services
-- Region for each Amazon Web Services account.
--
-- 'requestId', 'updateDataSourcePermissionsResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- 'status', 'updateDataSourcePermissionsResponse_status' - The HTTP status of the request.
newUpdateDataSourcePermissionsResponse ::
  -- | 'status'
  Prelude.Int ->
  UpdateDataSourcePermissionsResponse
newUpdateDataSourcePermissionsResponse :: Int -> UpdateDataSourcePermissionsResponse
newUpdateDataSourcePermissionsResponse Int
pStatus_ =
  UpdateDataSourcePermissionsResponse'
    { $sel:dataSourceArn:UpdateDataSourcePermissionsResponse' :: Maybe Text
dataSourceArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataSourceId:UpdateDataSourcePermissionsResponse' :: Maybe Text
dataSourceId = forall a. Maybe a
Prelude.Nothing,
      $sel:requestId:UpdateDataSourcePermissionsResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UpdateDataSourcePermissionsResponse' :: Int
status = Int
pStatus_
    }

-- | The Amazon Resource Name (ARN) of the data source.
updateDataSourcePermissionsResponse_dataSourceArn :: Lens.Lens' UpdateDataSourcePermissionsResponse (Prelude.Maybe Prelude.Text)
updateDataSourcePermissionsResponse_dataSourceArn :: Lens' UpdateDataSourcePermissionsResponse (Maybe Text)
updateDataSourcePermissionsResponse_dataSourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissionsResponse' {Maybe Text
dataSourceArn :: Maybe Text
$sel:dataSourceArn:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
dataSourceArn} -> Maybe Text
dataSourceArn) (\s :: UpdateDataSourcePermissionsResponse
s@UpdateDataSourcePermissionsResponse' {} Maybe Text
a -> UpdateDataSourcePermissionsResponse
s {$sel:dataSourceArn:UpdateDataSourcePermissionsResponse' :: Maybe Text
dataSourceArn = Maybe Text
a} :: UpdateDataSourcePermissionsResponse)

-- | The ID of the data source. This ID is unique per Amazon Web Services
-- Region for each Amazon Web Services account.
updateDataSourcePermissionsResponse_dataSourceId :: Lens.Lens' UpdateDataSourcePermissionsResponse (Prelude.Maybe Prelude.Text)
updateDataSourcePermissionsResponse_dataSourceId :: Lens' UpdateDataSourcePermissionsResponse (Maybe Text)
updateDataSourcePermissionsResponse_dataSourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissionsResponse' {Maybe Text
dataSourceId :: Maybe Text
$sel:dataSourceId:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
dataSourceId} -> Maybe Text
dataSourceId) (\s :: UpdateDataSourcePermissionsResponse
s@UpdateDataSourcePermissionsResponse' {} Maybe Text
a -> UpdateDataSourcePermissionsResponse
s {$sel:dataSourceId:UpdateDataSourcePermissionsResponse' :: Maybe Text
dataSourceId = Maybe Text
a} :: UpdateDataSourcePermissionsResponse)

-- | The Amazon Web Services request ID for this operation.
updateDataSourcePermissionsResponse_requestId :: Lens.Lens' UpdateDataSourcePermissionsResponse (Prelude.Maybe Prelude.Text)
updateDataSourcePermissionsResponse_requestId :: Lens' UpdateDataSourcePermissionsResponse (Maybe Text)
updateDataSourcePermissionsResponse_requestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissionsResponse' {Maybe Text
requestId :: Maybe Text
$sel:requestId:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
requestId} -> Maybe Text
requestId) (\s :: UpdateDataSourcePermissionsResponse
s@UpdateDataSourcePermissionsResponse' {} Maybe Text
a -> UpdateDataSourcePermissionsResponse
s {$sel:requestId:UpdateDataSourcePermissionsResponse' :: Maybe Text
requestId = Maybe Text
a} :: UpdateDataSourcePermissionsResponse)

-- | The HTTP status of the request.
updateDataSourcePermissionsResponse_status :: Lens.Lens' UpdateDataSourcePermissionsResponse Prelude.Int
updateDataSourcePermissionsResponse_status :: Lens' UpdateDataSourcePermissionsResponse Int
updateDataSourcePermissionsResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataSourcePermissionsResponse' {Int
status :: Int
$sel:status:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Int
status} -> Int
status) (\s :: UpdateDataSourcePermissionsResponse
s@UpdateDataSourcePermissionsResponse' {} Int
a -> UpdateDataSourcePermissionsResponse
s {$sel:status:UpdateDataSourcePermissionsResponse' :: Int
status = Int
a} :: UpdateDataSourcePermissionsResponse)

instance
  Prelude.NFData
    UpdateDataSourcePermissionsResponse
  where
  rnf :: UpdateDataSourcePermissionsResponse -> ()
rnf UpdateDataSourcePermissionsResponse' {Int
Maybe Text
status :: Int
requestId :: Maybe Text
dataSourceId :: Maybe Text
dataSourceArn :: Maybe Text
$sel:status:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Int
$sel:requestId:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
$sel:dataSourceId:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
$sel:dataSourceArn:UpdateDataSourcePermissionsResponse' :: UpdateDataSourcePermissionsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataSourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataSourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
requestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
status