{-# 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.WellArchitected.UpdateWorkloadShare
(
UpdateWorkloadShare (..),
newUpdateWorkloadShare,
updateWorkloadShare_shareId,
updateWorkloadShare_workloadId,
updateWorkloadShare_permissionType,
UpdateWorkloadShareResponse (..),
newUpdateWorkloadShareResponse,
updateWorkloadShareResponse_workloadId,
updateWorkloadShareResponse_workloadShare,
updateWorkloadShareResponse_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.WellArchitected.Types
data UpdateWorkloadShare = UpdateWorkloadShare'
{ UpdateWorkloadShare -> Text
shareId :: Prelude.Text,
UpdateWorkloadShare -> Text
workloadId :: Prelude.Text,
UpdateWorkloadShare -> PermissionType
permissionType :: PermissionType
}
deriving (UpdateWorkloadShare -> UpdateWorkloadShare -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateWorkloadShare -> UpdateWorkloadShare -> Bool
$c/= :: UpdateWorkloadShare -> UpdateWorkloadShare -> Bool
== :: UpdateWorkloadShare -> UpdateWorkloadShare -> Bool
$c== :: UpdateWorkloadShare -> UpdateWorkloadShare -> Bool
Prelude.Eq, ReadPrec [UpdateWorkloadShare]
ReadPrec UpdateWorkloadShare
Int -> ReadS UpdateWorkloadShare
ReadS [UpdateWorkloadShare]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateWorkloadShare]
$creadListPrec :: ReadPrec [UpdateWorkloadShare]
readPrec :: ReadPrec UpdateWorkloadShare
$creadPrec :: ReadPrec UpdateWorkloadShare
readList :: ReadS [UpdateWorkloadShare]
$creadList :: ReadS [UpdateWorkloadShare]
readsPrec :: Int -> ReadS UpdateWorkloadShare
$creadsPrec :: Int -> ReadS UpdateWorkloadShare
Prelude.Read, Int -> UpdateWorkloadShare -> ShowS
[UpdateWorkloadShare] -> ShowS
UpdateWorkloadShare -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateWorkloadShare] -> ShowS
$cshowList :: [UpdateWorkloadShare] -> ShowS
show :: UpdateWorkloadShare -> String
$cshow :: UpdateWorkloadShare -> String
showsPrec :: Int -> UpdateWorkloadShare -> ShowS
$cshowsPrec :: Int -> UpdateWorkloadShare -> ShowS
Prelude.Show, forall x. Rep UpdateWorkloadShare x -> UpdateWorkloadShare
forall x. UpdateWorkloadShare -> Rep UpdateWorkloadShare x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateWorkloadShare x -> UpdateWorkloadShare
$cfrom :: forall x. UpdateWorkloadShare -> Rep UpdateWorkloadShare x
Prelude.Generic)
newUpdateWorkloadShare ::
Prelude.Text ->
Prelude.Text ->
PermissionType ->
UpdateWorkloadShare
newUpdateWorkloadShare :: Text -> Text -> PermissionType -> UpdateWorkloadShare
newUpdateWorkloadShare
Text
pShareId_
Text
pWorkloadId_
PermissionType
pPermissionType_ =
UpdateWorkloadShare'
{ $sel:shareId:UpdateWorkloadShare' :: Text
shareId = Text
pShareId_,
$sel:workloadId:UpdateWorkloadShare' :: Text
workloadId = Text
pWorkloadId_,
$sel:permissionType:UpdateWorkloadShare' :: PermissionType
permissionType = PermissionType
pPermissionType_
}
updateWorkloadShare_shareId :: Lens.Lens' UpdateWorkloadShare Prelude.Text
updateWorkloadShare_shareId :: Lens' UpdateWorkloadShare Text
updateWorkloadShare_shareId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShare' {Text
shareId :: Text
$sel:shareId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
shareId} -> Text
shareId) (\s :: UpdateWorkloadShare
s@UpdateWorkloadShare' {} Text
a -> UpdateWorkloadShare
s {$sel:shareId:UpdateWorkloadShare' :: Text
shareId = Text
a} :: UpdateWorkloadShare)
updateWorkloadShare_workloadId :: Lens.Lens' UpdateWorkloadShare Prelude.Text
updateWorkloadShare_workloadId :: Lens' UpdateWorkloadShare Text
updateWorkloadShare_workloadId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShare' {Text
workloadId :: Text
$sel:workloadId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
workloadId} -> Text
workloadId) (\s :: UpdateWorkloadShare
s@UpdateWorkloadShare' {} Text
a -> UpdateWorkloadShare
s {$sel:workloadId:UpdateWorkloadShare' :: Text
workloadId = Text
a} :: UpdateWorkloadShare)
updateWorkloadShare_permissionType :: Lens.Lens' UpdateWorkloadShare PermissionType
updateWorkloadShare_permissionType :: Lens' UpdateWorkloadShare PermissionType
updateWorkloadShare_permissionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShare' {PermissionType
permissionType :: PermissionType
$sel:permissionType:UpdateWorkloadShare' :: UpdateWorkloadShare -> PermissionType
permissionType} -> PermissionType
permissionType) (\s :: UpdateWorkloadShare
s@UpdateWorkloadShare' {} PermissionType
a -> UpdateWorkloadShare
s {$sel:permissionType:UpdateWorkloadShare' :: PermissionType
permissionType = PermissionType
a} :: UpdateWorkloadShare)
instance Core.AWSRequest UpdateWorkloadShare where
type
AWSResponse UpdateWorkloadShare =
UpdateWorkloadShareResponse
request :: (Service -> Service)
-> UpdateWorkloadShare -> Request UpdateWorkloadShare
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateWorkloadShare
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateWorkloadShare)))
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 WorkloadShare -> Int -> UpdateWorkloadShareResponse
UpdateWorkloadShareResponse'
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
"WorkloadId")
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
"WorkloadShare")
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 UpdateWorkloadShare where
hashWithSalt :: Int -> UpdateWorkloadShare -> Int
hashWithSalt Int
_salt UpdateWorkloadShare' {Text
PermissionType
permissionType :: PermissionType
workloadId :: Text
shareId :: Text
$sel:permissionType:UpdateWorkloadShare' :: UpdateWorkloadShare -> PermissionType
$sel:workloadId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
$sel:shareId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
shareId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workloadId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` PermissionType
permissionType
instance Prelude.NFData UpdateWorkloadShare where
rnf :: UpdateWorkloadShare -> ()
rnf UpdateWorkloadShare' {Text
PermissionType
permissionType :: PermissionType
workloadId :: Text
shareId :: Text
$sel:permissionType:UpdateWorkloadShare' :: UpdateWorkloadShare -> PermissionType
$sel:workloadId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
$sel:shareId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
shareId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
workloadId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf PermissionType
permissionType
instance Data.ToHeaders UpdateWorkloadShare where
toHeaders :: UpdateWorkloadShare -> 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.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateWorkloadShare where
toJSON :: UpdateWorkloadShare -> Value
toJSON UpdateWorkloadShare' {Text
PermissionType
permissionType :: PermissionType
workloadId :: Text
shareId :: Text
$sel:permissionType:UpdateWorkloadShare' :: UpdateWorkloadShare -> PermissionType
$sel:workloadId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
$sel:shareId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"PermissionType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= PermissionType
permissionType)
]
)
instance Data.ToPath UpdateWorkloadShare where
toPath :: UpdateWorkloadShare -> ByteString
toPath UpdateWorkloadShare' {Text
PermissionType
permissionType :: PermissionType
workloadId :: Text
shareId :: Text
$sel:permissionType:UpdateWorkloadShare' :: UpdateWorkloadShare -> PermissionType
$sel:workloadId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
$sel:shareId:UpdateWorkloadShare' :: UpdateWorkloadShare -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/workloads/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
workloadId,
ByteString
"/shares/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
shareId
]
instance Data.ToQuery UpdateWorkloadShare where
toQuery :: UpdateWorkloadShare -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateWorkloadShareResponse = UpdateWorkloadShareResponse'
{ UpdateWorkloadShareResponse -> Maybe Text
workloadId :: Prelude.Maybe Prelude.Text,
UpdateWorkloadShareResponse -> Maybe WorkloadShare
workloadShare :: Prelude.Maybe WorkloadShare,
UpdateWorkloadShareResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateWorkloadShareResponse -> UpdateWorkloadShareResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateWorkloadShareResponse -> UpdateWorkloadShareResponse -> Bool
$c/= :: UpdateWorkloadShareResponse -> UpdateWorkloadShareResponse -> Bool
== :: UpdateWorkloadShareResponse -> UpdateWorkloadShareResponse -> Bool
$c== :: UpdateWorkloadShareResponse -> UpdateWorkloadShareResponse -> Bool
Prelude.Eq, ReadPrec [UpdateWorkloadShareResponse]
ReadPrec UpdateWorkloadShareResponse
Int -> ReadS UpdateWorkloadShareResponse
ReadS [UpdateWorkloadShareResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateWorkloadShareResponse]
$creadListPrec :: ReadPrec [UpdateWorkloadShareResponse]
readPrec :: ReadPrec UpdateWorkloadShareResponse
$creadPrec :: ReadPrec UpdateWorkloadShareResponse
readList :: ReadS [UpdateWorkloadShareResponse]
$creadList :: ReadS [UpdateWorkloadShareResponse]
readsPrec :: Int -> ReadS UpdateWorkloadShareResponse
$creadsPrec :: Int -> ReadS UpdateWorkloadShareResponse
Prelude.Read, Int -> UpdateWorkloadShareResponse -> ShowS
[UpdateWorkloadShareResponse] -> ShowS
UpdateWorkloadShareResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateWorkloadShareResponse] -> ShowS
$cshowList :: [UpdateWorkloadShareResponse] -> ShowS
show :: UpdateWorkloadShareResponse -> String
$cshow :: UpdateWorkloadShareResponse -> String
showsPrec :: Int -> UpdateWorkloadShareResponse -> ShowS
$cshowsPrec :: Int -> UpdateWorkloadShareResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateWorkloadShareResponse x -> UpdateWorkloadShareResponse
forall x.
UpdateWorkloadShareResponse -> Rep UpdateWorkloadShareResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateWorkloadShareResponse x -> UpdateWorkloadShareResponse
$cfrom :: forall x.
UpdateWorkloadShareResponse -> Rep UpdateWorkloadShareResponse x
Prelude.Generic)
newUpdateWorkloadShareResponse ::
Prelude.Int ->
UpdateWorkloadShareResponse
newUpdateWorkloadShareResponse :: Int -> UpdateWorkloadShareResponse
newUpdateWorkloadShareResponse Int
pHttpStatus_ =
UpdateWorkloadShareResponse'
{ $sel:workloadId:UpdateWorkloadShareResponse' :: Maybe Text
workloadId =
forall a. Maybe a
Prelude.Nothing,
$sel:workloadShare:UpdateWorkloadShareResponse' :: Maybe WorkloadShare
workloadShare = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateWorkloadShareResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateWorkloadShareResponse_workloadId :: Lens.Lens' UpdateWorkloadShareResponse (Prelude.Maybe Prelude.Text)
updateWorkloadShareResponse_workloadId :: Lens' UpdateWorkloadShareResponse (Maybe Text)
updateWorkloadShareResponse_workloadId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShareResponse' {Maybe Text
workloadId :: Maybe Text
$sel:workloadId:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Maybe Text
workloadId} -> Maybe Text
workloadId) (\s :: UpdateWorkloadShareResponse
s@UpdateWorkloadShareResponse' {} Maybe Text
a -> UpdateWorkloadShareResponse
s {$sel:workloadId:UpdateWorkloadShareResponse' :: Maybe Text
workloadId = Maybe Text
a} :: UpdateWorkloadShareResponse)
updateWorkloadShareResponse_workloadShare :: Lens.Lens' UpdateWorkloadShareResponse (Prelude.Maybe WorkloadShare)
updateWorkloadShareResponse_workloadShare :: Lens' UpdateWorkloadShareResponse (Maybe WorkloadShare)
updateWorkloadShareResponse_workloadShare = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShareResponse' {Maybe WorkloadShare
workloadShare :: Maybe WorkloadShare
$sel:workloadShare:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Maybe WorkloadShare
workloadShare} -> Maybe WorkloadShare
workloadShare) (\s :: UpdateWorkloadShareResponse
s@UpdateWorkloadShareResponse' {} Maybe WorkloadShare
a -> UpdateWorkloadShareResponse
s {$sel:workloadShare:UpdateWorkloadShareResponse' :: Maybe WorkloadShare
workloadShare = Maybe WorkloadShare
a} :: UpdateWorkloadShareResponse)
updateWorkloadShareResponse_httpStatus :: Lens.Lens' UpdateWorkloadShareResponse Prelude.Int
updateWorkloadShareResponse_httpStatus :: Lens' UpdateWorkloadShareResponse Int
updateWorkloadShareResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWorkloadShareResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateWorkloadShareResponse
s@UpdateWorkloadShareResponse' {} Int
a -> UpdateWorkloadShareResponse
s {$sel:httpStatus:UpdateWorkloadShareResponse' :: Int
httpStatus = Int
a} :: UpdateWorkloadShareResponse)
instance Prelude.NFData UpdateWorkloadShareResponse where
rnf :: UpdateWorkloadShareResponse -> ()
rnf UpdateWorkloadShareResponse' {Int
Maybe Text
Maybe WorkloadShare
httpStatus :: Int
workloadShare :: Maybe WorkloadShare
workloadId :: Maybe Text
$sel:httpStatus:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Int
$sel:workloadShare:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Maybe WorkloadShare
$sel:workloadId:UpdateWorkloadShareResponse' :: UpdateWorkloadShareResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workloadId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkloadShare
workloadShare
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus