{-# 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 #-}
module Amazonka.Redshift.AssociateDataShareConsumer
(
AssociateDataShareConsumer (..),
newAssociateDataShareConsumer,
associateDataShareConsumer_associateEntireAccount,
associateDataShareConsumer_consumerArn,
associateDataShareConsumer_consumerRegion,
associateDataShareConsumer_dataShareArn,
DataShare (..),
newDataShare,
dataShare_allowPubliclyAccessibleConsumers,
dataShare_dataShareArn,
dataShare_dataShareAssociations,
dataShare_managedBy,
dataShare_producerArn,
)
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.Redshift.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data AssociateDataShareConsumer = AssociateDataShareConsumer'
{
AssociateDataShareConsumer -> Maybe Bool
associateEntireAccount :: Prelude.Maybe Prelude.Bool,
AssociateDataShareConsumer -> Maybe Text
consumerArn :: Prelude.Maybe Prelude.Text,
AssociateDataShareConsumer -> Maybe Text
consumerRegion :: Prelude.Maybe Prelude.Text,
AssociateDataShareConsumer -> Text
dataShareArn :: Prelude.Text
}
deriving (AssociateDataShareConsumer -> AssociateDataShareConsumer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateDataShareConsumer -> AssociateDataShareConsumer -> Bool
$c/= :: AssociateDataShareConsumer -> AssociateDataShareConsumer -> Bool
== :: AssociateDataShareConsumer -> AssociateDataShareConsumer -> Bool
$c== :: AssociateDataShareConsumer -> AssociateDataShareConsumer -> Bool
Prelude.Eq, ReadPrec [AssociateDataShareConsumer]
ReadPrec AssociateDataShareConsumer
Int -> ReadS AssociateDataShareConsumer
ReadS [AssociateDataShareConsumer]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateDataShareConsumer]
$creadListPrec :: ReadPrec [AssociateDataShareConsumer]
readPrec :: ReadPrec AssociateDataShareConsumer
$creadPrec :: ReadPrec AssociateDataShareConsumer
readList :: ReadS [AssociateDataShareConsumer]
$creadList :: ReadS [AssociateDataShareConsumer]
readsPrec :: Int -> ReadS AssociateDataShareConsumer
$creadsPrec :: Int -> ReadS AssociateDataShareConsumer
Prelude.Read, Int -> AssociateDataShareConsumer -> ShowS
[AssociateDataShareConsumer] -> ShowS
AssociateDataShareConsumer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateDataShareConsumer] -> ShowS
$cshowList :: [AssociateDataShareConsumer] -> ShowS
show :: AssociateDataShareConsumer -> String
$cshow :: AssociateDataShareConsumer -> String
showsPrec :: Int -> AssociateDataShareConsumer -> ShowS
$cshowsPrec :: Int -> AssociateDataShareConsumer -> ShowS
Prelude.Show, forall x.
Rep AssociateDataShareConsumer x -> AssociateDataShareConsumer
forall x.
AssociateDataShareConsumer -> Rep AssociateDataShareConsumer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateDataShareConsumer x -> AssociateDataShareConsumer
$cfrom :: forall x.
AssociateDataShareConsumer -> Rep AssociateDataShareConsumer x
Prelude.Generic)
newAssociateDataShareConsumer ::
Prelude.Text ->
AssociateDataShareConsumer
newAssociateDataShareConsumer :: Text -> AssociateDataShareConsumer
newAssociateDataShareConsumer Text
pDataShareArn_ =
AssociateDataShareConsumer'
{ $sel:associateEntireAccount:AssociateDataShareConsumer' :: Maybe Bool
associateEntireAccount =
forall a. Maybe a
Prelude.Nothing,
$sel:consumerArn:AssociateDataShareConsumer' :: Maybe Text
consumerArn = forall a. Maybe a
Prelude.Nothing,
$sel:consumerRegion:AssociateDataShareConsumer' :: Maybe Text
consumerRegion = forall a. Maybe a
Prelude.Nothing,
$sel:dataShareArn:AssociateDataShareConsumer' :: Text
dataShareArn = Text
pDataShareArn_
}
associateDataShareConsumer_associateEntireAccount :: Lens.Lens' AssociateDataShareConsumer (Prelude.Maybe Prelude.Bool)
associateDataShareConsumer_associateEntireAccount :: Lens' AssociateDataShareConsumer (Maybe Bool)
associateDataShareConsumer_associateEntireAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDataShareConsumer' {Maybe Bool
associateEntireAccount :: Maybe Bool
$sel:associateEntireAccount:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Bool
associateEntireAccount} -> Maybe Bool
associateEntireAccount) (\s :: AssociateDataShareConsumer
s@AssociateDataShareConsumer' {} Maybe Bool
a -> AssociateDataShareConsumer
s {$sel:associateEntireAccount:AssociateDataShareConsumer' :: Maybe Bool
associateEntireAccount = Maybe Bool
a} :: AssociateDataShareConsumer)
associateDataShareConsumer_consumerArn :: Lens.Lens' AssociateDataShareConsumer (Prelude.Maybe Prelude.Text)
associateDataShareConsumer_consumerArn :: Lens' AssociateDataShareConsumer (Maybe Text)
associateDataShareConsumer_consumerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDataShareConsumer' {Maybe Text
consumerArn :: Maybe Text
$sel:consumerArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
consumerArn} -> Maybe Text
consumerArn) (\s :: AssociateDataShareConsumer
s@AssociateDataShareConsumer' {} Maybe Text
a -> AssociateDataShareConsumer
s {$sel:consumerArn:AssociateDataShareConsumer' :: Maybe Text
consumerArn = Maybe Text
a} :: AssociateDataShareConsumer)
associateDataShareConsumer_consumerRegion :: Lens.Lens' AssociateDataShareConsumer (Prelude.Maybe Prelude.Text)
associateDataShareConsumer_consumerRegion :: Lens' AssociateDataShareConsumer (Maybe Text)
associateDataShareConsumer_consumerRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDataShareConsumer' {Maybe Text
consumerRegion :: Maybe Text
$sel:consumerRegion:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
consumerRegion} -> Maybe Text
consumerRegion) (\s :: AssociateDataShareConsumer
s@AssociateDataShareConsumer' {} Maybe Text
a -> AssociateDataShareConsumer
s {$sel:consumerRegion:AssociateDataShareConsumer' :: Maybe Text
consumerRegion = Maybe Text
a} :: AssociateDataShareConsumer)
associateDataShareConsumer_dataShareArn :: Lens.Lens' AssociateDataShareConsumer Prelude.Text
associateDataShareConsumer_dataShareArn :: Lens' AssociateDataShareConsumer Text
associateDataShareConsumer_dataShareArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDataShareConsumer' {Text
dataShareArn :: Text
$sel:dataShareArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Text
dataShareArn} -> Text
dataShareArn) (\s :: AssociateDataShareConsumer
s@AssociateDataShareConsumer' {} Text
a -> AssociateDataShareConsumer
s {$sel:dataShareArn:AssociateDataShareConsumer' :: Text
dataShareArn = Text
a} :: AssociateDataShareConsumer)
instance Core.AWSRequest AssociateDataShareConsumer where
type
AWSResponse AssociateDataShareConsumer =
DataShare
request :: (Service -> Service)
-> AssociateDataShareConsumer -> Request AssociateDataShareConsumer
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy AssociateDataShareConsumer
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse AssociateDataShareConsumer)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"AssociateDataShareConsumerResult"
(\Int
s ResponseHeaders
h [Node]
x -> forall a. FromXML a => [Node] -> Either String a
Data.parseXML [Node]
x)
instance Prelude.Hashable AssociateDataShareConsumer where
hashWithSalt :: Int -> AssociateDataShareConsumer -> Int
hashWithSalt Int
_salt AssociateDataShareConsumer' {Maybe Bool
Maybe Text
Text
dataShareArn :: Text
consumerRegion :: Maybe Text
consumerArn :: Maybe Text
associateEntireAccount :: Maybe Bool
$sel:dataShareArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Text
$sel:consumerRegion:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:consumerArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:associateEntireAccount:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
associateEntireAccount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
consumerArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
consumerRegion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dataShareArn
instance Prelude.NFData AssociateDataShareConsumer where
rnf :: AssociateDataShareConsumer -> ()
rnf AssociateDataShareConsumer' {Maybe Bool
Maybe Text
Text
dataShareArn :: Text
consumerRegion :: Maybe Text
consumerArn :: Maybe Text
associateEntireAccount :: Maybe Bool
$sel:dataShareArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Text
$sel:consumerRegion:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:consumerArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:associateEntireAccount:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
associateEntireAccount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
consumerArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
consumerRegion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
dataShareArn
instance Data.ToHeaders AssociateDataShareConsumer where
toHeaders :: AssociateDataShareConsumer -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath AssociateDataShareConsumer where
toPath :: AssociateDataShareConsumer -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery AssociateDataShareConsumer where
toQuery :: AssociateDataShareConsumer -> QueryString
toQuery AssociateDataShareConsumer' {Maybe Bool
Maybe Text
Text
dataShareArn :: Text
consumerRegion :: Maybe Text
consumerArn :: Maybe Text
associateEntireAccount :: Maybe Bool
$sel:dataShareArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Text
$sel:consumerRegion:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:consumerArn:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Text
$sel:associateEntireAccount:AssociateDataShareConsumer' :: AssociateDataShareConsumer -> Maybe Bool
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"AssociateDataShareConsumer" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2012-12-01" :: Prelude.ByteString),
ByteString
"AssociateEntireAccount"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
associateEntireAccount,
ByteString
"ConsumerArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
consumerArn,
ByteString
"ConsumerRegion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
consumerRegion,
ByteString
"DataShareArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
dataShareArn
]