{-# 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.CloudControl.UpdateResource
(
UpdateResource (..),
newUpdateResource,
updateResource_clientToken,
updateResource_roleArn,
updateResource_typeVersionId,
updateResource_typeName,
updateResource_identifier,
updateResource_patchDocument,
UpdateResourceResponse (..),
newUpdateResourceResponse,
updateResourceResponse_progressEvent,
updateResourceResponse_httpStatus,
)
where
import Amazonka.CloudControl.Types
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
data UpdateResource = UpdateResource'
{
UpdateResource -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
UpdateResource -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
UpdateResource -> Maybe Text
typeVersionId :: Prelude.Maybe Prelude.Text,
UpdateResource -> Text
typeName :: Prelude.Text,
UpdateResource -> Text
identifier :: Prelude.Text,
UpdateResource -> Sensitive Text
patchDocument :: Data.Sensitive Prelude.Text
}
deriving (UpdateResource -> UpdateResource -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateResource -> UpdateResource -> Bool
$c/= :: UpdateResource -> UpdateResource -> Bool
== :: UpdateResource -> UpdateResource -> Bool
$c== :: UpdateResource -> UpdateResource -> Bool
Prelude.Eq, Int -> UpdateResource -> ShowS
[UpdateResource] -> ShowS
UpdateResource -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateResource] -> ShowS
$cshowList :: [UpdateResource] -> ShowS
show :: UpdateResource -> String
$cshow :: UpdateResource -> String
showsPrec :: Int -> UpdateResource -> ShowS
$cshowsPrec :: Int -> UpdateResource -> ShowS
Prelude.Show, forall x. Rep UpdateResource x -> UpdateResource
forall x. UpdateResource -> Rep UpdateResource x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateResource x -> UpdateResource
$cfrom :: forall x. UpdateResource -> Rep UpdateResource x
Prelude.Generic)
newUpdateResource ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
UpdateResource
newUpdateResource :: Text -> Text -> Text -> UpdateResource
newUpdateResource
Text
pTypeName_
Text
pIdentifier_
Text
pPatchDocument_ =
UpdateResource'
{ $sel:clientToken:UpdateResource' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:roleArn:UpdateResource' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
$sel:typeVersionId:UpdateResource' :: Maybe Text
typeVersionId = forall a. Maybe a
Prelude.Nothing,
$sel:typeName:UpdateResource' :: Text
typeName = Text
pTypeName_,
$sel:identifier:UpdateResource' :: Text
identifier = Text
pIdentifier_,
$sel:patchDocument:UpdateResource' :: Sensitive Text
patchDocument =
forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pPatchDocument_
}
updateResource_clientToken :: Lens.Lens' UpdateResource (Prelude.Maybe Prelude.Text)
updateResource_clientToken :: Lens' UpdateResource (Maybe Text)
updateResource_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:UpdateResource' :: UpdateResource -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: UpdateResource
s@UpdateResource' {} Maybe Text
a -> UpdateResource
s {$sel:clientToken:UpdateResource' :: Maybe Text
clientToken = Maybe Text
a} :: UpdateResource)
updateResource_roleArn :: Lens.Lens' UpdateResource (Prelude.Maybe Prelude.Text)
updateResource_roleArn :: Lens' UpdateResource (Maybe Text)
updateResource_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:UpdateResource' :: UpdateResource -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: UpdateResource
s@UpdateResource' {} Maybe Text
a -> UpdateResource
s {$sel:roleArn:UpdateResource' :: Maybe Text
roleArn = Maybe Text
a} :: UpdateResource)
updateResource_typeVersionId :: Lens.Lens' UpdateResource (Prelude.Maybe Prelude.Text)
updateResource_typeVersionId :: Lens' UpdateResource (Maybe Text)
updateResource_typeVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Maybe Text
typeVersionId :: Maybe Text
$sel:typeVersionId:UpdateResource' :: UpdateResource -> Maybe Text
typeVersionId} -> Maybe Text
typeVersionId) (\s :: UpdateResource
s@UpdateResource' {} Maybe Text
a -> UpdateResource
s {$sel:typeVersionId:UpdateResource' :: Maybe Text
typeVersionId = Maybe Text
a} :: UpdateResource)
updateResource_typeName :: Lens.Lens' UpdateResource Prelude.Text
updateResource_typeName :: Lens' UpdateResource Text
updateResource_typeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Text
typeName :: Text
$sel:typeName:UpdateResource' :: UpdateResource -> Text
typeName} -> Text
typeName) (\s :: UpdateResource
s@UpdateResource' {} Text
a -> UpdateResource
s {$sel:typeName:UpdateResource' :: Text
typeName = Text
a} :: UpdateResource)
updateResource_identifier :: Lens.Lens' UpdateResource Prelude.Text
updateResource_identifier :: Lens' UpdateResource Text
updateResource_identifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Text
identifier :: Text
$sel:identifier:UpdateResource' :: UpdateResource -> Text
identifier} -> Text
identifier) (\s :: UpdateResource
s@UpdateResource' {} Text
a -> UpdateResource
s {$sel:identifier:UpdateResource' :: Text
identifier = Text
a} :: UpdateResource)
updateResource_patchDocument :: Lens.Lens' UpdateResource Prelude.Text
updateResource_patchDocument :: Lens' UpdateResource Text
updateResource_patchDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResource' {Sensitive Text
patchDocument :: Sensitive Text
$sel:patchDocument:UpdateResource' :: UpdateResource -> Sensitive Text
patchDocument} -> Sensitive Text
patchDocument) (\s :: UpdateResource
s@UpdateResource' {} Sensitive Text
a -> UpdateResource
s {$sel:patchDocument:UpdateResource' :: Sensitive Text
patchDocument = Sensitive Text
a} :: UpdateResource) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive
instance Core.AWSRequest UpdateResource where
type
AWSResponse UpdateResource =
UpdateResourceResponse
request :: (Service -> Service) -> UpdateResource -> Request UpdateResource
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 UpdateResource
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateResource)))
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 ProgressEvent -> Int -> UpdateResourceResponse
UpdateResourceResponse'
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
"ProgressEvent")
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 UpdateResource where
hashWithSalt :: Int -> UpdateResource -> Int
hashWithSalt Int
_salt UpdateResource' {Maybe Text
Text
Sensitive Text
patchDocument :: Sensitive Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:patchDocument:UpdateResource' :: UpdateResource -> Sensitive Text
$sel:identifier:UpdateResource' :: UpdateResource -> Text
$sel:typeName:UpdateResource' :: UpdateResource -> Text
$sel:typeVersionId:UpdateResource' :: UpdateResource -> Maybe Text
$sel:roleArn:UpdateResource' :: UpdateResource -> Maybe Text
$sel:clientToken:UpdateResource' :: UpdateResource -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
typeVersionId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
typeName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
identifier
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
patchDocument
instance Prelude.NFData UpdateResource where
rnf :: UpdateResource -> ()
rnf UpdateResource' {Maybe Text
Text
Sensitive Text
patchDocument :: Sensitive Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:patchDocument:UpdateResource' :: UpdateResource -> Sensitive Text
$sel:identifier:UpdateResource' :: UpdateResource -> Text
$sel:typeName:UpdateResource' :: UpdateResource -> Text
$sel:typeVersionId:UpdateResource' :: UpdateResource -> Maybe Text
$sel:roleArn:UpdateResource' :: UpdateResource -> Maybe Text
$sel:clientToken:UpdateResource' :: UpdateResource -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
typeVersionId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
typeName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
identifier
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
patchDocument
instance Data.ToHeaders UpdateResource where
toHeaders :: UpdateResource -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"CloudApiService.UpdateResource" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateResource where
toJSON :: UpdateResource -> Value
toJSON UpdateResource' {Maybe Text
Text
Sensitive Text
patchDocument :: Sensitive Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:patchDocument:UpdateResource' :: UpdateResource -> Sensitive Text
$sel:identifier:UpdateResource' :: UpdateResource -> Text
$sel:typeName:UpdateResource' :: UpdateResource -> Text
$sel:typeVersionId:UpdateResource' :: UpdateResource -> Maybe Text
$sel:roleArn:UpdateResource' :: UpdateResource -> Maybe Text
$sel:clientToken:UpdateResource' :: UpdateResource -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientToken" 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 Text
clientToken,
(Key
"RoleArn" 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 Text
roleArn,
(Key
"TypeVersionId" 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 Text
typeVersionId,
forall a. a -> Maybe a
Prelude.Just (Key
"TypeName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
typeName),
forall a. a -> Maybe a
Prelude.Just (Key
"Identifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
identifier),
forall a. a -> Maybe a
Prelude.Just
(Key
"PatchDocument" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
patchDocument)
]
)
instance Data.ToPath UpdateResource where
toPath :: UpdateResource -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateResource where
toQuery :: UpdateResource -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateResourceResponse = UpdateResourceResponse'
{
UpdateResourceResponse -> Maybe ProgressEvent
progressEvent :: Prelude.Maybe ProgressEvent,
UpdateResourceResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateResourceResponse -> UpdateResourceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateResourceResponse -> UpdateResourceResponse -> Bool
$c/= :: UpdateResourceResponse -> UpdateResourceResponse -> Bool
== :: UpdateResourceResponse -> UpdateResourceResponse -> Bool
$c== :: UpdateResourceResponse -> UpdateResourceResponse -> Bool
Prelude.Eq, Int -> UpdateResourceResponse -> ShowS
[UpdateResourceResponse] -> ShowS
UpdateResourceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateResourceResponse] -> ShowS
$cshowList :: [UpdateResourceResponse] -> ShowS
show :: UpdateResourceResponse -> String
$cshow :: UpdateResourceResponse -> String
showsPrec :: Int -> UpdateResourceResponse -> ShowS
$cshowsPrec :: Int -> UpdateResourceResponse -> ShowS
Prelude.Show, forall x. Rep UpdateResourceResponse x -> UpdateResourceResponse
forall x. UpdateResourceResponse -> Rep UpdateResourceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateResourceResponse x -> UpdateResourceResponse
$cfrom :: forall x. UpdateResourceResponse -> Rep UpdateResourceResponse x
Prelude.Generic)
newUpdateResourceResponse ::
Prelude.Int ->
UpdateResourceResponse
newUpdateResourceResponse :: Int -> UpdateResourceResponse
newUpdateResourceResponse Int
pHttpStatus_ =
UpdateResourceResponse'
{ $sel:progressEvent:UpdateResourceResponse' :: Maybe ProgressEvent
progressEvent =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateResourceResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateResourceResponse_progressEvent :: Lens.Lens' UpdateResourceResponse (Prelude.Maybe ProgressEvent)
updateResourceResponse_progressEvent :: Lens' UpdateResourceResponse (Maybe ProgressEvent)
updateResourceResponse_progressEvent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResourceResponse' {Maybe ProgressEvent
progressEvent :: Maybe ProgressEvent
$sel:progressEvent:UpdateResourceResponse' :: UpdateResourceResponse -> Maybe ProgressEvent
progressEvent} -> Maybe ProgressEvent
progressEvent) (\s :: UpdateResourceResponse
s@UpdateResourceResponse' {} Maybe ProgressEvent
a -> UpdateResourceResponse
s {$sel:progressEvent:UpdateResourceResponse' :: Maybe ProgressEvent
progressEvent = Maybe ProgressEvent
a} :: UpdateResourceResponse)
updateResourceResponse_httpStatus :: Lens.Lens' UpdateResourceResponse Prelude.Int
updateResourceResponse_httpStatus :: Lens' UpdateResourceResponse Int
updateResourceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateResourceResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateResourceResponse' :: UpdateResourceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateResourceResponse
s@UpdateResourceResponse' {} Int
a -> UpdateResourceResponse
s {$sel:httpStatus:UpdateResourceResponse' :: Int
httpStatus = Int
a} :: UpdateResourceResponse)
instance Prelude.NFData UpdateResourceResponse where
rnf :: UpdateResourceResponse -> ()
rnf UpdateResourceResponse' {Int
Maybe ProgressEvent
httpStatus :: Int
progressEvent :: Maybe ProgressEvent
$sel:httpStatus:UpdateResourceResponse' :: UpdateResourceResponse -> Int
$sel:progressEvent:UpdateResourceResponse' :: UpdateResourceResponse -> Maybe ProgressEvent
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ProgressEvent
progressEvent
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus