{-# 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.DeleteResource
(
DeleteResource (..),
newDeleteResource,
deleteResource_clientToken,
deleteResource_roleArn,
deleteResource_typeVersionId,
deleteResource_typeName,
deleteResource_identifier,
DeleteResourceResponse (..),
newDeleteResourceResponse,
deleteResourceResponse_progressEvent,
deleteResourceResponse_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 DeleteResource = DeleteResource'
{
DeleteResource -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
DeleteResource -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
DeleteResource -> Maybe Text
typeVersionId :: Prelude.Maybe Prelude.Text,
DeleteResource -> Text
typeName :: Prelude.Text,
DeleteResource -> Text
identifier :: Prelude.Text
}
deriving (DeleteResource -> DeleteResource -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteResource -> DeleteResource -> Bool
$c/= :: DeleteResource -> DeleteResource -> Bool
== :: DeleteResource -> DeleteResource -> Bool
$c== :: DeleteResource -> DeleteResource -> Bool
Prelude.Eq, ReadPrec [DeleteResource]
ReadPrec DeleteResource
Int -> ReadS DeleteResource
ReadS [DeleteResource]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteResource]
$creadListPrec :: ReadPrec [DeleteResource]
readPrec :: ReadPrec DeleteResource
$creadPrec :: ReadPrec DeleteResource
readList :: ReadS [DeleteResource]
$creadList :: ReadS [DeleteResource]
readsPrec :: Int -> ReadS DeleteResource
$creadsPrec :: Int -> ReadS DeleteResource
Prelude.Read, Int -> DeleteResource -> ShowS
[DeleteResource] -> ShowS
DeleteResource -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteResource] -> ShowS
$cshowList :: [DeleteResource] -> ShowS
show :: DeleteResource -> String
$cshow :: DeleteResource -> String
showsPrec :: Int -> DeleteResource -> ShowS
$cshowsPrec :: Int -> DeleteResource -> ShowS
Prelude.Show, forall x. Rep DeleteResource x -> DeleteResource
forall x. DeleteResource -> Rep DeleteResource x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteResource x -> DeleteResource
$cfrom :: forall x. DeleteResource -> Rep DeleteResource x
Prelude.Generic)
newDeleteResource ::
Prelude.Text ->
Prelude.Text ->
DeleteResource
newDeleteResource :: Text -> Text -> DeleteResource
newDeleteResource Text
pTypeName_ Text
pIdentifier_ =
DeleteResource'
{ $sel:clientToken:DeleteResource' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:roleArn:DeleteResource' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
$sel:typeVersionId:DeleteResource' :: Maybe Text
typeVersionId = forall a. Maybe a
Prelude.Nothing,
$sel:typeName:DeleteResource' :: Text
typeName = Text
pTypeName_,
$sel:identifier:DeleteResource' :: Text
identifier = Text
pIdentifier_
}
deleteResource_clientToken :: Lens.Lens' DeleteResource (Prelude.Maybe Prelude.Text)
deleteResource_clientToken :: Lens' DeleteResource (Maybe Text)
deleteResource_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResource' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:DeleteResource' :: DeleteResource -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: DeleteResource
s@DeleteResource' {} Maybe Text
a -> DeleteResource
s {$sel:clientToken:DeleteResource' :: Maybe Text
clientToken = Maybe Text
a} :: DeleteResource)
deleteResource_roleArn :: Lens.Lens' DeleteResource (Prelude.Maybe Prelude.Text)
deleteResource_roleArn :: Lens' DeleteResource (Maybe Text)
deleteResource_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResource' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DeleteResource' :: DeleteResource -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DeleteResource
s@DeleteResource' {} Maybe Text
a -> DeleteResource
s {$sel:roleArn:DeleteResource' :: Maybe Text
roleArn = Maybe Text
a} :: DeleteResource)
deleteResource_typeVersionId :: Lens.Lens' DeleteResource (Prelude.Maybe Prelude.Text)
deleteResource_typeVersionId :: Lens' DeleteResource (Maybe Text)
deleteResource_typeVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResource' {Maybe Text
typeVersionId :: Maybe Text
$sel:typeVersionId:DeleteResource' :: DeleteResource -> Maybe Text
typeVersionId} -> Maybe Text
typeVersionId) (\s :: DeleteResource
s@DeleteResource' {} Maybe Text
a -> DeleteResource
s {$sel:typeVersionId:DeleteResource' :: Maybe Text
typeVersionId = Maybe Text
a} :: DeleteResource)
deleteResource_typeName :: Lens.Lens' DeleteResource Prelude.Text
deleteResource_typeName :: Lens' DeleteResource Text
deleteResource_typeName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResource' {Text
typeName :: Text
$sel:typeName:DeleteResource' :: DeleteResource -> Text
typeName} -> Text
typeName) (\s :: DeleteResource
s@DeleteResource' {} Text
a -> DeleteResource
s {$sel:typeName:DeleteResource' :: Text
typeName = Text
a} :: DeleteResource)
deleteResource_identifier :: Lens.Lens' DeleteResource Prelude.Text
deleteResource_identifier :: Lens' DeleteResource Text
deleteResource_identifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResource' {Text
identifier :: Text
$sel:identifier:DeleteResource' :: DeleteResource -> Text
identifier} -> Text
identifier) (\s :: DeleteResource
s@DeleteResource' {} Text
a -> DeleteResource
s {$sel:identifier:DeleteResource' :: Text
identifier = Text
a} :: DeleteResource)
instance Core.AWSRequest DeleteResource where
type
AWSResponse DeleteResource =
DeleteResourceResponse
request :: (Service -> Service) -> DeleteResource -> Request DeleteResource
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 DeleteResource
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DeleteResource)))
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 -> DeleteResourceResponse
DeleteResourceResponse'
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 DeleteResource where
hashWithSalt :: Int -> DeleteResource -> Int
hashWithSalt Int
_salt DeleteResource' {Maybe Text
Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:identifier:DeleteResource' :: DeleteResource -> Text
$sel:typeName:DeleteResource' :: DeleteResource -> Text
$sel:typeVersionId:DeleteResource' :: DeleteResource -> Maybe Text
$sel:roleArn:DeleteResource' :: DeleteResource -> Maybe Text
$sel:clientToken:DeleteResource' :: DeleteResource -> 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
instance Prelude.NFData DeleteResource where
rnf :: DeleteResource -> ()
rnf DeleteResource' {Maybe Text
Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:identifier:DeleteResource' :: DeleteResource -> Text
$sel:typeName:DeleteResource' :: DeleteResource -> Text
$sel:typeVersionId:DeleteResource' :: DeleteResource -> Maybe Text
$sel:roleArn:DeleteResource' :: DeleteResource -> Maybe Text
$sel:clientToken:DeleteResource' :: DeleteResource -> 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
instance Data.ToHeaders DeleteResource where
toHeaders :: DeleteResource -> 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.DeleteResource" ::
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 DeleteResource where
toJSON :: DeleteResource -> Value
toJSON DeleteResource' {Maybe Text
Text
identifier :: Text
typeName :: Text
typeVersionId :: Maybe Text
roleArn :: Maybe Text
clientToken :: Maybe Text
$sel:identifier:DeleteResource' :: DeleteResource -> Text
$sel:typeName:DeleteResource' :: DeleteResource -> Text
$sel:typeVersionId:DeleteResource' :: DeleteResource -> Maybe Text
$sel:roleArn:DeleteResource' :: DeleteResource -> Maybe Text
$sel:clientToken:DeleteResource' :: DeleteResource -> 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)
]
)
instance Data.ToPath DeleteResource where
toPath :: DeleteResource -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DeleteResource where
toQuery :: DeleteResource -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DeleteResourceResponse = DeleteResourceResponse'
{
DeleteResourceResponse -> Maybe ProgressEvent
progressEvent :: Prelude.Maybe ProgressEvent,
DeleteResourceResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DeleteResourceResponse -> DeleteResourceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteResourceResponse -> DeleteResourceResponse -> Bool
$c/= :: DeleteResourceResponse -> DeleteResourceResponse -> Bool
== :: DeleteResourceResponse -> DeleteResourceResponse -> Bool
$c== :: DeleteResourceResponse -> DeleteResourceResponse -> Bool
Prelude.Eq, Int -> DeleteResourceResponse -> ShowS
[DeleteResourceResponse] -> ShowS
DeleteResourceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteResourceResponse] -> ShowS
$cshowList :: [DeleteResourceResponse] -> ShowS
show :: DeleteResourceResponse -> String
$cshow :: DeleteResourceResponse -> String
showsPrec :: Int -> DeleteResourceResponse -> ShowS
$cshowsPrec :: Int -> DeleteResourceResponse -> ShowS
Prelude.Show, forall x. Rep DeleteResourceResponse x -> DeleteResourceResponse
forall x. DeleteResourceResponse -> Rep DeleteResourceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteResourceResponse x -> DeleteResourceResponse
$cfrom :: forall x. DeleteResourceResponse -> Rep DeleteResourceResponse x
Prelude.Generic)
newDeleteResourceResponse ::
Prelude.Int ->
DeleteResourceResponse
newDeleteResourceResponse :: Int -> DeleteResourceResponse
newDeleteResourceResponse Int
pHttpStatus_ =
DeleteResourceResponse'
{ $sel:progressEvent:DeleteResourceResponse' :: Maybe ProgressEvent
progressEvent =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DeleteResourceResponse' :: Int
httpStatus = Int
pHttpStatus_
}
deleteResourceResponse_progressEvent :: Lens.Lens' DeleteResourceResponse (Prelude.Maybe ProgressEvent)
deleteResourceResponse_progressEvent :: Lens' DeleteResourceResponse (Maybe ProgressEvent)
deleteResourceResponse_progressEvent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourceResponse' {Maybe ProgressEvent
progressEvent :: Maybe ProgressEvent
$sel:progressEvent:DeleteResourceResponse' :: DeleteResourceResponse -> Maybe ProgressEvent
progressEvent} -> Maybe ProgressEvent
progressEvent) (\s :: DeleteResourceResponse
s@DeleteResourceResponse' {} Maybe ProgressEvent
a -> DeleteResourceResponse
s {$sel:progressEvent:DeleteResourceResponse' :: Maybe ProgressEvent
progressEvent = Maybe ProgressEvent
a} :: DeleteResourceResponse)
deleteResourceResponse_httpStatus :: Lens.Lens' DeleteResourceResponse Prelude.Int
deleteResourceResponse_httpStatus :: Lens' DeleteResourceResponse Int
deleteResourceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourceResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteResourceResponse' :: DeleteResourceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteResourceResponse
s@DeleteResourceResponse' {} Int
a -> DeleteResourceResponse
s {$sel:httpStatus:DeleteResourceResponse' :: Int
httpStatus = Int
a} :: DeleteResourceResponse)
instance Prelude.NFData DeleteResourceResponse where
rnf :: DeleteResourceResponse -> ()
rnf DeleteResourceResponse' {Int
Maybe ProgressEvent
httpStatus :: Int
progressEvent :: Maybe ProgressEvent
$sel:httpStatus:DeleteResourceResponse' :: DeleteResourceResponse -> Int
$sel:progressEvent:DeleteResourceResponse' :: DeleteResourceResponse -> 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