{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module Google.Cloud.Compute.Disk
( listDisks
, insertDisk
, DiskResponse (..)
, InsertDiskOps (..)
, InsertDiskResponse
, Operation (..)
, deleteDisk
, createDiskSnapshot
, CreateSnapshotResp
, CreateSnapshotOps (..)
, Warning (..)
, WarningData (..)
, defaultCreateSnapshotOps
, defaultInsertOps
) where
import Data.Aeson
import qualified Data.ByteString.Char8 as BS
import Data.Map (Map)
import Google.Cloud.Common.Core
import Google.Cloud.Compute.Common
import Network.HTTP.Simple
data Warning = Warning
{ Warning -> String
code :: String
, Warning -> String
message :: String
, Warning -> Maybe [WarningData]
data_ :: Maybe [WarningData]
}
deriving (Int -> Warning -> ShowS
[Warning] -> ShowS
Warning -> String
(Int -> Warning -> ShowS)
-> (Warning -> String) -> ([Warning] -> ShowS) -> Show Warning
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Warning -> ShowS
showsPrec :: Int -> Warning -> ShowS
$cshow :: Warning -> String
show :: Warning -> String
$cshowList :: [Warning] -> ShowS
showList :: [Warning] -> ShowS
Show, Warning -> Warning -> Bool
(Warning -> Warning -> Bool)
-> (Warning -> Warning -> Bool) -> Eq Warning
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Warning -> Warning -> Bool
== :: Warning -> Warning -> Bool
$c/= :: Warning -> Warning -> Bool
/= :: Warning -> Warning -> Bool
Eq)
data WarningData = WarningData
{ WarningData -> String
key :: String
, WarningData -> String
value :: String
}
deriving (Int -> WarningData -> ShowS
[WarningData] -> ShowS
WarningData -> String
(Int -> WarningData -> ShowS)
-> (WarningData -> String)
-> ([WarningData] -> ShowS)
-> Show WarningData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> WarningData -> ShowS
showsPrec :: Int -> WarningData -> ShowS
$cshow :: WarningData -> String
show :: WarningData -> String
$cshowList :: [WarningData] -> ShowS
showList :: [WarningData] -> ShowS
Show, WarningData -> WarningData -> Bool
(WarningData -> WarningData -> Bool)
-> (WarningData -> WarningData -> Bool) -> Eq WarningData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: WarningData -> WarningData -> Bool
== :: WarningData -> WarningData -> Bool
$c/= :: WarningData -> WarningData -> Bool
/= :: WarningData -> WarningData -> Bool
Eq)
data DiskResponse = DiskResponse
{ DiskResponse -> Maybe String
kind :: Maybe String
, DiskResponse -> Maybe String
id :: Maybe String
, DiskResponse -> Maybe [DiskItem]
items :: Maybe [DiskItem]
, DiskResponse -> Maybe String
nextPageToken :: Maybe String
, DiskResponse -> Maybe String
selfLink :: Maybe String
, DiskResponse -> Maybe Warning
warning :: Maybe Warning
}
deriving (Int -> DiskResponse -> ShowS
[DiskResponse] -> ShowS
DiskResponse -> String
(Int -> DiskResponse -> ShowS)
-> (DiskResponse -> String)
-> ([DiskResponse] -> ShowS)
-> Show DiskResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DiskResponse -> ShowS
showsPrec :: Int -> DiskResponse -> ShowS
$cshow :: DiskResponse -> String
show :: DiskResponse -> String
$cshowList :: [DiskResponse] -> ShowS
showList :: [DiskResponse] -> ShowS
Show, DiskResponse -> DiskResponse -> Bool
(DiskResponse -> DiskResponse -> Bool)
-> (DiskResponse -> DiskResponse -> Bool) -> Eq DiskResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DiskResponse -> DiskResponse -> Bool
== :: DiskResponse -> DiskResponse -> Bool
$c/= :: DiskResponse -> DiskResponse -> Bool
/= :: DiskResponse -> DiskResponse -> Bool
Eq)
data DiskItem = DiskItem
{ DiskItem -> Maybe String
kind :: Maybe String
, DiskItem -> Maybe String
id :: Maybe String
, DiskItem -> Maybe String
creationTimestamp :: Maybe String
, DiskItem -> Maybe String
name :: Maybe String
, DiskItem -> Maybe String
description :: Maybe String
, DiskItem -> Maybe String
sizeGb :: Maybe String
, DiskItem -> Maybe String
zone :: Maybe String
, DiskItem -> Maybe String
status :: Maybe String
, DiskItem -> Maybe String
sourceSnapshot :: Maybe String
, DiskItem -> Maybe String
sourceSnapshotId :: Maybe String
, DiskItem -> Maybe String
sourceImage :: Maybe String
, DiskItem -> Maybe String
sourceImageId :: Maybe String
, DiskItem -> Maybe String
type_ :: Maybe String
, DiskItem -> Maybe (Map String String)
labels :: Maybe (Map String String)
, DiskItem -> Maybe String
labelFingerprint :: Maybe String
, DiskItem -> Maybe [String]
licenses :: Maybe [String]
, DiskItem -> Maybe [String]
users :: Maybe [String]
, DiskItem -> Maybe [GuestOsFeature]
guestOsFeatures :: Maybe [GuestOsFeature]
, DiskItem -> Maybe EncryptionKey
diskEncryptionKey :: Maybe EncryptionKey
, DiskItem -> Maybe String
sourceDisk :: Maybe String
, DiskItem -> Maybe String
sourceDiskId :: Maybe String
, DiskItem -> Maybe String
physicalBlockSizeBytes :: Maybe String
, DiskItem -> Maybe String
provisionedIops :: Maybe String
, DiskItem -> Maybe [String]
resourcePolicies :: Maybe [String]
, DiskItem -> Maybe String
selfLink :: Maybe String
}
deriving (Int -> DiskItem -> ShowS
[DiskItem] -> ShowS
DiskItem -> String
(Int -> DiskItem -> ShowS)
-> (DiskItem -> String) -> ([DiskItem] -> ShowS) -> Show DiskItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DiskItem -> ShowS
showsPrec :: Int -> DiskItem -> ShowS
$cshow :: DiskItem -> String
show :: DiskItem -> String
$cshowList :: [DiskItem] -> ShowS
showList :: [DiskItem] -> ShowS
Show, DiskItem -> DiskItem -> Bool
(DiskItem -> DiskItem -> Bool)
-> (DiskItem -> DiskItem -> Bool) -> Eq DiskItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DiskItem -> DiskItem -> Bool
== :: DiskItem -> DiskItem -> Bool
$c/= :: DiskItem -> DiskItem -> Bool
/= :: DiskItem -> DiskItem -> Bool
Eq)
data GuestOsFeature = GuestOsFeature
{ GuestOsFeature -> String
type_ :: String
}
deriving (Int -> GuestOsFeature -> ShowS
[GuestOsFeature] -> ShowS
GuestOsFeature -> String
(Int -> GuestOsFeature -> ShowS)
-> (GuestOsFeature -> String)
-> ([GuestOsFeature] -> ShowS)
-> Show GuestOsFeature
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GuestOsFeature -> ShowS
showsPrec :: Int -> GuestOsFeature -> ShowS
$cshow :: GuestOsFeature -> String
show :: GuestOsFeature -> String
$cshowList :: [GuestOsFeature] -> ShowS
showList :: [GuestOsFeature] -> ShowS
Show, GuestOsFeature -> GuestOsFeature -> Bool
(GuestOsFeature -> GuestOsFeature -> Bool)
-> (GuestOsFeature -> GuestOsFeature -> Bool) -> Eq GuestOsFeature
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GuestOsFeature -> GuestOsFeature -> Bool
== :: GuestOsFeature -> GuestOsFeature -> Bool
$c/= :: GuestOsFeature -> GuestOsFeature -> Bool
/= :: GuestOsFeature -> GuestOsFeature -> Bool
Eq)
data EncryptionKey = EncryptionKey
{ EncryptionKey -> Maybe String
rawKey :: Maybe String
, EncryptionKey -> Maybe String
rsaEncryptedKey :: Maybe String
, EncryptionKey -> Maybe String
sha256 :: Maybe String
}
deriving (Int -> EncryptionKey -> ShowS
[EncryptionKey] -> ShowS
EncryptionKey -> String
(Int -> EncryptionKey -> ShowS)
-> (EncryptionKey -> String)
-> ([EncryptionKey] -> ShowS)
-> Show EncryptionKey
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EncryptionKey -> ShowS
showsPrec :: Int -> EncryptionKey -> ShowS
$cshow :: EncryptionKey -> String
show :: EncryptionKey -> String
$cshowList :: [EncryptionKey] -> ShowS
showList :: [EncryptionKey] -> ShowS
Show, EncryptionKey -> EncryptionKey -> Bool
(EncryptionKey -> EncryptionKey -> Bool)
-> (EncryptionKey -> EncryptionKey -> Bool) -> Eq EncryptionKey
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EncryptionKey -> EncryptionKey -> Bool
== :: EncryptionKey -> EncryptionKey -> Bool
$c/= :: EncryptionKey -> EncryptionKey -> Bool
/= :: EncryptionKey -> EncryptionKey -> Bool
Eq)
data Operation = Operation
{ CreateSnapshotResp -> Maybe String
id :: Maybe String
, CreateSnapshotResp -> Maybe String
name :: Maybe String
, CreateSnapshotResp -> Maybe String
zone :: Maybe String
, CreateSnapshotResp -> Maybe String
operationType :: Maybe String
, CreateSnapshotResp -> Maybe String
targetLink :: Maybe String
, CreateSnapshotResp -> Maybe String
status :: Maybe String
, CreateSnapshotResp -> Maybe Int
progress :: Maybe Int
, CreateSnapshotResp -> Maybe String
insertTime :: Maybe String
, CreateSnapshotResp -> Maybe String
startTime :: Maybe String
, CreateSnapshotResp -> Maybe String
endTime :: Maybe String
, CreateSnapshotResp -> Maybe OperationError
error :: Maybe OperationError
, CreateSnapshotResp -> Maybe [Warning]
warnings :: Maybe [Warning]
, CreateSnapshotResp -> Maybe String
selfLink :: Maybe String
}
deriving (Int -> CreateSnapshotResp -> ShowS
[CreateSnapshotResp] -> ShowS
CreateSnapshotResp -> String
(Int -> CreateSnapshotResp -> ShowS)
-> (CreateSnapshotResp -> String)
-> ([CreateSnapshotResp] -> ShowS)
-> Show CreateSnapshotResp
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateSnapshotResp -> ShowS
showsPrec :: Int -> CreateSnapshotResp -> ShowS
$cshow :: CreateSnapshotResp -> String
show :: CreateSnapshotResp -> String
$cshowList :: [CreateSnapshotResp] -> ShowS
showList :: [CreateSnapshotResp] -> ShowS
Show, CreateSnapshotResp -> CreateSnapshotResp -> Bool
(CreateSnapshotResp -> CreateSnapshotResp -> Bool)
-> (CreateSnapshotResp -> CreateSnapshotResp -> Bool)
-> Eq CreateSnapshotResp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreateSnapshotResp -> CreateSnapshotResp -> Bool
== :: CreateSnapshotResp -> CreateSnapshotResp -> Bool
$c/= :: CreateSnapshotResp -> CreateSnapshotResp -> Bool
/= :: CreateSnapshotResp -> CreateSnapshotResp -> Bool
Eq)
data OperationError = OperationError
{ OperationError -> [ErrorDetail]
errors :: [ErrorDetail]
}
deriving (Int -> OperationError -> ShowS
[OperationError] -> ShowS
OperationError -> String
(Int -> OperationError -> ShowS)
-> (OperationError -> String)
-> ([OperationError] -> ShowS)
-> Show OperationError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OperationError -> ShowS
showsPrec :: Int -> OperationError -> ShowS
$cshow :: OperationError -> String
show :: OperationError -> String
$cshowList :: [OperationError] -> ShowS
showList :: [OperationError] -> ShowS
Show, OperationError -> OperationError -> Bool
(OperationError -> OperationError -> Bool)
-> (OperationError -> OperationError -> Bool) -> Eq OperationError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OperationError -> OperationError -> Bool
== :: OperationError -> OperationError -> Bool
$c/= :: OperationError -> OperationError -> Bool
/= :: OperationError -> OperationError -> Bool
Eq)
data ErrorDetail = ErrorDetail
{ ErrorDetail -> String
code :: String
, ErrorDetail -> String
message :: String
, ErrorDetail -> Maybe String
location :: Maybe String
}
deriving (Int -> ErrorDetail -> ShowS
[ErrorDetail] -> ShowS
ErrorDetail -> String
(Int -> ErrorDetail -> ShowS)
-> (ErrorDetail -> String)
-> ([ErrorDetail] -> ShowS)
-> Show ErrorDetail
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ErrorDetail -> ShowS
showsPrec :: Int -> ErrorDetail -> ShowS
$cshow :: ErrorDetail -> String
show :: ErrorDetail -> String
$cshowList :: [ErrorDetail] -> ShowS
showList :: [ErrorDetail] -> ShowS
Show, ErrorDetail -> ErrorDetail -> Bool
(ErrorDetail -> ErrorDetail -> Bool)
-> (ErrorDetail -> ErrorDetail -> Bool) -> Eq ErrorDetail
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ErrorDetail -> ErrorDetail -> Bool
== :: ErrorDetail -> ErrorDetail -> Bool
$c/= :: ErrorDetail -> ErrorDetail -> Bool
/= :: ErrorDetail -> ErrorDetail -> Bool
Eq)
data InsertDiskOps = InsertDiskOps
{ InsertDiskOps -> String
name :: String
, InsertDiskOps -> String
sizeGb :: String
, InsertDiskOps -> Maybe String
description :: Maybe String
, InsertDiskOps -> Maybe String
type_ :: Maybe String
, InsertDiskOps -> Maybe String
sourceImage :: Maybe String
, InsertDiskOps -> Maybe String
sourceSnapshot :: Maybe String
, InsertDiskOps -> Maybe (Map String String)
labels :: Maybe (Map String String)
, InsertDiskOps -> Maybe [GuestOsFeature]
guestOsFeatures :: Maybe [GuestOsFeature]
, InsertDiskOps -> Maybe EncryptionKey
diskEncryptionKey :: Maybe EncryptionKey
}
deriving (Int -> InsertDiskOps -> ShowS
[InsertDiskOps] -> ShowS
InsertDiskOps -> String
(Int -> InsertDiskOps -> ShowS)
-> (InsertDiskOps -> String)
-> ([InsertDiskOps] -> ShowS)
-> Show InsertDiskOps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InsertDiskOps -> ShowS
showsPrec :: Int -> InsertDiskOps -> ShowS
$cshow :: InsertDiskOps -> String
show :: InsertDiskOps -> String
$cshowList :: [InsertDiskOps] -> ShowS
showList :: [InsertDiskOps] -> ShowS
Show, InsertDiskOps -> InsertDiskOps -> Bool
(InsertDiskOps -> InsertDiskOps -> Bool)
-> (InsertDiskOps -> InsertDiskOps -> Bool) -> Eq InsertDiskOps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InsertDiskOps -> InsertDiskOps -> Bool
== :: InsertDiskOps -> InsertDiskOps -> Bool
$c/= :: InsertDiskOps -> InsertDiskOps -> Bool
/= :: InsertDiskOps -> InsertDiskOps -> Bool
Eq)
type InsertDiskResponse = Operation
data CreateSnapshotOps = CreateSnapshotOps
{ CreateSnapshotOps -> String
name :: String
, CreateSnapshotOps -> Maybe String
description :: Maybe String
, CreateSnapshotOps -> Maybe (Map String String)
labels :: Maybe (Map String String)
, CreateSnapshotOps -> Maybe [String]
storageLocations :: Maybe [String]
, CreateSnapshotOps -> Maybe EncryptionKey
snapshotEncryptionKey :: Maybe EncryptionKey
}
deriving (Int -> CreateSnapshotOps -> ShowS
[CreateSnapshotOps] -> ShowS
CreateSnapshotOps -> String
(Int -> CreateSnapshotOps -> ShowS)
-> (CreateSnapshotOps -> String)
-> ([CreateSnapshotOps] -> ShowS)
-> Show CreateSnapshotOps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateSnapshotOps -> ShowS
showsPrec :: Int -> CreateSnapshotOps -> ShowS
$cshow :: CreateSnapshotOps -> String
show :: CreateSnapshotOps -> String
$cshowList :: [CreateSnapshotOps] -> ShowS
showList :: [CreateSnapshotOps] -> ShowS
Show, CreateSnapshotOps -> CreateSnapshotOps -> Bool
(CreateSnapshotOps -> CreateSnapshotOps -> Bool)
-> (CreateSnapshotOps -> CreateSnapshotOps -> Bool)
-> Eq CreateSnapshotOps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreateSnapshotOps -> CreateSnapshotOps -> Bool
== :: CreateSnapshotOps -> CreateSnapshotOps -> Bool
$c/= :: CreateSnapshotOps -> CreateSnapshotOps -> Bool
/= :: CreateSnapshotOps -> CreateSnapshotOps -> Bool
Eq)
type CreateSnapshotResp = Operation
data ListDisksQuery = ListDisksQuery
{ ListDisksQuery -> Maybe String
filter_ :: Maybe String
, ListDisksQuery -> Maybe Int
maxResults :: Maybe Int
, ListDisksQuery -> Maybe String
pageToken :: Maybe String
, ListDisksQuery -> Maybe String
orderBy :: Maybe String
}
deriving (Int -> ListDisksQuery -> ShowS
[ListDisksQuery] -> ShowS
ListDisksQuery -> String
(Int -> ListDisksQuery -> ShowS)
-> (ListDisksQuery -> String)
-> ([ListDisksQuery] -> ShowS)
-> Show ListDisksQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListDisksQuery -> ShowS
showsPrec :: Int -> ListDisksQuery -> ShowS
$cshow :: ListDisksQuery -> String
show :: ListDisksQuery -> String
$cshowList :: [ListDisksQuery] -> ShowS
showList :: [ListDisksQuery] -> ShowS
Show, ListDisksQuery -> ListDisksQuery -> Bool
(ListDisksQuery -> ListDisksQuery -> Bool)
-> (ListDisksQuery -> ListDisksQuery -> Bool) -> Eq ListDisksQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListDisksQuery -> ListDisksQuery -> Bool
== :: ListDisksQuery -> ListDisksQuery -> Bool
$c/= :: ListDisksQuery -> ListDisksQuery -> Bool
/= :: ListDisksQuery -> ListDisksQuery -> Bool
Eq)
data InsertDiskQuery = InsertDiskQuery
{ InsertDiskQuery -> Maybe String
sourceImage :: Maybe String
, InsertDiskQuery -> Maybe EncryptionKey
sourceImageEncryptionKey :: Maybe EncryptionKey
}
deriving (Int -> InsertDiskQuery -> ShowS
[InsertDiskQuery] -> ShowS
InsertDiskQuery -> String
(Int -> InsertDiskQuery -> ShowS)
-> (InsertDiskQuery -> String)
-> ([InsertDiskQuery] -> ShowS)
-> Show InsertDiskQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InsertDiskQuery -> ShowS
showsPrec :: Int -> InsertDiskQuery -> ShowS
$cshow :: InsertDiskQuery -> String
show :: InsertDiskQuery -> String
$cshowList :: [InsertDiskQuery] -> ShowS
showList :: [InsertDiskQuery] -> ShowS
Show, InsertDiskQuery -> InsertDiskQuery -> Bool
(InsertDiskQuery -> InsertDiskQuery -> Bool)
-> (InsertDiskQuery -> InsertDiskQuery -> Bool)
-> Eq InsertDiskQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InsertDiskQuery -> InsertDiskQuery -> Bool
== :: InsertDiskQuery -> InsertDiskQuery -> Bool
$c/= :: InsertDiskQuery -> InsertDiskQuery -> Bool
/= :: InsertDiskQuery -> InsertDiskQuery -> Bool
Eq)
data DeleteDiskQuery = DeleteDiskQuery
{ DeleteDiskQuery -> Maybe Bool
force :: Maybe Bool
}
deriving (Int -> DeleteDiskQuery -> ShowS
[DeleteDiskQuery] -> ShowS
DeleteDiskQuery -> String
(Int -> DeleteDiskQuery -> ShowS)
-> (DeleteDiskQuery -> String)
-> ([DeleteDiskQuery] -> ShowS)
-> Show DeleteDiskQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DeleteDiskQuery -> ShowS
showsPrec :: Int -> DeleteDiskQuery -> ShowS
$cshow :: DeleteDiskQuery -> String
show :: DeleteDiskQuery -> String
$cshowList :: [DeleteDiskQuery] -> ShowS
showList :: [DeleteDiskQuery] -> ShowS
Show, DeleteDiskQuery -> DeleteDiskQuery -> Bool
(DeleteDiskQuery -> DeleteDiskQuery -> Bool)
-> (DeleteDiskQuery -> DeleteDiskQuery -> Bool)
-> Eq DeleteDiskQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DeleteDiskQuery -> DeleteDiskQuery -> Bool
== :: DeleteDiskQuery -> DeleteDiskQuery -> Bool
$c/= :: DeleteDiskQuery -> DeleteDiskQuery -> Bool
/= :: DeleteDiskQuery -> DeleteDiskQuery -> Bool
Eq)
data CreateSnapshotQuery = CreateSnapshotQuery
{ CreateSnapshotQuery -> Maybe Bool
guestFlush :: Maybe Bool
}
deriving (Int -> CreateSnapshotQuery -> ShowS
[CreateSnapshotQuery] -> ShowS
CreateSnapshotQuery -> String
(Int -> CreateSnapshotQuery -> ShowS)
-> (CreateSnapshotQuery -> String)
-> ([CreateSnapshotQuery] -> ShowS)
-> Show CreateSnapshotQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateSnapshotQuery -> ShowS
showsPrec :: Int -> CreateSnapshotQuery -> ShowS
$cshow :: CreateSnapshotQuery -> String
show :: CreateSnapshotQuery -> String
$cshowList :: [CreateSnapshotQuery] -> ShowS
showList :: [CreateSnapshotQuery] -> ShowS
Show, CreateSnapshotQuery -> CreateSnapshotQuery -> Bool
(CreateSnapshotQuery -> CreateSnapshotQuery -> Bool)
-> (CreateSnapshotQuery -> CreateSnapshotQuery -> Bool)
-> Eq CreateSnapshotQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreateSnapshotQuery -> CreateSnapshotQuery -> Bool
== :: CreateSnapshotQuery -> CreateSnapshotQuery -> Bool
$c/= :: CreateSnapshotQuery -> CreateSnapshotQuery -> Bool
/= :: CreateSnapshotQuery -> CreateSnapshotQuery -> Bool
Eq)
instance FromJSON WarningData where
parseJSON :: Value -> Parser WarningData
parseJSON = String
-> (Object -> Parser WarningData) -> Value -> Parser WarningData
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"WarningData" ((Object -> Parser WarningData) -> Value -> Parser WarningData)
-> (Object -> Parser WarningData) -> Value -> Parser WarningData
forall a b. (a -> b) -> a -> b
$ \Object
v ->
String -> String -> WarningData
WarningData
(String -> String -> WarningData)
-> Parser String -> Parser (String -> WarningData)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"key"
Parser (String -> WarningData)
-> Parser String -> Parser WarningData
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"value"
instance ToJSON WarningData where
toJSON :: WarningData -> Value
toJSON (WarningData String
key String
value) =
[Pair] -> Value
object
[ Key
"key" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
key
, Key
"value" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
value
]
instance FromJSON Warning where
parseJSON :: Value -> Parser Warning
parseJSON = String -> (Object -> Parser Warning) -> Value -> Parser Warning
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Warning" ((Object -> Parser Warning) -> Value -> Parser Warning)
-> (Object -> Parser Warning) -> Value -> Parser Warning
forall a b. (a -> b) -> a -> b
$ \Object
v ->
String -> String -> Maybe [WarningData] -> Warning
Warning
(String -> String -> Maybe [WarningData] -> Warning)
-> Parser String
-> Parser (String -> Maybe [WarningData] -> Warning)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"code"
Parser (String -> Maybe [WarningData] -> Warning)
-> Parser String -> Parser (Maybe [WarningData] -> Warning)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"message"
Parser (Maybe [WarningData] -> Warning)
-> Parser (Maybe [WarningData]) -> Parser Warning
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [WarningData])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"data"
instance ToJSON Warning where
toJSON :: Warning -> Value
toJSON (Warning String
code String
message Maybe [WarningData]
data_) =
[Pair] -> Value
object
[ Key
"code" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
code
, Key
"message" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
message
, Key
"data" Key -> Maybe [WarningData] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [WarningData]
data_
]
instance FromJSON GuestOsFeature where
parseJSON :: Value -> Parser GuestOsFeature
parseJSON = String
-> (Object -> Parser GuestOsFeature)
-> Value
-> Parser GuestOsFeature
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"GuestOsFeature" ((Object -> Parser GuestOsFeature)
-> Value -> Parser GuestOsFeature)
-> (Object -> Parser GuestOsFeature)
-> Value
-> Parser GuestOsFeature
forall a b. (a -> b) -> a -> b
$ \Object
v ->
String -> GuestOsFeature
GuestOsFeature
(String -> GuestOsFeature)
-> Parser String -> Parser GuestOsFeature
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"type"
instance ToJSON GuestOsFeature where
toJSON :: GuestOsFeature -> Value
toJSON (GuestOsFeature String
type_) =
[Pair] -> Value
object
[ Key
"type" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
type_
]
instance FromJSON EncryptionKey where
parseJSON :: Value -> Parser EncryptionKey
parseJSON = String
-> (Object -> Parser EncryptionKey)
-> Value
-> Parser EncryptionKey
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"EncryptionKey" ((Object -> Parser EncryptionKey) -> Value -> Parser EncryptionKey)
-> (Object -> Parser EncryptionKey)
-> Value
-> Parser EncryptionKey
forall a b. (a -> b) -> a -> b
$ \Object
v ->
Maybe String -> Maybe String -> Maybe String -> EncryptionKey
EncryptionKey
(Maybe String -> Maybe String -> Maybe String -> EncryptionKey)
-> Parser (Maybe String)
-> Parser (Maybe String -> Maybe String -> EncryptionKey)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rawKey"
Parser (Maybe String -> Maybe String -> EncryptionKey)
-> Parser (Maybe String) -> Parser (Maybe String -> EncryptionKey)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rsaEncryptedKey"
Parser (Maybe String -> EncryptionKey)
-> Parser (Maybe String) -> Parser EncryptionKey
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sha256"
instance ToJSON EncryptionKey where
toJSON :: EncryptionKey -> Value
toJSON (EncryptionKey Maybe String
rawKey Maybe String
rsaEncryptedKey Maybe String
sha256) =
[Pair] -> Value
object
[ Key
"rawKey" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
rawKey
, Key
"rsaEncryptedKey" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
rsaEncryptedKey
, Key
"sha256" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sha256
]
instance FromJSON DiskItem where
parseJSON :: Value -> Parser DiskItem
parseJSON = String -> (Object -> Parser DiskItem) -> Value -> Parser DiskItem
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DiskItem" ((Object -> Parser DiskItem) -> Value -> Parser DiskItem)
-> (Object -> Parser DiskItem) -> Value -> Parser DiskItem
forall a b. (a -> b) -> a -> b
$ \Object
v ->
Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem
DiskItem
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kind"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"creationTimestamp"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sizeGb"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"zone"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"status"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceSnapshot"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceSnapshotId"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceImage"
Parser
(Maybe String
-> Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceImageId"
Parser
(Maybe String
-> Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"type"
Parser
(Maybe (Map String String)
-> Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe (Map String String))
-> Parser
(Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe (Map String String))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"labels"
Parser
(Maybe String
-> Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"labelFingerprint"
Parser
(Maybe [String]
-> Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe [String])
-> Parser
(Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [String])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"licenses"
Parser
(Maybe [String]
-> Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe [String])
-> Parser
(Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [String])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"users"
Parser
(Maybe [GuestOsFeature]
-> Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe [GuestOsFeature])
-> Parser
(Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [GuestOsFeature])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"guestOsFeatures"
Parser
(Maybe EncryptionKey
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe EncryptionKey)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe EncryptionKey)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"diskEncryptionKey"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceDisk"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe [String]
-> Maybe String
-> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String -> Maybe [String] -> Maybe String -> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceDiskId"
Parser
(Maybe String
-> Maybe String -> Maybe [String] -> Maybe String -> DiskItem)
-> Parser (Maybe String)
-> Parser
(Maybe String -> Maybe [String] -> Maybe String -> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"physicalBlockSizeBytes"
Parser (Maybe String -> Maybe [String] -> Maybe String -> DiskItem)
-> Parser (Maybe String)
-> Parser (Maybe [String] -> Maybe String -> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"provisionedIops"
Parser (Maybe [String] -> Maybe String -> DiskItem)
-> Parser (Maybe [String]) -> Parser (Maybe String -> DiskItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [String])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"resourcePolicies"
Parser (Maybe String -> DiskItem)
-> Parser (Maybe String) -> Parser DiskItem
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"selfLink"
instance ToJSON DiskItem where
toJSON :: DiskItem -> Value
toJSON
( DiskItem
Maybe String
kind
Maybe String
id_
Maybe String
creationTimestamp
Maybe String
name
Maybe String
description
Maybe String
sizeGb
Maybe String
zone
Maybe String
status
Maybe String
sourceSnapshot
Maybe String
sourceSnapshotId
Maybe String
sourceImage
Maybe String
sourceImageId
Maybe String
type_
Maybe (Map String String)
labels
Maybe String
labelFingerprint
Maybe [String]
licenses
Maybe [String]
users
Maybe [GuestOsFeature]
guestOsFeatures
Maybe EncryptionKey
diskEncryptionKey
Maybe String
sourceDisk
Maybe String
sourceDiskId
Maybe String
physicalBlockSizeBytes
Maybe String
provisionedIops
Maybe [String]
resourcePolicies
Maybe String
selfLink
) =
[Pair] -> Value
object
[ Key
"kind" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
kind
, Key
"id" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
id_
, Key
"creationTimestamp" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
creationTimestamp
, Key
"name" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
name
, Key
"description" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
description
, Key
"sizeGb" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sizeGb
, Key
"zone" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
zone
, Key
"status" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
status
, Key
"sourceSnapshot" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceSnapshot
, Key
"sourceSnapshotId" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceSnapshotId
, Key
"sourceImage" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceImage
, Key
"sourceImageId" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceImageId
, Key
"type" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
type_
, Key
"labels" Key -> Maybe (Map String String) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe (Map String String)
labels
, Key
"labelFingerprint" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
labelFingerprint
, Key
"licenses" Key -> Maybe [String] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [String]
licenses
, Key
"users" Key -> Maybe [String] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [String]
users
, Key
"guestOsFeatures" Key -> Maybe [GuestOsFeature] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [GuestOsFeature]
guestOsFeatures
, Key
"diskEncryptionKey" Key -> Maybe EncryptionKey -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe EncryptionKey
diskEncryptionKey
, Key
"sourceDisk" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceDisk
, Key
"sourceDiskId" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceDiskId
, Key
"physicalBlockSizeBytes" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
physicalBlockSizeBytes
, Key
"provisionedIops" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
provisionedIops
, Key
"resourcePolicies" Key -> Maybe [String] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [String]
resourcePolicies
, Key
"selfLink" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
selfLink
]
instance FromJSON DiskResponse where
parseJSON :: Value -> Parser DiskResponse
parseJSON = String
-> (Object -> Parser DiskResponse) -> Value -> Parser DiskResponse
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DiskResponse" ((Object -> Parser DiskResponse) -> Value -> Parser DiskResponse)
-> (Object -> Parser DiskResponse) -> Value -> Parser DiskResponse
forall a b. (a -> b) -> a -> b
$ \Object
v ->
Maybe String
-> Maybe String
-> Maybe [DiskItem]
-> Maybe String
-> Maybe String
-> Maybe Warning
-> DiskResponse
DiskResponse
(Maybe String
-> Maybe String
-> Maybe [DiskItem]
-> Maybe String
-> Maybe String
-> Maybe Warning
-> DiskResponse)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe [DiskItem]
-> Maybe String
-> Maybe String
-> Maybe Warning
-> DiskResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kind"
Parser
(Maybe String
-> Maybe [DiskItem]
-> Maybe String
-> Maybe String
-> Maybe Warning
-> DiskResponse)
-> Parser (Maybe String)
-> Parser
(Maybe [DiskItem]
-> Maybe String -> Maybe String -> Maybe Warning -> DiskResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Maybe [DiskItem]
-> Maybe String -> Maybe String -> Maybe Warning -> DiskResponse)
-> Parser (Maybe [DiskItem])
-> Parser
(Maybe String -> Maybe String -> Maybe Warning -> DiskResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [DiskItem])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"items"
Parser
(Maybe String -> Maybe String -> Maybe Warning -> DiskResponse)
-> Parser (Maybe String)
-> Parser (Maybe String -> Maybe Warning -> DiskResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"nextPageToken"
Parser (Maybe String -> Maybe Warning -> DiskResponse)
-> Parser (Maybe String) -> Parser (Maybe Warning -> DiskResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"selfLink"
Parser (Maybe Warning -> DiskResponse)
-> Parser (Maybe Warning) -> Parser DiskResponse
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe Warning)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"warning"
instance ToJSON DiskResponse where
toJSON :: DiskResponse -> Value
toJSON (DiskResponse Maybe String
kind Maybe String
id_ Maybe [DiskItem]
items Maybe String
nextPageToken Maybe String
selfLink Maybe Warning
warning) =
[Pair] -> Value
object
[ Key
"kind" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
kind
, Key
"id" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
id_
, Key
"items" Key -> Maybe [DiskItem] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [DiskItem]
items
, Key
"nextPageToken" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
nextPageToken
, Key
"selfLink" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
selfLink
, Key
"warning" Key -> Maybe Warning -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Warning
warning
]
instance FromJSON ErrorDetail where
parseJSON :: Value -> Parser ErrorDetail
parseJSON = String
-> (Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ErrorDetail" ((Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail)
-> (Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail
forall a b. (a -> b) -> a -> b
$ \Object
v ->
String -> String -> Maybe String -> ErrorDetail
ErrorDetail
(String -> String -> Maybe String -> ErrorDetail)
-> Parser String -> Parser (String -> Maybe String -> ErrorDetail)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"code"
Parser (String -> Maybe String -> ErrorDetail)
-> Parser String -> Parser (Maybe String -> ErrorDetail)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"message"
Parser (Maybe String -> ErrorDetail)
-> Parser (Maybe String) -> Parser ErrorDetail
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"location"
instance ToJSON ErrorDetail where
toJSON :: ErrorDetail -> Value
toJSON (ErrorDetail String
code String
message Maybe String
location) =
[Pair] -> Value
object
[ Key
"code" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
code
, Key
"message" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
message
, Key
"location" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
location
]
instance FromJSON OperationError where
parseJSON :: Value -> Parser OperationError
parseJSON = String
-> (Object -> Parser OperationError)
-> Value
-> Parser OperationError
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"OperationError" ((Object -> Parser OperationError)
-> Value -> Parser OperationError)
-> (Object -> Parser OperationError)
-> Value
-> Parser OperationError
forall a b. (a -> b) -> a -> b
$ \Object
v ->
[ErrorDetail] -> OperationError
OperationError
([ErrorDetail] -> OperationError)
-> Parser [ErrorDetail] -> Parser OperationError
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser [ErrorDetail]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"errors"
instance ToJSON OperationError where
toJSON :: OperationError -> Value
toJSON (OperationError [ErrorDetail]
errors) =
[Pair] -> Value
object
[ Key
"errors" Key -> [ErrorDetail] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [ErrorDetail]
errors
]
instance FromJSON Operation where
parseJSON :: Value -> Parser CreateSnapshotResp
parseJSON = String
-> (Object -> Parser CreateSnapshotResp)
-> Value
-> Parser CreateSnapshotResp
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Operation" ((Object -> Parser CreateSnapshotResp)
-> Value -> Parser CreateSnapshotResp)
-> (Object -> Parser CreateSnapshotResp)
-> Value
-> Parser CreateSnapshotResp
forall a b. (a -> b) -> a -> b
$ \Object
v ->
Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp
Operation
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"zone"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"operationType"
Parser
(Maybe String
-> Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"targetLink"
Parser
(Maybe String
-> Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"status"
Parser
(Maybe Int
-> Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe Int)
-> Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"progress"
Parser
(Maybe String
-> Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"insertTime"
Parser
(Maybe String
-> Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"startTime"
Parser
(Maybe String
-> Maybe OperationError
-> Maybe [Warning]
-> Maybe String
-> CreateSnapshotResp)
-> Parser (Maybe String)
-> Parser
(Maybe OperationError
-> Maybe [Warning] -> Maybe String -> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"endTime"
Parser
(Maybe OperationError
-> Maybe [Warning] -> Maybe String -> CreateSnapshotResp)
-> Parser (Maybe OperationError)
-> Parser (Maybe [Warning] -> Maybe String -> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe OperationError)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"error"
Parser (Maybe [Warning] -> Maybe String -> CreateSnapshotResp)
-> Parser (Maybe [Warning])
-> Parser (Maybe String -> CreateSnapshotResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe [Warning])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"warnings"
Parser (Maybe String -> CreateSnapshotResp)
-> Parser (Maybe String) -> Parser CreateSnapshotResp
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe String)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"selfLink"
instance ToJSON Operation where
toJSON :: CreateSnapshotResp -> Value
toJSON
( Operation
Maybe String
id_
Maybe String
name
Maybe String
zone
Maybe String
operationType
Maybe String
targetLink
Maybe String
status
Maybe Int
progress
Maybe String
insertTime
Maybe String
startTime
Maybe String
endTime
Maybe OperationError
error_
Maybe [Warning]
warnings
Maybe String
selfLink
) =
[Pair] -> Value
object
[ Key
"id" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
id_
, Key
"name" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
name
, Key
"zone" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
zone
, Key
"operationType" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
operationType
, Key
"targetLink" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
targetLink
, Key
"status" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
status
, Key
"progress" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
progress
, Key
"insertTime" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
insertTime
, Key
"startTime" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
startTime
, Key
"endTime" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
endTime
, Key
"error" Key -> Maybe OperationError -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe OperationError
error_
, Key
"warnings" Key -> Maybe [Warning] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [Warning]
warnings
, Key
"selfLink" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
selfLink
]
instance ToJSON InsertDiskOps where
toJSON :: InsertDiskOps -> Value
toJSON
( InsertDiskOps
String
name
String
sizeGb
Maybe String
description
Maybe String
type_
Maybe String
sourceImage
Maybe String
sourceSnapshot
Maybe (Map String String)
labels
Maybe [GuestOsFeature]
guestOsFeatures
Maybe EncryptionKey
diskEncryptionKey
) =
[Pair] -> Value
object
[ Key
"name" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
name
, Key
"sizeGb" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
sizeGb
, Key
"description" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
description
, Key
"type" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
type_
, Key
"sourceImage" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceImage
, Key
"sourceSnapshot" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
sourceSnapshot
, Key
"labels" Key -> Maybe (Map String String) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe (Map String String)
labels
, Key
"guestOsFeatures" Key -> Maybe [GuestOsFeature] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [GuestOsFeature]
guestOsFeatures
, Key
"diskEncryptionKey" Key -> Maybe EncryptionKey -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe EncryptionKey
diskEncryptionKey
]
instance ToJSON CreateSnapshotOps where
toJSON :: CreateSnapshotOps -> Value
toJSON (CreateSnapshotOps String
name Maybe String
description Maybe (Map String String)
labels Maybe [String]
storageLocations Maybe EncryptionKey
snapshotEncryptionKey) =
[Pair] -> Value
object
[ Key
"name" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
name
, Key
"description" Key -> Maybe String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe String
description
, Key
"labels" Key -> Maybe (Map String String) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe (Map String String)
labels
, Key
"storageLocations" Key -> Maybe [String] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [String]
storageLocations
, Key
"snapshotEncryptionKey" Key -> Maybe EncryptionKey -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe EncryptionKey
snapshotEncryptionKey
]
listDisks :: String
-> String
-> Maybe ListDisksQuery
-> IO (Either String DiskResponse)
listDisks :: String
-> String
-> Maybe ListDisksQuery
-> IO (Either String DiskResponse)
listDisks String
project String
zone_ Maybe ListDisksQuery
mbQuery = do
let queryParams :: [QueryItem]
queryParams = [QueryItem]
-> (ListDisksQuery -> [QueryItem])
-> Maybe ListDisksQuery
-> [QueryItem]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] ListDisksQuery -> [QueryItem]
queryToList Maybe ListDisksQuery
mbQuery
RequestOptions -> IO (Either String DiskResponse)
forall b. FromJSON b => RequestOptions -> IO (Either String b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
GET
, reqUrl :: String
reqUrl = String
googleComputeUrl
, mbQueryParams :: Maybe [QueryItem]
mbQueryParams = [QueryItem] -> Maybe [QueryItem]
forall a. a -> Maybe a
Just [QueryItem]
queryParams
, mbReqBody :: Maybe ByteString
mbReqBody = Maybe ByteString
forall a. Maybe a
Nothing
, mbReqHeaders :: Maybe RequestHeaders
mbReqHeaders = Maybe RequestHeaders
forall a. Maybe a
Nothing
, mbReqPath :: Maybe String
mbReqPath = String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ String
"/projects/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
project String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/zones/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
zone_ String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/disks"
}
where
queryToList :: ListDisksQuery -> Query
queryToList :: ListDisksQuery -> [QueryItem]
queryToList ListDisksQuery {Maybe Int
Maybe String
$sel:filter_:ListDisksQuery :: ListDisksQuery -> Maybe String
$sel:maxResults:ListDisksQuery :: ListDisksQuery -> Maybe Int
$sel:pageToken:ListDisksQuery :: ListDisksQuery -> Maybe String
$sel:orderBy:ListDisksQuery :: ListDisksQuery -> Maybe String
filter_ :: Maybe String
maxResults :: Maybe Int
pageToken :: Maybe String
orderBy :: Maybe String
..} =
[ QueryItem -> (String -> QueryItem) -> Maybe String -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\String
x -> (ByteString
"filter", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ String -> ByteString
BS.pack String
x)) Maybe String
filter_
, QueryItem -> (Int -> QueryItem) -> Maybe Int -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\Int
x -> (ByteString
"maxResults", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS.pack (String -> Maybe ByteString) -> String -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ Int -> String
forall a. Show a => a -> String
show Int
x)) Maybe Int
maxResults
, QueryItem -> (String -> QueryItem) -> Maybe String -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\String
x -> (ByteString
"pageToken", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ String -> ByteString
BS.pack String
x)) Maybe String
pageToken
, QueryItem -> (String -> QueryItem) -> Maybe String -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\String
x -> (ByteString
"orderBy", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ String -> ByteString
BS.pack String
x)) Maybe String
orderBy
]
insertDisk :: String
-> String
-> InsertDiskOps
-> Maybe InsertDiskQuery
-> IO (Either String InsertDiskResponse)
insertDisk :: String
-> String
-> InsertDiskOps
-> Maybe InsertDiskQuery
-> IO (Either String CreateSnapshotResp)
insertDisk String
project String
zone_ InsertDiskOps
insertDiskOps Maybe InsertDiskQuery
mbQuery = do
let queryParams :: [QueryItem]
queryParams = [QueryItem]
-> (InsertDiskQuery -> [QueryItem])
-> Maybe InsertDiskQuery
-> [QueryItem]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] InsertDiskQuery -> [QueryItem]
queryToList Maybe InsertDiskQuery
mbQuery
RequestOptions -> IO (Either String CreateSnapshotResp)
forall b. FromJSON b => RequestOptions -> IO (Either String b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
POST
, reqUrl :: String
reqUrl = String
googleComputeUrl
, mbQueryParams :: Maybe [QueryItem]
mbQueryParams = [QueryItem] -> Maybe [QueryItem]
forall a. a -> Maybe a
Just [QueryItem]
queryParams
, mbReqBody :: Maybe ByteString
mbReqBody = ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ InsertDiskOps -> ByteString
forall a. ToJSON a => a -> ByteString
encode InsertDiskOps
insertDiskOps
, mbReqHeaders :: Maybe RequestHeaders
mbReqHeaders = Maybe RequestHeaders
forall a. Maybe a
Nothing
, mbReqPath :: Maybe String
mbReqPath = String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ String
"/projects/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
project String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/zones/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
zone_ String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/disks"
}
where
queryToList :: InsertDiskQuery -> Query
queryToList :: InsertDiskQuery -> [QueryItem]
queryToList InsertDiskQuery {Maybe String
$sel:sourceImage:InsertDiskQuery :: InsertDiskQuery -> Maybe String
sourceImage :: Maybe String
sourceImage, Maybe EncryptionKey
$sel:sourceImageEncryptionKey:InsertDiskQuery :: InsertDiskQuery -> Maybe EncryptionKey
sourceImageEncryptionKey :: Maybe EncryptionKey
sourceImageEncryptionKey} =
[ QueryItem -> (String -> QueryItem) -> Maybe String -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\String
x -> (ByteString
"sourceImage", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ String -> ByteString
BS.pack String
x)) Maybe String
sourceImage
, QueryItem
-> (EncryptionKey -> QueryItem) -> Maybe EncryptionKey -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe
QueryItem
forall a. Monoid a => a
mempty
(\EncryptionKey
x -> (ByteString
"sourceImageEncryptionKey", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (ByteString -> ByteString) -> ByteString -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString
BS.toStrict (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ EncryptionKey -> ByteString
forall a. ToJSON a => a -> ByteString
encode EncryptionKey
x))
Maybe EncryptionKey
sourceImageEncryptionKey
]
deleteDisk :: String
-> String
-> String
-> Maybe DeleteDiskQuery
-> IO (Either String Operation)
deleteDisk :: String
-> String
-> String
-> Maybe DeleteDiskQuery
-> IO (Either String CreateSnapshotResp)
deleteDisk String
project String
zone_ String
diskName Maybe DeleteDiskQuery
mbQuery = do
let queryParams :: [QueryItem]
queryParams = [QueryItem]
-> (DeleteDiskQuery -> [QueryItem])
-> Maybe DeleteDiskQuery
-> [QueryItem]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] DeleteDiskQuery -> [QueryItem]
queryToList Maybe DeleteDiskQuery
mbQuery
RequestOptions -> IO (Either String CreateSnapshotResp)
forall b. FromJSON b => RequestOptions -> IO (Either String b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
DELETE
, reqUrl :: String
reqUrl = String
googleComputeUrl
, mbQueryParams :: Maybe [QueryItem]
mbQueryParams = [QueryItem] -> Maybe [QueryItem]
forall a. a -> Maybe a
Just [QueryItem]
queryParams
, mbReqBody :: Maybe ByteString
mbReqBody = Maybe ByteString
forall a. Maybe a
Nothing
, mbReqHeaders :: Maybe RequestHeaders
mbReqHeaders = Maybe RequestHeaders
forall a. Maybe a
Nothing
, mbReqPath :: Maybe String
mbReqPath = String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ String
"/projects/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
project String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/zones/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
zone_ String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/disks/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
diskName
}
where
queryToList :: DeleteDiskQuery -> Query
queryToList :: DeleteDiskQuery -> [QueryItem]
queryToList DeleteDiskQuery
q =
[ QueryItem -> (Bool -> QueryItem) -> Maybe Bool -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\Bool
x -> (ByteString
"force", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS.pack (String -> Maybe ByteString) -> String -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ Bool -> String
forall a. Show a => a -> String
show Bool
x)) (DeleteDiskQuery -> Maybe Bool
force DeleteDiskQuery
q)
]
createDiskSnapshot :: String
-> String
-> String
-> CreateSnapshotOps
-> Maybe CreateSnapshotQuery
-> IO (Either String CreateSnapshotResp)
createDiskSnapshot :: String
-> String
-> String
-> CreateSnapshotOps
-> Maybe CreateSnapshotQuery
-> IO (Either String CreateSnapshotResp)
createDiskSnapshot String
project String
zone_ String
diskName CreateSnapshotOps
createSnapshotOps Maybe CreateSnapshotQuery
mbQuery = do
let queryParams :: [QueryItem]
queryParams = [QueryItem]
-> (CreateSnapshotQuery -> [QueryItem])
-> Maybe CreateSnapshotQuery
-> [QueryItem]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] CreateSnapshotQuery -> [QueryItem]
queryToList Maybe CreateSnapshotQuery
mbQuery
RequestOptions -> IO (Either String CreateSnapshotResp)
forall b. FromJSON b => RequestOptions -> IO (Either String b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
POST
, reqUrl :: String
reqUrl = String
googleComputeUrl
, mbQueryParams :: Maybe [QueryItem]
mbQueryParams = [QueryItem] -> Maybe [QueryItem]
forall a. a -> Maybe a
Just [QueryItem]
queryParams
, mbReqBody :: Maybe ByteString
mbReqBody = ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString) -> ByteString -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ CreateSnapshotOps -> ByteString
forall a. ToJSON a => a -> ByteString
encode CreateSnapshotOps
createSnapshotOps
, mbReqHeaders :: Maybe RequestHeaders
mbReqHeaders = Maybe RequestHeaders
forall a. Maybe a
Nothing
, mbReqPath :: Maybe String
mbReqPath =
String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ String
"/projects/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
project String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/zones/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
zone_ String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/disks/" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
diskName String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"/createSnapshot"
}
where
queryToList :: CreateSnapshotQuery -> Query
queryToList :: CreateSnapshotQuery -> [QueryItem]
queryToList CreateSnapshotQuery
q =
[ QueryItem -> (Bool -> QueryItem) -> Maybe Bool -> QueryItem
forall b a. b -> (a -> b) -> Maybe a -> b
maybe QueryItem
forall a. Monoid a => a
mempty (\Bool
x -> (ByteString
"guestFlush", ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS.pack (String -> Maybe ByteString) -> String -> Maybe ByteString
forall a b. (a -> b) -> a -> b
$ Bool -> String
forall a. Show a => a -> String
show Bool
x)) (CreateSnapshotQuery -> Maybe Bool
guestFlush CreateSnapshotQuery
q)
]
defaultInsertOps :: String -> String -> InsertDiskOps
defaultInsertOps :: String -> String -> InsertDiskOps
defaultInsertOps String
diskName String
diskSizeGb =
InsertDiskOps
{ $sel:name:InsertDiskOps :: String
name = String
diskName
, $sel:sizeGb:InsertDiskOps :: String
sizeGb = String
diskSizeGb
, $sel:description:InsertDiskOps :: Maybe String
description = Maybe String
forall a. Maybe a
Nothing
, $sel:type_:InsertDiskOps :: Maybe String
type_ = Maybe String
forall a. Maybe a
Nothing
, $sel:sourceImage:InsertDiskOps :: Maybe String
sourceImage = Maybe String
forall a. Maybe a
Nothing
, $sel:sourceSnapshot:InsertDiskOps :: Maybe String
sourceSnapshot = Maybe String
forall a. Maybe a
Nothing
, $sel:labels:InsertDiskOps :: Maybe (Map String String)
labels = Maybe (Map String String)
forall a. Maybe a
Nothing
, $sel:guestOsFeatures:InsertDiskOps :: Maybe [GuestOsFeature]
guestOsFeatures = Maybe [GuestOsFeature]
forall a. Maybe a
Nothing
, $sel:diskEncryptionKey:InsertDiskOps :: Maybe EncryptionKey
diskEncryptionKey = Maybe EncryptionKey
forall a. Maybe a
Nothing
}
defaultCreateSnapshotOps :: String -> CreateSnapshotOps
defaultCreateSnapshotOps :: String -> CreateSnapshotOps
defaultCreateSnapshotOps String
snapshotName =
CreateSnapshotOps
{ $sel:name:CreateSnapshotOps :: String
name = String
snapshotName
, $sel:description:CreateSnapshotOps :: Maybe String
description = Maybe String
forall a. Maybe a
Nothing
, $sel:labels:CreateSnapshotOps :: Maybe (Map String String)
labels = Maybe (Map String String)
forall a. Maybe a
Nothing
, $sel:storageLocations:CreateSnapshotOps :: Maybe [String]
storageLocations = Maybe [String]
forall a. Maybe a
Nothing
, $sel:snapshotEncryptionKey:CreateSnapshotOps :: Maybe EncryptionKey
snapshotEncryptionKey = Maybe EncryptionKey
forall a. Maybe a
Nothing
}