{-# 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.Lightsail.DeleteDisk
(
DeleteDisk (..),
newDeleteDisk,
deleteDisk_forceDeleteAddOns,
deleteDisk_diskName,
DeleteDiskResponse (..),
newDeleteDiskResponse,
deleteDiskResponse_operations,
deleteDiskResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DeleteDisk = DeleteDisk'
{
DeleteDisk -> Maybe Bool
forceDeleteAddOns :: Prelude.Maybe Prelude.Bool,
DeleteDisk -> Text
diskName :: Prelude.Text
}
deriving (DeleteDisk -> DeleteDisk -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteDisk -> DeleteDisk -> Bool
$c/= :: DeleteDisk -> DeleteDisk -> Bool
== :: DeleteDisk -> DeleteDisk -> Bool
$c== :: DeleteDisk -> DeleteDisk -> Bool
Prelude.Eq, ReadPrec [DeleteDisk]
ReadPrec DeleteDisk
Int -> ReadS DeleteDisk
ReadS [DeleteDisk]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteDisk]
$creadListPrec :: ReadPrec [DeleteDisk]
readPrec :: ReadPrec DeleteDisk
$creadPrec :: ReadPrec DeleteDisk
readList :: ReadS [DeleteDisk]
$creadList :: ReadS [DeleteDisk]
readsPrec :: Int -> ReadS DeleteDisk
$creadsPrec :: Int -> ReadS DeleteDisk
Prelude.Read, Int -> DeleteDisk -> ShowS
[DeleteDisk] -> ShowS
DeleteDisk -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteDisk] -> ShowS
$cshowList :: [DeleteDisk] -> ShowS
show :: DeleteDisk -> String
$cshow :: DeleteDisk -> String
showsPrec :: Int -> DeleteDisk -> ShowS
$cshowsPrec :: Int -> DeleteDisk -> ShowS
Prelude.Show, forall x. Rep DeleteDisk x -> DeleteDisk
forall x. DeleteDisk -> Rep DeleteDisk x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteDisk x -> DeleteDisk
$cfrom :: forall x. DeleteDisk -> Rep DeleteDisk x
Prelude.Generic)
newDeleteDisk ::
Prelude.Text ->
DeleteDisk
newDeleteDisk :: Text -> DeleteDisk
newDeleteDisk Text
pDiskName_ =
DeleteDisk'
{ $sel:forceDeleteAddOns:DeleteDisk' :: Maybe Bool
forceDeleteAddOns = forall a. Maybe a
Prelude.Nothing,
$sel:diskName:DeleteDisk' :: Text
diskName = Text
pDiskName_
}
deleteDisk_forceDeleteAddOns :: Lens.Lens' DeleteDisk (Prelude.Maybe Prelude.Bool)
deleteDisk_forceDeleteAddOns :: Lens' DeleteDisk (Maybe Bool)
deleteDisk_forceDeleteAddOns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDisk' {Maybe Bool
forceDeleteAddOns :: Maybe Bool
$sel:forceDeleteAddOns:DeleteDisk' :: DeleteDisk -> Maybe Bool
forceDeleteAddOns} -> Maybe Bool
forceDeleteAddOns) (\s :: DeleteDisk
s@DeleteDisk' {} Maybe Bool
a -> DeleteDisk
s {$sel:forceDeleteAddOns:DeleteDisk' :: Maybe Bool
forceDeleteAddOns = Maybe Bool
a} :: DeleteDisk)
deleteDisk_diskName :: Lens.Lens' DeleteDisk Prelude.Text
deleteDisk_diskName :: Lens' DeleteDisk Text
deleteDisk_diskName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDisk' {Text
diskName :: Text
$sel:diskName:DeleteDisk' :: DeleteDisk -> Text
diskName} -> Text
diskName) (\s :: DeleteDisk
s@DeleteDisk' {} Text
a -> DeleteDisk
s {$sel:diskName:DeleteDisk' :: Text
diskName = Text
a} :: DeleteDisk)
instance Core.AWSRequest DeleteDisk where
type AWSResponse DeleteDisk = DeleteDiskResponse
request :: (Service -> Service) -> DeleteDisk -> Request DeleteDisk
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 DeleteDisk
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DeleteDisk)))
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 [Operation] -> Int -> DeleteDiskResponse
DeleteDiskResponse'
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
"operations" 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 DeleteDisk where
hashWithSalt :: Int -> DeleteDisk -> Int
hashWithSalt Int
_salt DeleteDisk' {Maybe Bool
Text
diskName :: Text
forceDeleteAddOns :: Maybe Bool
$sel:diskName:DeleteDisk' :: DeleteDisk -> Text
$sel:forceDeleteAddOns:DeleteDisk' :: DeleteDisk -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
forceDeleteAddOns
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
diskName
instance Prelude.NFData DeleteDisk where
rnf :: DeleteDisk -> ()
rnf DeleteDisk' {Maybe Bool
Text
diskName :: Text
forceDeleteAddOns :: Maybe Bool
$sel:diskName:DeleteDisk' :: DeleteDisk -> Text
$sel:forceDeleteAddOns:DeleteDisk' :: DeleteDisk -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
forceDeleteAddOns
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
diskName
instance Data.ToHeaders DeleteDisk where
toHeaders :: DeleteDisk -> 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
"Lightsail_20161128.DeleteDisk" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DeleteDisk where
toJSON :: DeleteDisk -> Value
toJSON DeleteDisk' {Maybe Bool
Text
diskName :: Text
forceDeleteAddOns :: Maybe Bool
$sel:diskName:DeleteDisk' :: DeleteDisk -> Text
$sel:forceDeleteAddOns:DeleteDisk' :: DeleteDisk -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"forceDeleteAddOns" 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 Bool
forceDeleteAddOns,
forall a. a -> Maybe a
Prelude.Just (Key
"diskName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
diskName)
]
)
instance Data.ToPath DeleteDisk where
toPath :: DeleteDisk -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DeleteDisk where
toQuery :: DeleteDisk -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DeleteDiskResponse = DeleteDiskResponse'
{
DeleteDiskResponse -> Maybe [Operation]
operations :: Prelude.Maybe [Operation],
DeleteDiskResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DeleteDiskResponse -> DeleteDiskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteDiskResponse -> DeleteDiskResponse -> Bool
$c/= :: DeleteDiskResponse -> DeleteDiskResponse -> Bool
== :: DeleteDiskResponse -> DeleteDiskResponse -> Bool
$c== :: DeleteDiskResponse -> DeleteDiskResponse -> Bool
Prelude.Eq, ReadPrec [DeleteDiskResponse]
ReadPrec DeleteDiskResponse
Int -> ReadS DeleteDiskResponse
ReadS [DeleteDiskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteDiskResponse]
$creadListPrec :: ReadPrec [DeleteDiskResponse]
readPrec :: ReadPrec DeleteDiskResponse
$creadPrec :: ReadPrec DeleteDiskResponse
readList :: ReadS [DeleteDiskResponse]
$creadList :: ReadS [DeleteDiskResponse]
readsPrec :: Int -> ReadS DeleteDiskResponse
$creadsPrec :: Int -> ReadS DeleteDiskResponse
Prelude.Read, Int -> DeleteDiskResponse -> ShowS
[DeleteDiskResponse] -> ShowS
DeleteDiskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteDiskResponse] -> ShowS
$cshowList :: [DeleteDiskResponse] -> ShowS
show :: DeleteDiskResponse -> String
$cshow :: DeleteDiskResponse -> String
showsPrec :: Int -> DeleteDiskResponse -> ShowS
$cshowsPrec :: Int -> DeleteDiskResponse -> ShowS
Prelude.Show, forall x. Rep DeleteDiskResponse x -> DeleteDiskResponse
forall x. DeleteDiskResponse -> Rep DeleteDiskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteDiskResponse x -> DeleteDiskResponse
$cfrom :: forall x. DeleteDiskResponse -> Rep DeleteDiskResponse x
Prelude.Generic)
newDeleteDiskResponse ::
Prelude.Int ->
DeleteDiskResponse
newDeleteDiskResponse :: Int -> DeleteDiskResponse
newDeleteDiskResponse Int
pHttpStatus_ =
DeleteDiskResponse'
{ $sel:operations:DeleteDiskResponse' :: Maybe [Operation]
operations = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DeleteDiskResponse' :: Int
httpStatus = Int
pHttpStatus_
}
deleteDiskResponse_operations :: Lens.Lens' DeleteDiskResponse (Prelude.Maybe [Operation])
deleteDiskResponse_operations :: Lens' DeleteDiskResponse (Maybe [Operation])
deleteDiskResponse_operations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDiskResponse' {Maybe [Operation]
operations :: Maybe [Operation]
$sel:operations:DeleteDiskResponse' :: DeleteDiskResponse -> Maybe [Operation]
operations} -> Maybe [Operation]
operations) (\s :: DeleteDiskResponse
s@DeleteDiskResponse' {} Maybe [Operation]
a -> DeleteDiskResponse
s {$sel:operations:DeleteDiskResponse' :: Maybe [Operation]
operations = Maybe [Operation]
a} :: DeleteDiskResponse) 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
deleteDiskResponse_httpStatus :: Lens.Lens' DeleteDiskResponse Prelude.Int
deleteDiskResponse_httpStatus :: Lens' DeleteDiskResponse Int
deleteDiskResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDiskResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteDiskResponse' :: DeleteDiskResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteDiskResponse
s@DeleteDiskResponse' {} Int
a -> DeleteDiskResponse
s {$sel:httpStatus:DeleteDiskResponse' :: Int
httpStatus = Int
a} :: DeleteDiskResponse)
instance Prelude.NFData DeleteDiskResponse where
rnf :: DeleteDiskResponse -> ()
rnf DeleteDiskResponse' {Int
Maybe [Operation]
httpStatus :: Int
operations :: Maybe [Operation]
$sel:httpStatus:DeleteDiskResponse' :: DeleteDiskResponse -> Int
$sel:operations:DeleteDiskResponse' :: DeleteDiskResponse -> Maybe [Operation]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Operation]
operations
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus