{-# 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.WorkDocs.AddResourcePermissions
(
AddResourcePermissions (..),
newAddResourcePermissions,
addResourcePermissions_authenticationToken,
addResourcePermissions_notificationOptions,
addResourcePermissions_resourceId,
addResourcePermissions_principals,
AddResourcePermissionsResponse (..),
newAddResourcePermissionsResponse,
addResourcePermissionsResponse_shareResults,
addResourcePermissionsResponse_httpStatus,
)
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.WorkDocs.Types
data AddResourcePermissions = AddResourcePermissions'
{
AddResourcePermissions -> Maybe (Sensitive Text)
authenticationToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
AddResourcePermissions -> Maybe NotificationOptions
notificationOptions :: Prelude.Maybe NotificationOptions,
AddResourcePermissions -> Text
resourceId :: Prelude.Text,
AddResourcePermissions -> [SharePrincipal]
principals :: [SharePrincipal]
}
deriving (AddResourcePermissions -> AddResourcePermissions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AddResourcePermissions -> AddResourcePermissions -> Bool
$c/= :: AddResourcePermissions -> AddResourcePermissions -> Bool
== :: AddResourcePermissions -> AddResourcePermissions -> Bool
$c== :: AddResourcePermissions -> AddResourcePermissions -> Bool
Prelude.Eq, Int -> AddResourcePermissions -> ShowS
[AddResourcePermissions] -> ShowS
AddResourcePermissions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AddResourcePermissions] -> ShowS
$cshowList :: [AddResourcePermissions] -> ShowS
show :: AddResourcePermissions -> String
$cshow :: AddResourcePermissions -> String
showsPrec :: Int -> AddResourcePermissions -> ShowS
$cshowsPrec :: Int -> AddResourcePermissions -> ShowS
Prelude.Show, forall x. Rep AddResourcePermissions x -> AddResourcePermissions
forall x. AddResourcePermissions -> Rep AddResourcePermissions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AddResourcePermissions x -> AddResourcePermissions
$cfrom :: forall x. AddResourcePermissions -> Rep AddResourcePermissions x
Prelude.Generic)
newAddResourcePermissions ::
Prelude.Text ->
AddResourcePermissions
newAddResourcePermissions :: Text -> AddResourcePermissions
newAddResourcePermissions Text
pResourceId_ =
AddResourcePermissions'
{ $sel:authenticationToken:AddResourcePermissions' :: Maybe (Sensitive Text)
authenticationToken =
forall a. Maybe a
Prelude.Nothing,
$sel:notificationOptions:AddResourcePermissions' :: Maybe NotificationOptions
notificationOptions = forall a. Maybe a
Prelude.Nothing,
$sel:resourceId:AddResourcePermissions' :: Text
resourceId = Text
pResourceId_,
$sel:principals:AddResourcePermissions' :: [SharePrincipal]
principals = forall a. Monoid a => a
Prelude.mempty
}
addResourcePermissions_authenticationToken :: Lens.Lens' AddResourcePermissions (Prelude.Maybe Prelude.Text)
addResourcePermissions_authenticationToken :: Lens' AddResourcePermissions (Maybe Text)
addResourcePermissions_authenticationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissions' {Maybe (Sensitive Text)
authenticationToken :: Maybe (Sensitive Text)
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
authenticationToken} -> Maybe (Sensitive Text)
authenticationToken) (\s :: AddResourcePermissions
s@AddResourcePermissions' {} Maybe (Sensitive Text)
a -> AddResourcePermissions
s {$sel:authenticationToken:AddResourcePermissions' :: Maybe (Sensitive Text)
authenticationToken = Maybe (Sensitive Text)
a} :: AddResourcePermissions) 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 a. Iso' (Sensitive a) a
Data._Sensitive
addResourcePermissions_notificationOptions :: Lens.Lens' AddResourcePermissions (Prelude.Maybe NotificationOptions)
addResourcePermissions_notificationOptions :: Lens' AddResourcePermissions (Maybe NotificationOptions)
addResourcePermissions_notificationOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissions' {Maybe NotificationOptions
notificationOptions :: Maybe NotificationOptions
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
notificationOptions} -> Maybe NotificationOptions
notificationOptions) (\s :: AddResourcePermissions
s@AddResourcePermissions' {} Maybe NotificationOptions
a -> AddResourcePermissions
s {$sel:notificationOptions:AddResourcePermissions' :: Maybe NotificationOptions
notificationOptions = Maybe NotificationOptions
a} :: AddResourcePermissions)
addResourcePermissions_resourceId :: Lens.Lens' AddResourcePermissions Prelude.Text
addResourcePermissions_resourceId :: Lens' AddResourcePermissions Text
addResourcePermissions_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissions' {Text
resourceId :: Text
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
resourceId} -> Text
resourceId) (\s :: AddResourcePermissions
s@AddResourcePermissions' {} Text
a -> AddResourcePermissions
s {$sel:resourceId:AddResourcePermissions' :: Text
resourceId = Text
a} :: AddResourcePermissions)
addResourcePermissions_principals :: Lens.Lens' AddResourcePermissions [SharePrincipal]
addResourcePermissions_principals :: Lens' AddResourcePermissions [SharePrincipal]
addResourcePermissions_principals = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissions' {[SharePrincipal]
principals :: [SharePrincipal]
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
principals} -> [SharePrincipal]
principals) (\s :: AddResourcePermissions
s@AddResourcePermissions' {} [SharePrincipal]
a -> AddResourcePermissions
s {$sel:principals:AddResourcePermissions' :: [SharePrincipal]
principals = [SharePrincipal]
a} :: AddResourcePermissions) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest AddResourcePermissions where
type
AWSResponse AddResourcePermissions =
AddResourcePermissionsResponse
request :: (Service -> Service)
-> AddResourcePermissions -> Request AddResourcePermissions
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 AddResourcePermissions
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse AddResourcePermissions)))
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 [ShareResult] -> Int -> AddResourcePermissionsResponse
AddResourcePermissionsResponse'
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
"ShareResults" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
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 AddResourcePermissions where
hashWithSalt :: Int -> AddResourcePermissions -> Int
hashWithSalt Int
_salt AddResourcePermissions' {[SharePrincipal]
Maybe (Sensitive Text)
Maybe NotificationOptions
Text
principals :: [SharePrincipal]
resourceId :: Text
notificationOptions :: Maybe NotificationOptions
authenticationToken :: Maybe (Sensitive Text)
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
authenticationToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NotificationOptions
notificationOptions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [SharePrincipal]
principals
instance Prelude.NFData AddResourcePermissions where
rnf :: AddResourcePermissions -> ()
rnf AddResourcePermissions' {[SharePrincipal]
Maybe (Sensitive Text)
Maybe NotificationOptions
Text
principals :: [SharePrincipal]
resourceId :: Text
notificationOptions :: Maybe NotificationOptions
authenticationToken :: Maybe (Sensitive Text)
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
authenticationToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NotificationOptions
notificationOptions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [SharePrincipal]
principals
instance Data.ToHeaders AddResourcePermissions where
toHeaders :: AddResourcePermissions -> ResponseHeaders
toHeaders AddResourcePermissions' {[SharePrincipal]
Maybe (Sensitive Text)
Maybe NotificationOptions
Text
principals :: [SharePrincipal]
resourceId :: Text
notificationOptions :: Maybe NotificationOptions
authenticationToken :: Maybe (Sensitive Text)
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Authentication" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe (Sensitive Text)
authenticationToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToJSON AddResourcePermissions where
toJSON :: AddResourcePermissions -> Value
toJSON AddResourcePermissions' {[SharePrincipal]
Maybe (Sensitive Text)
Maybe NotificationOptions
Text
principals :: [SharePrincipal]
resourceId :: Text
notificationOptions :: Maybe NotificationOptions
authenticationToken :: Maybe (Sensitive Text)
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"NotificationOptions" 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 NotificationOptions
notificationOptions,
forall a. a -> Maybe a
Prelude.Just (Key
"Principals" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [SharePrincipal]
principals)
]
)
instance Data.ToPath AddResourcePermissions where
toPath :: AddResourcePermissions -> ByteString
toPath AddResourcePermissions' {[SharePrincipal]
Maybe (Sensitive Text)
Maybe NotificationOptions
Text
principals :: [SharePrincipal]
resourceId :: Text
notificationOptions :: Maybe NotificationOptions
authenticationToken :: Maybe (Sensitive Text)
$sel:principals:AddResourcePermissions' :: AddResourcePermissions -> [SharePrincipal]
$sel:resourceId:AddResourcePermissions' :: AddResourcePermissions -> Text
$sel:notificationOptions:AddResourcePermissions' :: AddResourcePermissions -> Maybe NotificationOptions
$sel:authenticationToken:AddResourcePermissions' :: AddResourcePermissions -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/api/v1/resources/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
resourceId,
ByteString
"/permissions"
]
instance Data.ToQuery AddResourcePermissions where
toQuery :: AddResourcePermissions -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data AddResourcePermissionsResponse = AddResourcePermissionsResponse'
{
AddResourcePermissionsResponse -> Maybe [ShareResult]
shareResults :: Prelude.Maybe [ShareResult],
AddResourcePermissionsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (AddResourcePermissionsResponse
-> AddResourcePermissionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AddResourcePermissionsResponse
-> AddResourcePermissionsResponse -> Bool
$c/= :: AddResourcePermissionsResponse
-> AddResourcePermissionsResponse -> Bool
== :: AddResourcePermissionsResponse
-> AddResourcePermissionsResponse -> Bool
$c== :: AddResourcePermissionsResponse
-> AddResourcePermissionsResponse -> Bool
Prelude.Eq, Int -> AddResourcePermissionsResponse -> ShowS
[AddResourcePermissionsResponse] -> ShowS
AddResourcePermissionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AddResourcePermissionsResponse] -> ShowS
$cshowList :: [AddResourcePermissionsResponse] -> ShowS
show :: AddResourcePermissionsResponse -> String
$cshow :: AddResourcePermissionsResponse -> String
showsPrec :: Int -> AddResourcePermissionsResponse -> ShowS
$cshowsPrec :: Int -> AddResourcePermissionsResponse -> ShowS
Prelude.Show, forall x.
Rep AddResourcePermissionsResponse x
-> AddResourcePermissionsResponse
forall x.
AddResourcePermissionsResponse
-> Rep AddResourcePermissionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AddResourcePermissionsResponse x
-> AddResourcePermissionsResponse
$cfrom :: forall x.
AddResourcePermissionsResponse
-> Rep AddResourcePermissionsResponse x
Prelude.Generic)
newAddResourcePermissionsResponse ::
Prelude.Int ->
AddResourcePermissionsResponse
newAddResourcePermissionsResponse :: Int -> AddResourcePermissionsResponse
newAddResourcePermissionsResponse Int
pHttpStatus_ =
AddResourcePermissionsResponse'
{ $sel:shareResults:AddResourcePermissionsResponse' :: Maybe [ShareResult]
shareResults =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:AddResourcePermissionsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
addResourcePermissionsResponse_shareResults :: Lens.Lens' AddResourcePermissionsResponse (Prelude.Maybe [ShareResult])
addResourcePermissionsResponse_shareResults :: Lens' AddResourcePermissionsResponse (Maybe [ShareResult])
addResourcePermissionsResponse_shareResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissionsResponse' {Maybe [ShareResult]
shareResults :: Maybe [ShareResult]
$sel:shareResults:AddResourcePermissionsResponse' :: AddResourcePermissionsResponse -> Maybe [ShareResult]
shareResults} -> Maybe [ShareResult]
shareResults) (\s :: AddResourcePermissionsResponse
s@AddResourcePermissionsResponse' {} Maybe [ShareResult]
a -> AddResourcePermissionsResponse
s {$sel:shareResults:AddResourcePermissionsResponse' :: Maybe [ShareResult]
shareResults = Maybe [ShareResult]
a} :: AddResourcePermissionsResponse) 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
addResourcePermissionsResponse_httpStatus :: Lens.Lens' AddResourcePermissionsResponse Prelude.Int
addResourcePermissionsResponse_httpStatus :: Lens' AddResourcePermissionsResponse Int
addResourcePermissionsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddResourcePermissionsResponse' {Int
httpStatus :: Int
$sel:httpStatus:AddResourcePermissionsResponse' :: AddResourcePermissionsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: AddResourcePermissionsResponse
s@AddResourcePermissionsResponse' {} Int
a -> AddResourcePermissionsResponse
s {$sel:httpStatus:AddResourcePermissionsResponse' :: Int
httpStatus = Int
a} :: AddResourcePermissionsResponse)
instance
Prelude.NFData
AddResourcePermissionsResponse
where
rnf :: AddResourcePermissionsResponse -> ()
rnf AddResourcePermissionsResponse' {Int
Maybe [ShareResult]
httpStatus :: Int
shareResults :: Maybe [ShareResult]
$sel:httpStatus:AddResourcePermissionsResponse' :: AddResourcePermissionsResponse -> Int
$sel:shareResults:AddResourcePermissionsResponse' :: AddResourcePermissionsResponse -> Maybe [ShareResult]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ShareResult]
shareResults
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus